LNMP构架搭建论坛配置php服务
PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,发明于1995年,它吸取了C语言、Java语言及Perl语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。使用源码包的方式编译安装PHP语言环境其实并不复杂,难点在于解决PHP的程序包和其他软件的依赖关系。为此需要先安装部署将近十个用于搭建网站页面的软件程序包,然后才能正式安装PHP程序。
yasm源码包是一款常见的开源汇编器
cd ..
tar zxvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
make install
http://i2.运维网.com/images/blog/201809/19/6b2cc3fa283b120749f45f9f9aa988a5.png
http://i2.运维网.com/images/blog/201809/19/816b2f0cc2c3fb5a37ffcadc76a062f5.png
http://i2.运维网.com/images/blog/201809/19/c976d9eb73ebcf176b0dd43c9e2fb1a9.png
http://i2.运维网.com/images/blog/201809/19/9e61e612242d01b63150e8b64999a51d.png
libmcrypt源码包是用于加密算法的扩展库程序
cd ..
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
http://i2.运维网.com/images/blog/201809/19/5b3537e52b58e0694a15b8747d58bef2.png
http://i2.运维网.com/images/blog/201809/19/18108d38e975ea95c83fe125d789a6ce.png
http://i2.运维网.com/images/blog/201809/19/36af46cc67b0430e358cea99d499f151.png
http://i2.运维网.com/images/blog/201809/19/53445cc95fe4af977233e2f043b9dd49.png
libvpx源码包是用于提供视频编码器的服务程序,libvpx-v1.3.0.tar.bz2,则此处解压方式为:tar xjvf
cd ..
tar xjvf libvpx-v1.3.0.tar.bz2
cd libvpx-v1.3.0
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
make
make install
http://i2.运维网.com/images/blog/201809/19/1cf7204cef9e14a0320df44b5eb9072e.png
http://i2.运维网.com/images/blog/201809/19/989a811e50766042a1c6932e1a68d6a5.png
http://i2.运维网.com/images/blog/201809/19/031541c27e895ecc2d2046e9f5030420.png
http://i2.运维网.com/images/blog/201809/19/431da4f077ee1214aba8b1802cfed59d.png
tiff源码包是用于提供标签图像文件格式的服务程序
cd ..
tar zxvf tiff-4.0.3.tar.gz
cd tiff-4.0.3
./configure --prefix=/usr/local/tiff --enable-shared
make
make install
http://i2.运维网.com/images/blog/201809/19/f4e006bda602be29995b671e6076e677.png
http://i2.运维网.com/images/blog/201809/19/d730af8a4a9375e3ee6a80027b45fdb3.png
http://i2.运维网.com/images/blog/201809/19/8ee8324ab16fe9a455a683541078a121.png
http://i2.运维网.com/images/blog/201809/19/70e94bf80418b85bb387967dc6668b24.png
libpng源码包是用于提供png图片格式支持函数库的服务程序
cd ..
tar zxvf libpng-1.6.12.tar.gz
cd libpng-1.6.12
./configure --prefix=/usr/local/libpng --enable-shared
make
make install
http://i2.运维网.com/images/blog/201809/19/0ecf04f8561350dc63b53be6ac01dc88.png
http://i2.运维网.com/images/blog/201809/19/59cca28b6defd8ddca248a55dcc1294a.png
http://i2.运维网.com/images/blog/201809/19/393eb5c63ade70285fada4a9cee78906.png
http://i2.运维网.com/images/blog/201809/19/ed0c275a1a39d841ab6798c3345dd3fe.png
freetype源码包是用于提供字体支持引擎的服务程序
cd ..
tar zxvf freetype-2.5.3.tar.gz
cd freetype-2.5.3
./configure --prefix=/usr/local/freetype --enable-shared
make
make install
http://i2.运维网.com/images/blog/201809/19/15dc2ee3cb773880525b27f90f38c5da.png
http://i2.运维网.com/images/blog/201809/19/360d0c72966e23022750a31ce4a64e12.png
http://i2.运维网.com/images/blog/201809/19/947e9d33c851a0060752f25780841b5b.png
http://i2.运维网.com/images/blog/201809/19/66768505eab0dc4c2aace4bad99829ce.png
jpeg源码包是用于提供jpeg图片格式支持函数库的服务程序
cd ..
tar zxvf jpegsrc.v9a.tar.gz
cd jpeg-9a
./configure --prefix=/usr/local/jpeg --enable-shared
make
make install
http://i2.运维网.com/images/blog/201809/19/9c373e68d3cbc06ca251e03a7faadefa.png
http://i2.运维网.com/images/blog/201809/19/78719e28e728777bdd5281abae5a3967.png
http://i2.运维网.com/images/blog/201809/19/17d24f133d906c0c7a71a53b2a55c1ab.png
http://i2.运维网.com/images/blog/201809/19/71191f8faadb703ab2581119e7c46403.png
libgd源码包是用于提供图形处理的服务程序,在编译libgd源码包时,请记得写入的是jpeg、libpng、freetype、tiff、libvpx等服务程序在系统中的安装路径,即在上面安装过程中使用--prefix参数指定的目录路径
cd ..
tar zxvf libgd-2.1.0.tar.gz
cd libgd-2.1.0
./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install
http://i2.运维网.com/images/blog/201809/19/8cc9a918498cb895a6bc2baf7153cf9f.png
http://i2.运维网.com/images/blog/201809/19/dc7140bda8f6c78cc9c18cf33f102ca3.png
http://i2.运维网.com/images/blog/201809/19/0c6cc34821c767cb03db72d6b29f266d.png
http://i2.运维网.com/images/blog/201809/19/2de72b7671283ea6aa883f11d94a2a63.png
t1lib源码包是用于提供图片生成函数库的服务程序,安装后把/usr/lib64目录中的函数文件链接到/usr/lib目录中,以便系统能够顺利调取到函数文件:
cd ..
tar zxvf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
./configure --prefix=/usr/local/t1lib --enable-shared
make
make install
ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so
cp -frp /usr/lib64/libXpm.so* /usr/lib/
http://i2.运维网.com/images/blog/201809/19/912a7c4931f316df2ea630fa3dcdce4c.png
http://i2.运维网.com/images/blog/201809/19/d237e4184693c33e39485ef98c5fa97c.png
http://i2.运维网.com/images/blog/201809/19/17b5081806ba0d1edcbc6760b14ffac1.png
http://i2.运维网.com/images/blog/201809/19/f7b1efe3d5d96db2d2c15cceac754528.png
http://i2.运维网.com/images/blog/201809/19/b6018541122b0f9647d15f1f4c1924a3.png
此时终于把编译php服务源码包的相关软件包都已经安装部署妥当了。在开始编译php源码包之前,先定义一个名为LD_LIBRARY_PATH的全局环境变量,该环境变量的作用是帮助系统找到指定的动态链接库文件,这些文件是编译php服务源码包的必须元素之一。编译php服务源码包时,除了定义要安装到的目录以外,还需要依次定义配置php服务程序配置文件的保存目录、MySQL数据库服务程序所在目录、MySQL数据库服务程序配置文件所在目录,以及libpng、jpeg、freetype、libvpx、zlib、t1lib等服务程序的安装目录路径,并通过参数启动php服务程序的诸多默认功能:
cd ..
tar -zvxf php-5.5.14.tar.gz
cd php-5.5.14
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype
make
make install
http://i2.运维网.com/images/blog/201809/19/817b1f0e8c31b6c8bd49a6f9a535d8f6.png
http://i2.运维网.com/images/blog/201809/19/24e162d2e78f9c7d14c1403f3a3e057c.png
http://i2.运维网.com/images/blog/201809/19/7a1dabf73d97cb94bd538a145f906acd.png
http://i2.运维网.com/images/blog/201809/19/d534fe9ad1ce8a6198531343d618e976.png
在php源码包程序安装完成后,需要删除当前默认的配置文件,然后将php服务程序目录中相应的配置文件复制过来:
rm -rf /etc/php.ini
ln -s /usr/local/php/etc/php.ini /etc/php.ini
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
http://i2.运维网.com/images/blog/201809/19/499b144b8fc0bad57508102ca6990ada.png
php-fpm.conf是php服务程序重要的配置文件之一,我们需要启用该配置文件中第25行左右的pid文件保存目录,然后分别将第148和149行的user与group参数分别修改为www账户和用户组名称:
vim /usr/local/php/etc/php-fpm.conf
25 pid = run/php-fpm.pid
148 user = www
149 group = www
http://i2.运维网.com/images/blog/201809/19/5108ff8613058bb51a0d0ec1d3ce0c3d.png
配置妥当后便可把用于管理php服务的脚本文件复制到/etc/rc.d/init.d中了。为了能够执行脚本,请记得为脚本赋予755权限。最后把php-fpm服务程序加入到开机启动项中:
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod 755 /etc/rc.d/init.d/php-fpm
chkconfig php-fpm on
http://i2.运维网.com/images/blog/201809/19/117297518702cfded7f2edbb988661cf.png
由于php服务程序的配置参数直接会影响到Web服务服务的运行环境,因此,如果默认开启了一些不必要且高危的功能(如允许用户在网页中执行Linux命令),则会降低网站被***的难度,***人员甚至可以拿到整台Web服务器的管理权限。因此我们需要编辑php.ini配置文件,在305行的disable_functions参数后面追加上要禁止的功能
vim /usr/local/php/etc/php.ini
305 disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restor e,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,g etservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,po six_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posixgetpwnam,posix getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posixsetgid,posix setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
http://i2.运维网.com/images/blog/201809/19/0fee6ce350fa311564cb27095cd6d7fd.png
辑Nginx服务程序的主配置文件,把第2行的井号(#)删除,然后在后面写上负责运行Nginx服务程序的账户名称和用户组名称;在第45行的index参数后面写上网站的首页名称。最后是将第65~71行参数前的井号(#)删除来启用参数,主要是修改第69行的脚本名称路径参数,其中$document_root变量即为网站信息存储的根目录路径,若没有设置该变量,则Nginx服务程序无法找到网站信息,因此会提示“404页面未找到”的报错信息。在确认参数信息填写正确后便可重启Nginx服务与php-fpm服务。
vim /usr/local/nginx/conf/nginx.conf
2 user www www;
45 index index.html index.htm index.php;
65 location ~ .php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
70 include fastcgi_params;
71}
退出
systemctl restart nginx
systemctl restart php-fpm
http://i2.运维网.com/images/blog/201809/19/27241fad8736d149564ea3b7d6a540ae.png
http://i2.运维网.com/images/blog/201809/19/b6c595d030c40d095d33be213e063043.png
搭建Discuz论坛
cd /usr/local/src/
unzip Discuz_X3.2_SC_GBK.zip
rm -rf /usr/local/nginx/html/{index.html,50x.html}
mv upload/ /usr/local/nginx/html/
chown -Rf www:www /usr/local/nginx/html
chmod -Rf 755 /usr/local/nginx/html
http://i2.运维网.com/images/blog/201809/19/3b84a3f135ee26a73d1978b11bf9d9fb.png
http://i2.运维网.com/images/blog/201809/19/0cf48db7ffa6882ad924df097d935ba3.png
http://i2.运维网.com/images/blog/201809/19/d95039253804d9b55f1bd467aef2ba8e.png
页:
[1]