CentOS6.7安装部署php5(详解安装选项与主配置文件)
模块安装---PHP
编译环境:gcc gcc-c++ pcre-devel openssl-devel libxml2 libxml2-devel bzip bzip-devel
1、解压缩安装包
tar xf php-5.0.5.tar.bz2
2、安装的选项
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
--with-mysql=/usr/local/mysql :告诉mysql在什么地方
--with-openssl :能够支持openssl功能
--with-mysqli=/usr/local/mysql/bin/mysql_config :这是一种让php与mysql交互的接口
--enable-mbstring :让php支持各种语言
--with-freetype-dir :自由的可移植的字体库,能够引用特定字体
--with-jpeg-dir :支持图片的
--with-png-dir :支持图片的
--with-zlib :互联网上通用格式的压缩库(我们的数据文件先压缩后发送)
--with-libxml-dir=/usr :扩展标记语言库
--enable-xml :支持扩展标记语言
--enable-sockets :让你的php支持基于套接字的通信
--with-apxs2=/usr/local/apache/bin/apxs :将它编译成Apache的模块,把这一项改为--enable-fpm :启用fastCGI模式。
--with-mcrypt :支持加密功能 ,额外的加密库
--with-config-file-path=/etc :php配置文件的目录
--with-config-file-scan-dir=/etc/php.d :
--with-bz2 :压缩库
--enable-maintainer-zts :加不加这一项,得看Apache,若为perfork模型不用加,若为event模型或work就要加这一项。
安装中出现的错误可以去百度搜!
安装完成之后进行 make && make install
3、php的配置文件
在安装目录中有两个主配置文件
php.ini-development:一个用于开发环境
php.ini-production:一个用于生产环境
放在/etc目录下,名称为php.ini即可!
cp php.ini-production /etc/php.ini
配置好配置文件之后不要启动,因为把他编译成Apache模块!
4、编译安装完成之后,文件在/usr/local/php/,这里面提供的都是一些基本文件。
bin :php的命令行工具
etc :为php的其他的子项目所提供的配置文件的存放路径
include :头文件
lib :库文件
php :php帮助手册
var :
php本身已经安装好了
在第二行已经说明,php的serverAPI模块,他为我们的Apache2添加了一个处理器,让Apache2可以以模块化的方式调用php!
安装路径在第7行叫‘libphp5.so’
5、php与apache结合
到此php本身的配置已经可以了,下面配置是php与Apache结合起来使用
这得需要修改Apache的配置文件来实现
首先得让Apache能够处理php结尾的配置文件
编辑Apache的主配置文件,在AddType这里添加一行
AddType appkication/x-httpd-php .php --->支持php结尾的文件
AddType appkication/x-httpd-php-source .phps --->支持phps的文件
6、同时,我们的Apache也应该有php结尾的页面
修改为<IfModule dir_module>
DirectoryIndex index.html index.php --->支持HTML的页面同时支持php的页面
</IfModule>
修改完成之后重新启动!
7、切换到我们的网页默认目录
cd /usr/local/apache/htdocs/
更改网页文件名称: mv index.html index.php
更改内容:
fastcgi---PHP(独立安装)
(1)编译安装php
tar xf php-5.6.10.tar.bz2
cd php-5.6.10
./configure --prefix=/usr/local/php --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-libxml-dir=/usr --with-openssl --with-zlib --with-bz2 --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-mcrypt --enable-sockets --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-maintainer-zts
提示:
yum -y install bison-devel gcc gcc-c++ bison-devel libxml2-devel openssl-devel bzip2 bzip2-devel
一、安装gcc 由于是独立的主机 需要配置环境 yum -y install gcc
二、 –with-mysql几个选项都要为mysqlnd;因为mysql服务器单独为另一台主机
三、为了支持apache的worker或event这两个MPM,编译时使用了–enable-maintainer-zts选项。
四、error: xml2-config not found. Please check your libxml2 installation.安装libxml2-devel yum -y install libxml2-devel
五、 error: Cannot find OpenSSL's <evp.h> 安装openssl openssl-devel
六、Please reinstall the BZip2 distribution。 安装bzip2 bzip2-devel .yum install bzip2 bzip2-devel
七、 error: mcrypt.h not found. Please reinstall libmcrypt.安装 libmcrypt libmcrypt-devel 这个需要注意,因为一般的yum源中是没有
这2个package的,所以需要先对其下载安装。
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz获取文件
安装libmcrypt
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure –prefix=/usr/local/libmcrypt
make && make install
安装完毕。
此时需要将php安装的命令中修改 --with-mcrypt=/usr/lib/libmcrypt即可。
make && make install 即可。
(2)配置php
cp php.ini-production /etc/php.ini
配置fpm
为php-fpm提供Sysv init脚本,并将其添加至服务列表:
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig –add php-fpm
chkconfig php-fpm on
chkconfig –list php-fpm
为php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
编辑php-fpm的配置文件:
vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
listen = 192.168.2.139:9000 指定端口
pm = dynamic 动态创建进程
pm.max_children = 50 最多多少个进程同时在线
pm.start_servers = 5 刚开始启动服务器时启动几个进程
pm.min_spare_servers = 2 最小几个空闲进程
pm.max_spare_servers = 8 最多有几个空闲
;pm.max_requests = 500 最多一次性接受多少请求
pid = /usr/local/php/var/run/php-fpm.pid
接下来就可以启动php-fpm了:
service php-fpm start
可以使用netstat -tunlp 查看 9000端口
(3)连接Apache
修改配置php-fpm的文件vim /usr/local/php/etc/php-fpm 定位到listen =192.168.197.204:9000(本地主机ip地址)
在该主机上新建虚拟主机目录用于存放网页文件
mkdir -pv /var/www/{frank,frankstar,kelly,kellystar}
(4)配置apache虚拟主机使用php
vim /etc/httpd/httpd.conf
注释 #DocumentRoot "/usr/local/apache/htdocs"
并打开启用 Include /etc/httpd/extra/httpd-vhosts.conf
同时定位 AddType;添加下面两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
并且定位至DirectoryIndex
<IfModule dir_module>
DirectoryIndex index.php index.html #添加index.php(最好添加在最前面)
</IfModule>
还要启用proxy_module proxy-fcgi_module等
LoadModule proxy_module modules/mod_proxy.so #开启
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #开启
(5)编辑虚拟主机 路径/etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@frank.com
DocumentRoot "/usr/local/apache/www/frank"
ServerName www.frank.com
ErrorLog "/usr/local/apache/logs/frank.error_log"
CustomLog "/usr/local/apache/logs/frank.access_log" combined
ProxyRequests off #关闭正向代理
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.197.204:9000/var/www/frank/$1
<Directory "/usr/local/apache/www/frank"> 授权
Options none
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
然后在php服务器上的/var/www/目录下分别建立网页文件,重启服务即可。
(6)为了提高php的性能安装Xcache
在php服务器中安装,Xcache官网下载: http://xcache.lighttpd.net/wiki/Release-3.2.0 这里使用xcache-3.2.0支持php-5.6-10的稳定版
tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/usr/local/php/bin/phpize
提示:
如果出现 Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
需要安装yum -y install m4 autoconf即可
然后./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
安装完毕后会出现这么一行 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
编辑php.ini,整合php和xcache:
首先将xcache提供的样例配置导入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
说明:xcache.ini文件在xcache的源码目录中。
接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
注意:如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。
然后重启服务即在phpinfo的页面中就可看见xcache的选项了。
CentOS6.7安装部署php5(详解安装选项与主配置文件)的更多相关文章
- OpenVPN CentOS7 安装部署配置详解
一 .概念相关 1.vpn 介绍 vpn 虚拟专用网络,是依靠isp和其他的nsp,在公共网络中建立专用的数据通信网络的技术.在vpn中任意两点之间的链接并没有传统的专网所需的端到端的物理链路,而是利 ...
- VS2013安装部署过程详解
注意:缺少安装部署的小伙伴,看上一篇有详细介绍 程序在“Release”平台下编译运行没有错误 第一步:“新建”------“项目”------“其他项目类型”------“安装部署”------“I ...
- 详解php概念以及主配置文件
浏览器仅能够解码HTML格式的文档,对于非HTML格式的文档,浏览器调用插件或者通过CGI接口调用其他程序来解码. 动态网站: 我们在服务器端或客户端执行了一段脚本或者一段程序,这段程序执行的结果根据 ...
- 学习笔记--Grunt、安装、图文详解
学习笔记--Git安装.图文详解 安装Git成功后,现在安装Gruntjs,官网:http://gruntjs.com/ 一.安装node 参考node.js 安装.图文详解 (最新的node会自动安 ...
- Ubuntu14.04下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentO ...
- Ubuntu14.04下Cloudera安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)(在线或离线)
第一步: Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一) 第二步: Cloudera Manager安装之时间服务器和时间客户端(Ub ...
- Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...
- Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...
- Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
随机推荐
- Google Spreadsheet Add-on Links Extractor 谷歌表格插件链接提取器的制作与发布(附源码)
引言 为什么想到制作这么一个插件呢,是因为博主在更新微信公众号[刷尽天下]的后台数据库时,需要有博客园题目帖子的链接,那么就要从这篇帖子 LeetCode All in One 题目讲解汇总(持续更新 ...
- nginx 日志之 access_log分割
如果任由访问日志写下去,日志文件会变得越来越大,甚至是写满磁盘. 所以,我们需要想办法把日志做切割,比如每天生成一个新的日志,旧的日志按规定时间删除即可. 实现日志切割可以通过写shell脚本或者系统 ...
- LaTeX表格紧跟文字 (不影响下方文本对齐)
很多博客会让你用下面这行替换\\begin{table}和\\end{table},但是这样替换以后,表格下方所有文字都变成了居中对齐,section格式也都失效了. \makeatletter\de ...
- Spring Boot 排除自动配置的 4 种方法,关键时刻很有用!
Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了. 比如:数据 ...
- docker for mac的JSON配置文件中的hosts项修改后无法生效
docker for mac的JSON配置文件中的hosts项修改后无法生效 docker 2.1k 次浏览 问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 增 ...
- winform自定义分页控件
1.控件代码: public partial class PagerControl : UserControl { #region 构造函数 public PagerControl() { Initi ...
- sql server数据表大小初始化
sql server表在存储大数据和处理大数据表时,经常会遇到表空间越来越大,有时候会超出应该占有空间大小很多,此时如果表数据是压缩存储的,那么重新执行一下压缩脚本,数据的大小会重新初始化,然后再使用 ...
- React的状态管理工具
Mobx-React : 当前最适合React的状态管理工具 MobX 简单.可扩展的状态管理 MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商 ...
- IO流—字符流
字符流 只能读写文本文件 Reader 抽象类 字符输出流的父类 Writer 抽象类 字符输出流的父类 字符转换输出流: OutputStreamWriter(OutputStream out):创 ...
- Linux命令中service的用法
用途说明 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等.相关的命令还包括chkconfig.ntsysv等,c ...