centos 6.2 linux下安装php5.6.6源码

PHP在 5.3.3 之后已经把php-fpm并入到php的核心代码中了。 所以php-fpm不需要单独的下载安装。
要想php支持php-fpm,只需要在编译php源码的时候带上 --enable-fpm 就可以了

一:yum安装php的依赖库

yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libiconv libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel

二:下载 php5.6 源码

wget http://cn2.php.net/distributions/php-5.6.6.tar.gz

tar -zxvf php-5.6.6.tar.gz
cd ./php-5.6.6/

三:php配置安装

# 配置php的编译参数
./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-freetype-dir=/usr/lib64

# 开始编译安装
make
make install

然后就安装到了 /usr/local/php 目录下

四:配置php.ini和php-fpm

php.ini配置

首先我们需要配置的是php.ini这个文件

安装目录有2个文件:php.ini-development和php.ini-production

php.ini-production 线上版本使用

php.ini-development 开发版本使用

我们选择development进行配置

# cp php.ini-development /usr/local/php/lib/php.ini

php-fpm配置

首先启动php-fpm:

/usr/local/php/sbin/php-fpm

报错了
ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
ERROR: FPM initialization failed

错误信息说是找不到php-fpm.conf

到php的配置目录
cd /usr/local/php/etc
有一个php-fpm.conf.default的文件,cp复制
cp php-fpm.conf.default php-fpm.conf

编辑 php-fpm.conf
找到以下配置项, 配置如下

pid = run/php-fpm.pid
user = www
group = www

再次运行
/usr/local/php/sbin/php-fpm
报错了:
ERROR: [pool www] cannot get uid for user 'www'
ERROR: FPM initialization failed

说www用户不存在,那么建立www用户和用户组

groupadd www
useradd -g www www

再次启动

/usr/local/php/sbin/php-fpm

没有任何报错,说明运行成功了

验证是否成功

ps aux|grep php-fpm

出现了 php-fpm进程:
root 15448 0.0 0.2 210972 4856 ? Ss 16:10 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www 15449 0.0 0.2 213056 4768 ? S 16:10 0:00 php-fpm: pool www
www 15450 0.0 0.2 213056 4768 ? S 16:10 0:00 php-fpm: pool www
root 15492 0.0 0.0 112648 964 pts/0 R+ 16:11 0:00 grep --color=auto php-fpm

五:加入开机启动

开机启动的配置文件是:/etc/rc.local
# vi /etc/rc.local

/usr/local/php/sbin/php-fpm  # 添加进来

六:php-fpm的一些命令

我们在新安装扩展后,是需要重新php-fpm的,已使扩展生效。
最简单粗暴的重新php-fpm的方式是:
先找到php-fpm的进程号,kill 掉,再用/usr/local/php/sbin/php-fpm 这样启动。
其实还有更多温和的方法,就是使用信号。
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:
kill -INT `cat /usr/local/php/var/run/php-fpm.pid` php-fpm 重启:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

七:nginx配置解析php

nginx的配置安装见前面文章:http://www.cnblogs.com/starlion/p/8875982.html

1、进入nginx目录
cd /usr/local/nginx

2、编辑配置文件
vi ./conf/nginx.conf

在 server 下找到

location / {
root html;
index index.html index.htm index.php; # 加上 index.php
}

去掉前面注释 #

location ~ \.php$ {
root /usr/local/nginx/html; # 绝对路径配置到html下
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #验证时候解析php出错,/scripts需要换成$document_root, 下面有解释
include fastcgi_params;
}

3、然后平滑重启nginx
./sbin/nginx -s reload
没有报错,说明重启成功

八:验证php是否配置成功

在 /usr/local/nginx/html 目录下编辑 vi index.php

<?php
echo phpinfo();
?>

在浏览器上输入 http://ip:80/index.php 然后出现了错误
File not found

查看nginx的日志,配置日志在 ./logs 目录下
首先查看access.log 日志,出现了如下错误信息
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: ***.107.***.138, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "1**.24.**.115"

在看 error.log 日志信息出现了下面信息
[error] 16403#0: *42 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: ***.107.***.138, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "1**.24.**.115"

根据上面的 FastCGI sent in stderr: "Primary script unknown"
这是在配置nginx解析php脚本时候出现了错误

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

修改成如下方式($document_root):

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

$document_root 代表当前请求在root指令中指定的值:

修改之后重启nginx
./sbin/nginx -s reload
重新刷新浏览器,出现如下图所示,说明配置成功了

php php-fpm安装 nginx配置php的更多相关文章

  1. CentOS 7 安装 Nginx 配置反向代理

    Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Ngi ...

  2. unbuntu14.04 安装nginx配置

    记录一下linux下安装nginx的所需要的配置. 首先从 nginx官网 下载所需要的版本,复制链接,执行 wget http://nginx.org/download/nginx-1.8.0.ta ...

  3. Mac安装nginx配置过程

    mac电脑系统重装了,记录一下安装nginx的过程: 1.打开终端 2.安装Command Line tools xcode-select --install 3.安装brew命令 ruby -e & ...

  4. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginxrpm   -qi  nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...

  5. RedHat 6.6下安装nginx,配置HTTPS

    1.安装依赖包 yum -y install pcre-devel openssl-devel zlib-devel 2.下载nginx安装包到服务器上,当前使用版本nginx-1.15.5.tar. ...

  6. yum 安装nginx(配置开机启动)

    yum install -y nginx 通过yum安装的时候提示下面的错误 [root@localhost yum.repos.d]# yum install nginx 已加载插件:fastest ...

  7. centos7安装Nginx 配置及反向代理

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Ngin ...

  8. 在CentOS上安装Nginx配置HTTPS并设置系统服务和开机启动(最全教程)

    友情提示:全部配完大约需要20分钟,本教程配合 xshell 和 xftp 使用更佳. 系统配置:CentOS 7.5 本教程 摘繁华 版权所有. 操作按键 常用按键: 复制操作:Shift+Ins ...

  9. 安装Nginx配置常用参数含义

    --prefix #nginx安装目录,默认在/usr/local/nginx--pid-path #pid问件位置,默认在logs目录--lock-path #lock问件位置,默认在logs目录- ...

随机推荐

  1. 各个版本spring的jar包以及源码下载地址,目前最高版本到spring4.3.8,留存备用:

    http://maven.springframework.org/release/org/springframework/spring/

  2. 简单触发器实例insert

    create or replace trigger tr_tb_if_archivesafter inserton tb_if_archivesfor each rowdeclarepragma au ...

  3. CF343D Water Tree

    题目链接 题目翻译(摘自洛谷) 疯狂科学家Mike培养了一颗有根树,由n个节点组成.每个节点是一个要么装满水要么为空的贮水容器. 树的节点用1~n编号,其中根节点为1.对于每个节点的容器,其子节点的容 ...

  4. SpringMVC 复杂对象数据绑定

    表单在 web 页面上无处不在,有些表单可能很复杂,大部分表单里的输入项都会对应后端对象属性.SpringMVC 可以自动将表单值绑定到对象上!而且能绑定很复杂的对象!!这里就不写那些基本的表单绑定了 ...

  5. Linux服务器下安装vmware虚拟机

    安装包 1.VMware 14 https://dl-sh-ctc-2.pchome.net/08/b7/VMware-Workstation-Full-14.1.3-9474260.x86_64.b ...

  6. B - I Hate It HDU - 1754 线段树区间最大值板子(单点更新,区间最大)

    第一次打 改了半天  各种小错误 难受 #include<cstdio> #include<iostream> using namespace std; +; int a[ma ...

  7. [洛谷P1484] 种树

    题目类型:堆+贪心 传送门:>Here< 题意:有\(N\)个坑,每个坑可以种树,且获利\(a[i]\)(可以为负).任何相邻两个坑里不能都种树,问在最多种\(K\)棵树的前提下的最大获利 ...

  8. IDEA 简单的正则匹配

    IDEA在进行查看或替换的时候,勾选Regex 选项就可以进行正则匹配查找了 几个简单实用的正则: 以什么开头,以什么结尾的字符串 以aa开头,以bb结尾的字符串aa.*bb 从开头到某个字符串为止的 ...

  9. RFC2544测试指标

    RFC2544测试指标 参考:https://wenku.baidu.com/view/3abbb5bf960590c69ec3769d.html  RFC2544性能测试介绍 参考:https:// ...

  10. pycharm opencv4.0安装使用

    pycharm+opencv4.0 还记得去年冬天装了两回opencv3,每次都搞得死去活来的.. 今天也是查了一上午,什么anaconda,vs,但是我是在pycharm的虚拟环境中安装,突然看到一 ...