安装库
yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel
|
下载
wget -c http://be2.php.net/distributions/php-7.1.8.tar.gz
|
编译
1.解压进入目录
2.编译配置
--with-config-file-path=/usr/local/php7/etc \ --with-config-file-scan-dir=/usr/local/php7/etc/php.d \ --with-mcrypt=/usr/include \ --enable-mysqlnd \ --with-mysqli \ --with-pdo-mysql \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --with-gd \ --with-iconv \ --with-zlib \ --enable-xml \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --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-curl \ --with-jpeg-dir \ --with-freetype-dir \ --enable-opcache
|
出现如图所示

则表示配置没问题
然后执行
然后配置 php-fpm.d
# cd /usr/local/php7/etc # mv php-fpm.conf.default php-fpm.conf # mv php-fpm.d/www.conf.defualt php-fpm.d/www.conf # mv php-fpm.d/www.conf.default php-fpm.d/www.conf
|
然后进入 php 的源码目录
# cd php-7.1.8/sapi/fpm/ # cp init.d.php-fpm /etc/init.d/php-fpm # chmod +x /etc/init.d/php-fpm # chkconfig --add php-fpm #
|
然后启动
[root@aliyun fpm]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ? Starting php-fpm [26-Aug-2017 16:52:34] ERROR: [pool www] cannot get uid for user 'nginx' [26-Aug-2017 16:52:34] ERROR: FPM initialization failed failed
|
报错了?这要进入
# cd /usr/local/php7/etc/php-fpm.d/ # vim www.conf
|
将用户和组修改为何 nginx 一样的组合用户吧,这里我设置的是 www
或者编译的时候指定用户和组
--with-fpm-user=nginx \ --with-fpm-group=nginx \
|
用 nginx 做代理
编译 nginx 的配置文件
vim /usr/local/nginx/conf/nginx.conf
|
去掉默认的注释
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
|
修改为
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name; include fastcgi_params; }
|
然后定义下首页内容加上 php
root html; index index.php index.html index.htm;
|
重启 nginx
/etc/init.d/nginx restart
|
在 web 站点的目录下新建一个 phpinfo.php 文件
[root@aliyun html] /usr/local/nginx/html [root@aliyun html] [root@aliyun html] <?php phpinfo();
|
访问效果

问题
1.找不到 php.ini
进入源码目录
cp php.ini-production /usr/local/php7/etc/php.ini
|
然后执行
# /usr/local/php7/bin/php --ini Configuration File (php.ini) Path: /usr/local/php7/etc Loaded Configuration File: /usr/local/php7/etc/php.ini Scan for additional .ini files in: /usr/local/php7/etc/php.d Additional .ini files parsed: (none)
|
2.关闭响应头中的 php 版本
编辑 php.ini 找到如下参数设置为 off
3.通过 nginx请求 php 文件提示nginx File not found 错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。
解决方案:确定是我上面那样配置的,不要打错了。
文章作者:阿文
版权声明:本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请注明来自
阿文的博客!