#注意:一般yum安装的版本要低于官方发行的版本 一般使用yum安装 # yum -y install php php-fpm (一般为构建lnmp平台,还需要如下组件) #yum -y install php-mysql 安装完成后启动 # systemctl restart php-fpm #编译安装 1.下载 php 压缩包并解压 # wget https://www.php.net/distributions/php-7.0.5.tar.gz # tar -xvf php-7.0.5.tar.gz # cd php-7.0.5 2.下载依赖包 # yum -y install libxml2-devel libxml2-devel make gcc gcc-c++ # yum -y install openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel !!以上这些包基本上够用了!! 3.编译配置 # ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip !!注意!! 实际上这里的配置项比上述还多,可以使用./configure --help 命令查看所有选项,这里注意在php7中--with-mysql原生支持已经不存在了,操作都变成mysqli或者pdo了;以上这些选项在正常的php开发中完全够用了,后期如果需要,可以选择手动开启相应的模块 # make # make install 4.修改配置文件 # cp php.ini-development /usr/local/php/lib/php.ini # cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # cp sapi/fpm/php-fpm /usr/local/bin # vim /usr/local/php/lib/php.ini ... cgi.fix_pathinfo=0 (修改后保存退出) #这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0 #另外注意一个地方就是php.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:--with-config-file-path=/usr/local/php 这样的话php就回去指定的目录下读取php.ini配置文件,如果不加这个参数默认位置就是php安装目录下的lib目录(/usr/local/php/lib/php.ini),具体也可以在phpinfo()输出界面查看,如果php.ini放到其他位置,php读取不到,那么所有的配置修改后都是不生效的,这点要注意 5.修改并启动php-fpm # cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf # vim /usr/local/etc/php-fpm.d/www.conf ... ; will be used. user = nobody group = nobody #这里的用户和组应当与nginx配置文件中的相同 #保存退出后启动php-fpm # /usr/local/bin/php-fpm # netstat -nutpl | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 60410/php-fpm: mast