centos6.5为tengine安装php 5.6支持
1、到php官网下载最新的php版本
我下载的是php-5.6.28.tar.bz2
2、编译安装
2.1安装依赖
2.1.1 解决libxml2和xml2-config依赖
configure: error: xml2-config not found. Please check your libxml2 installation
yum install libxml2
yum install libxml2-devel -y
2.1.2 解决libcurl依赖
error: Please reinstall the libcurl distribution
yum install curl curl-devel
2.1.3解决mcrypt依赖
configure: error: mcrypt.h not found. Please reinstall libmcrypt
yum install php-mcrypt libmcrypt libmcrypt-devel
2.1.4解决cannot get uid for user 'www-data'
启动报错:
Starting php-fpm [25-Nov-2016 13:28:27] ERROR: [pool www] cannot get uid for user 'www-data'
解决:
groupadd www-data useradd www-data -g www-data -s /sbin/nologin
-g:指定新用户所属的用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
2.1.5解决nginx php-fpm.socket Permission denied
connect() to unix:/var/run/php-fpm.socket failed (13: Permission denied)
chmod 777 /var/run/php-fpm.socket
2.2编译php
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/extends \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-mysql=shared,mysqlnd \
--enable-sockets \
--with-mcrypt \
--with-curl \
--with-openssl \
--with-mysql \
--enable-mbstring
编译参数带上了--enable-fpm,这样编译时就会自动为我们编译php-fpm
--with-config-file-path 指定php的配置文件目录
--with-config-file-scan-dir 指定php的其它配置文件放到哪个目录下
同样,执行configure的时候会出现各种依赖库未找到的错误,还是可以通过apt-get install libxxx的方式添加这些库,或者自己下载源码编译安装这些库。
make
make test
make install
2.3配置php
把php的一些二进制执行文件软链接到系统执行目录中
ln -s /usr/local/php/bin/php /usr/local/bin/php ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize
进入php的配置文件
cd /usr/local/php/etc
从源码包中复制php.ini-development或者php.ini-production文件到此目录下,并修改名字为php.ini
其中
php.ini-production 适合生产环境下的php配置文件
//php-fpm程序运行的pid记录文件
pid = /var/run/php-fpm.pid //在[www]区域的配置
user = www-data
group = www-data
//这样设置的目的是让tengine与php-fpm通过这个socket地址进行通信
listen = /var/run/php-fpm.socket
//创建socket地址时的用户、组、权限,
//最好以tengine运行的用户一致,这样tengine才有权限与php-fpm进行通信
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
另外建议sock文件放在/dev/shm目录下 此目录下将sock文件放在内存里面,有助于性能提升
编译php扩展及配置
cd php-5.6.8/ext
举个例子吧,假如说我们要编译一个mcrypt扩展
进入mcrypt模块的源码目录
cd mcrypt
执行phpize来动态添加php扩展
phpize
编译安装
./configure
make
make install
安装好后,我们之前编译php时设置的--with-config-file-scan-dir就派上用场了,
进入设置的/usr/local/php/etc/extends目录,如果没有extends目录可以mkdir一个。
新建一个mcrypt.conf文件
vim mcrypt.conf
extension=mcrypt.so
php-fpm的启动脚本
cp php-5.6.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
修改php-fpm文件
vim /etc/init.d/php-fpm
prefix=/usr/local/php
//这里的pid文件路径就是上面(php-fpm.conf)配置文件中所设置的pid
php_fpm_PID=/var/run/php-fpm.pid
赋予可执行的权限:
chmod +x /etc/init.d/php-fpm
启动php-fpm:
/etc/init.d/php-fpm start
这样php和php-fpm的配置基本就完成了
Tengine代理PHP-FPM
cd /usr/local/nginx/conf/vhost
假设我们的web目录是在/opt/www,域名为t.com
新建一个t.com.conf配置文件
server {
#访问端口
listen 80;
#所绑定的域名
server_name t.com;
access_log logs/host.access.log; location / {
root /opt/www;
index index.php index.html;
}
#设置php文件的代理转发
location ~ \.php$ {
root /opt/www;
#转发至php-fpm配置文件中设置的socket通信地址
fastcgi_pass unix:/var/run/php-fpm.socket;
fastcgi_index index.php;
#所访问的php文件路径地址
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置文件创建成功后执行
/etc/init.d/nginx reload
参考文献:
http://www.php-z.com/thread-1128-1-1.html
centos6.5为tengine安装php 5.6支持的更多相关文章
- CentOS6.4 配置Tengine(转)
CentOS6.4 配置Tengine 1.安装Nginx所需的pcre-devel库 yum install -y gcc gcc-c++ wget ftp://ftp.csx.cam.ac.u ...
- Tengine 安装配置全过程
Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 1.安装必要的编译环境好 由于Tengine安装需要使用源代码自行编译,所以在安装前 ...
- CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程
CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程 0 Posted by :小黑 On : 2012 年 9 ...
- CentOS6下Haproxy的安装配置
Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp: ...
- (转载)CentOS6下 源代码方式安装openERP7.0
CentOS6下 源代码方式安装openERP7.0 安装背景 :CPU32 bit,CentOS 6.4版本,openERP7.0,linux shell为bash,PostgreSQL9.2 1. ...
- VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录
VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录 一.描述 系统描述:win7旗舰版64位系统+VMware Workst ...
- centos6.7下编译安装lnmp
很多步骤不说明了,请参照本人的centos6.7下编译安装lamp,这次的架构是nginx+php-fpm一台服务器,mysql一台服务器 (1)首先编译安装nginx: 操作命令: yum -y g ...
- Centos6.x X64 飞信安装
Centos6.x X64 飞信安装 1,安装飞信依赖包 yum -y install glibc.i686 krb5-libs.i686 libstdc++.i686 zlib.i686 --set ...
- centos6.7下 编译安装MySQL5.7
centos6.7下编译安装MySQL5.7 准备工作 #-----依赖包及MySQL和boost安装包----- #yum包安装: shell> yum -y install gcc-c++ ...
随机推荐
- C++ 四种类型转换
在写代码中经常会有很多的隐式类型转换或显式类型转换. 对于隐式的类型转换主要是放生在赋值的时候,讲变量赋值给不同类型的变量的时候就会发生类型转换,如果是宽化转换(即从占字节少的类型向占字节多的类型转换 ...
- unix下输出重定向
> 为重定向符号 >> 重定向不覆盖原文件内容 example: 1. 标准输出重定向 echo "123" > /home/123.txt ---- 标准 ...
- jsp取得绝对路径的方法(避免请求转发的方式导致路径错误)
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+re ...
- 如何启动一个Java Web应用
最近使用一个开源项目写程序,为了方便沟通加入了相关的讨论群,经常在群里看到有人问项目怎么启动不起来,在此提供一下解决思路1.查看自己下载的项目目录通过文件夹结构,你能够看出来你下载的是一个maven项 ...
- PHP之数组array
$switching = array( 10, // key = 0 5 => 6, 3 ...
- 第一次用Axure~
刚刚接触axure感觉好多不会呢~但是一步一步来吧~ 操作到后来发现字体的变化很奇怪,总是只有一个字体出现,只有在编辑时才出现我设定的字体. 但最后还是有个样子出来了~做了一个联系的新页面 最后学姐又 ...
- java中与数据库的连接
package unitl01; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet; ...
- 【Mocha.js 101】钩子函数
前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...
- Life of a triangle - NVIDIA's logical pipeline
Home GameWorks Blog Life of a triangle - NVIDIA's logical pipeline Life of a triangle - NVIDIA's l ...
- MFC如何隐藏RibbonBar的QAT QuickAccessToolBar(快速访问工具栏)
在CMainFrame的中的OnCreate函数中找到 m_wndRibbonBar.LoadFromResource(IDR_RIBBON); 在这一行的下面添加 CMFCRibbonQuickAc ...