Linux:配置 PHP 服务

使用源码包的方式编译安装 PHP 语言环境其实并不复杂,难点在于解决 PHP 的程序包
和其他软件的依赖关系。为此需要先安装部署将近十个用于搭建网站页面的软件程序包,然
后才能正式安装 PHP 程序。


yasm 源码包是一款常见的开源汇编器:源码安装:正常进行解压、配置、安装即可

libmcrypt 源码包是用于加密算法的扩展库程序

libvpx 源码包是用于提供视频编码器的服务程序,发现 libvpx 源码包的后缀是.tar.bz2,即表示使用 bzip2 格式进行的压缩,因此正确的解压参数应该是 xjvf。:

tar xjvf libvpx-v1.3.0.tar.bz2

cd libvpx-v1.3.0

./configure --prefix=/usr/local/libvpx --enableshared --enable-vp9

make

make install

tiff 源码包是用于提供标签图像文件格式的服务程序:

./configure --prefix=/usr/local/tiff --enable-shared

libpng 源码包是用于提供 png 图片格式支持函数库的服务程序:

./configure --prefix=/usr/local/libpng --enableshared

freetype 源码包是用于提供字体支持引擎的服务程序:

./configure --prefix=/usr/local/freetype –enable-shared

jpeg 源码包是用于提供 jpeg 图片格式支持函数库的服务程序

./configure --prefix=/usr/local/jpeg --enable-shared

libgd 源码包是用于提供图形处理的服务程序:在编译 libgd 源码包时,请记得写入的是 jpeg、 libpng、 freetype、 tiff、 libvpx 等服务程序在系统中的安装路径,即在上面安装过程中使用--prefix 参数指定的目录路径:

./configure --prefix=/usr/local/libgd --enableshared --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

t1lib 源码包是用于提供图片生成函数库的服务程序:安装后把/usr/lib64 目录中的函数文件链接到/usr/lib 目录中,以便系统能
够顺利调取到函数文件:

./configure --prefix=/usr/local/t1lib --enableshared

ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so

cp -frp /usr/lib64/libXpm.so* /usr/lib/

此时终于把编译 php 服务源码包的相关软件包都已经安装部署妥当了。在开始编译 php
源码包之前,先定义一个名为 LD_LIBRARY_PATH 的全局环境变量,该环境变量的作用是帮
助系统找到指定的动态链接库文件,这些文件是编译 php 服务源码包的必须元素之一。编译
php 服务源码包时,除了定义要安装到的目录以外,还需要依次定义配置 php 服务程序配置文
件的保存目录、 MySQL 数据库服务程序所在目录、 MySQL 数据库服务程序配置文件所在目
录,以及 libpng、 jpeg、 freetype、 libvpx、 zlib、 t1lib 等服务程序的安装目录路径,并通过参
数启动 php 服务程序的诸多默认功能

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure --prefix=/usr/local/php --with-configfile-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 --enablesysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enablefpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enablepcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --withoutpear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype

这必须复制粘贴,没办法,谁都记不住*************

在 php 源码包程序安装完成后,需要删除当前默认的配置文件,然后将 php 服务程序目录中相应的配置文件复制过来:

rm -rf /etc/php.ini

cp php.ini-production /usr/local/php/etc/php.ini

ln -s /usr/local/php/etc/php.ini /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/phpfpm.conf

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

配置妥当后便可把用于管理 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

由于 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_ termid,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,posix_getpwnam,posix_ getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,
posix_setegid,posix_seteuid,posix_setgid,posix_ setpgid,posix_setsid,posix_setuid,
posix_strerror,posix_times,posix_ttyname,posix_uname

这样就把 php 服务程序配置妥当了。最后,还需要编辑 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;

69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值