共计 2819 个字符,预计需要花费 8 分钟才能阅读完成。
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. 修改 php-fpm.conf request_terminate_timeout=0; 没用
2.nginx.conf 修改 worker_connections 1024–5000 没用
3. 解决办法就是修改配置文件中的 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
解决过程:
在 Nginx 配置文件中找到定义调用脚本文件的地方:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为:astcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0 http://www.linuxidc.com/Linux/2015-05/117960.htm
CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm
在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm
Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm
《细说 PHP》高清扫描 PDF+ 光盘源码 + 全套教学视频 http://www.linuxidc.com/Linux/2014-03/97536.htm
CentOS 6 中配置 PHP 的 LNMP 的开发环境 http://www.linuxidc.com/Linux/2013-12/93869.htm
PHP 的详细介绍:请点这里
PHP 的下载地址:请点这里
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-12/126874.htm