SERVER环境说明:
OS:CentOS6.5(阿里云官方)
WebServer:Nginx
步骤:
1.下载解压
官网下载http://php.net/downloads.php
2.编译
./configure --prefix=/usr/local/php --with-mysql --with-mysql-sock --with-mysqli --enable-fpm --with-ncurses --enable-soap --with-libxml-dir --with-XMLrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3
--with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir
--with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --disable-mbregex --disable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-pdo-mysql --with-zlib-dir --with-pdo-sqlite
--with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sqlite-utf8 --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear
其中阿里云的镜像CentOS 没有 ncurses XMLrpc sqlite3 这3个依赖 我直接把这3个依赖删除了
3.建立软连接
4.遇到的问题
1>.服务器上html文件可以访问,php文件无法访问。
log:
2014/11/102014/11/10 12:55:24 [alert] 6438#0: 1024 worker_connections are not enough
2014/11/10 12:55:24 [error] 6438#0: *6207 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1,
2014/11/13 19:14:13 [alert] 1596#0: 5000 worker_connections are not enough
2014/11/13 19:14:13 [error] 1596#0: *7042 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: 114.215.175.240, request: "GET /index.php HTTP/1.0", upstream: "http://127.0.0.1:80/index.php", host:
"127.0.0.1"
解决过程:
1.http://www.th7.cn/Program/php/201408/254237.shtml 修改 php-fpm.conf request_terminate_timeout=0; 没用
2.nginx.conf 修改worker_connections 1024--5000 没用
3.http://www.netingcn.com/nginx-proxy-error-500.html解决办法就是修改配置文件中的worker_connections值,将其调大。但是今天在本机的nginx中配置一个proxy,完全没有外界的访问的情况也提示上述错误,试着修改worker_connections也没有解决问题。文中是代理回环。我没有用apache。所以将apache-php部分注释掉。保留php-fpm部分。问题解决。
2>.访问php提示"File not found.",同时在错误日志中看到:FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
解决过程:
参考 http://www.jb51.net/article/47916.htm
在Nginx配置文件中找到定义调用脚本文件的地方:fastcgi_param
SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为:astcgi_param
SCRIPT_FILENAME $document_root$fastcgi_script_name;