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. 官网下载旧版本jdk,老版本jdk,jdk1.7,jdk1.8

    1.进入中文oracle官网(不是国内官网下载速度超级慢): http://www.oracle.com/technetwork/cn/indexes/downloads/index.html 2.进 ...

  2. henrylee2cn简单的rpc服务

    server 端package controllers import ( "github.com/henrylee2cn/teleport" "model/system& ...

  3. Druid简单使用

    一.添加maven依赖 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <depende ...

  4. 蒟阵P3390 【模板】矩阵快速幂

    代码如下: #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> ...

  5. HDU 4344-Mark the Rope-大数素因子分解

    注意只有一个素因子的情况. #include <cstdio> #include <algorithm> #include <cstring> using name ...

  6. JS的初步了解

    JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备.JavaScript 是脚本语言 HTML 中的 ...

  7. Django+Xadmin打造在线教育系统(六)

    讲师相关功能实现 拷贝并修改teacher-list.html和teacher-detail.html, 继承base模板 # 讲师列表 path('teacher_list/', TeacherLi ...

  8. 【BZOJ5316】[JSOI2018]绝地反击(网络流,计算几何,二分)

    [BZOJ5316][JSOI2018]绝地反击(网络流,计算几何,二分) 题面 BZOJ 洛谷 题解 很明显需要二分一个答案. 那么每个点可以确定的范围就是以当前点为圆心,二分出来的答案为半径画一个 ...

  9. 【dfs】p1451 求细胞数量

    题目描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.(1<=m,n<=100)? 输入输出格式## ...

  10. IncDec Sequence(差分)

    题意:给定一个序列,可以对一个区间进行加1或减1的操作,问最少需要多少次可以将序列的值一样. Solution 我们将序列差分,得到一个差分数组. 对于每一个区间操作,我们可以把它转化为在查分数组上某 ...