YUM安装Nginx并编译安装PHP5.3.8 with PHP-FPM
一、Nginx安装
安装Nginx可以采用YUM方法,Nginx官方提供的源可以保证安装最新版本的稳定程序
vim /etc/yum.repos.d/CentOS-Base.repo 添加以下YUM源信息
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
更新YUM缓存
yum makecache
安装Nginx
yum install nginx
控制Nginx运行:
通过YUM安装完毕Nginx后可以使用service命令管理,目前支持以下参数
service nginx {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}
二、编译安装PHP5.3.8 with PHP-FPM
PHP需要编辑安装,YUM自带源版本比较低,我们可以编译安装最新版PHP,从PHP5.3开始官方已经自带PHP-FPM功能,安装的时候带上参数 “–enable-fpm”即可
/php.5.3源文件目录/下执行
./configure –enable-fpm
make
make install
安装过程中可能提示找不到libxml2安装位置,需要先编译安装libxml2,请执行以下命令:
yum install libxml2
yum install libxml2-devel
重启PHP-FPM
php5.3.8 的PHP-FPM不再支持php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
平滑重启: kill -USR2 `cat /var/run/php-fpm.pid`
三、为PHP编译添加新模块
编译php的时候可以通过命令 “./configure –with-libxxx”来编译安装相关模块,安装完毕后如果还需要添加模块可以通过以下步骤完成模块添加,我们以添加curl模块为例:
#cd /PHP源文件目录/ext/curl
#phpize (为重新编译新模块准备PHP环境参数)
#./configure –with-php-config=/php.ini文件路径/(根据当前php.ini环境编译生成模块,可略)
#make (此步将在 /PHP源文件目录/ext/curl/module/目录下面生成curl.so文件)
#cp /PHP源文件目录/ext/curl/module/curl.so /php的extension目录下/
#vim php.ini 添加 extension=curl.so
php-fpm重新加载php.ini即可生效
Q&A
- 默认PHP的配置文件是放在“/usr/local/lib/”目录下面的,默认安装采用php默认配置,无php.ini文件,请执行以下命令生成php.ini文件:
#cp /php源文件目录/php.ini-production /usr/local/lib/php.ini
- Nginx执行静态文件正常,执行PHP文件报404错误:
通常404错误是由php-fpm执行文件路径错误,请确认是否正确设置 “SCRIPT_FILENAME”参数,请修改”/etc/nginx/conf.d/default.conf”中参数:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 改为 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; location 的 root设置为绝对路径