烂泥行天下 php,烂泥:php5.6源码安装及php-fpm配置与nginx集成

本文首发于烂泥行天下。

LNMP环境的搭建中,现在只有php没有源码安装过。这篇文章就把这个介绍下。

注意本篇文章使用的centos 6.5 64bit。

登陆centos下载php5.6的安装包。php的软件包可以去国内的souhu镜像站点去下载。

7bf372cc96f00f56e17e16bbcc776402.png

在安装之前,我们需要安装php5.6编译时所依赖的软件包。如下:

yum -y install gcc gcc-c++ libxml2 libxml2-devel

684e76a97609da3d04fe18c024325fb3.png

4d0cd1e2d12289e83e54aeb492c2b6b6.png

以上软件包安装完毕后,我们现在来解压刚刚下载的php5.6源码包。使用如下命令:

tar -xf php-5.6.2.tar.gz

bf20df0a3494b05bf5c7f6e0b5a0f302.png

进入php5.6的解压目录,现在开始配置php5.6,使用如下命令:

cd php-5.6.2

./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysql

8af5b9798c60e5ff0564c5536424cccd.png

如果没有错误的情况下,配置完毕后。系统会出现如下的提示信息:

c7a9c4dad3b6d6199440267036623c11.png

注意上述命令中--enable-fpm的作用是开启php的fastcgi功能即开启php-fpm功能,--with-mysql=/usr/local/mysql是启用php支持mysql的功能,/usr/local/mysql是mysql数据库的安装路径。

--enable-mbstring表示启用mbstring模块mbstring模块的主要作用在于检测和转换编码,提供对应的多字节操作的字符串函数。目前php内部的编码只支持ISO-8859-*、EUC-JP、UTF-8,其他的编码的语言是没办法在php程序上正确显示的,所以我们要启用mbstring模块。

同时我们也只是简单的开启和扩展php的一部分功能,其他需要的功能,请自行添加。

配置完毕后,我们现在来编译php,使用make命令,如下:

make

722500b9ae6b79c05828b53593067aff.png

php编译的时间比较长,根据机器的性能不同需要等待10-20分钟左右。编译完毕后的截图,如下:

a103bb14424e779184cdf894b36bd4e2.png

编译完毕后,我们现在开始安装php,使用如下命令:

make install

42add74cb2718eff3246936baa3a4e84.png

安装完毕后,我们可以通过php –v命令查看是否安装成功。如下:

php –v

19d8444193a69ba980c164634a52c7f6.png

通过这样安装完毕后,你会发现在/usr/local/lib目录下没有php.ini文件。在这我们就先复制php安装文件提供的模版,如下:

cp php.ini-production /usr/local/lib/php.ini

d3eff6f9ad230128a632682a5d975a05.png

注意php.ini文件一般在/usr/local/lib/和/etc目录下。有关php安装完毕后,没有php.ini文件的,我们再另外一篇文章再介绍。

不要以为到这php的安装就完毕了,LNMP环境中的nginx是不支持php的,需要通过fastcgi来处理有关php的请求。而php需要php-fpm这个组件来支持。

在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后的php-fpm只需要在安装php-fpm开启这个功能即可。这个也就是前边,我们再配置php使用到的那个命令--enable-fpm。

php-fpm功能开启后,我们还需要配置php-fpm。其实php-fpm的配置文件在安装php时,已经为我们提供了一个配置文件的模版。该模版为/usr/local/etc/php-fpm.conf.default,如下:

more /usr/local/etc/php-fpm.conf.default

b80d3e01ac50f8ffae510d0dc169db5e.png

我们现在只需要复制一份该文件,并重命名为php-fpm.conf,如下:

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

126bc0a41837c9f55384185b7513cc23.png

为了让php-fpm已服务的形式启动。我们需要复制php安装目录下/sapi/fpm/init.d.php-fpm文件。如下:

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

66166d97f673dae1d05eb60f6622bf6c.png

通过上图,我们也可以很清楚的看到php-fpm文件目前没有执行权限。赋予php-fpm执行权限,并启动php-fpm,如下:

chmod a+x /etc/init.d/php-fpm

/etc/init.d/php-fpm start

netstat -tunlp |grep 9000

c4feeae15b7db5da8b79a19e30aede09.png

通过上图,我们可以很明显的看到php-fpm已经正常启动。

注意php-fpm默认监听的是9000端口。

现在再来配置nginx,使其支持php,如下:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

1d37a6a83a6d2437f1a1432a8530f22b.png

然后在nginx的网站根目录下新建index.php文件内容如下:

vi /usr/local/nginx/html/index.php

ceac70f57b0be86aca393848d28cda4f.png

现在来启动nginx,如下:

/usr/local/nginx/sbin/nginx

netstat -tunlp |grep 80

25a83b8ce3e5c01e8b7ec58c68d6f40b.png

nginx启动完毕后,现在来访问网站,如下:

93069b43c4f95a825ccccde51ee7cd9f.png

416d1be713676369e67ab5b50a2f579e.png

通过上图,我们可以很明显的看到。php目前已经安装成功,并且也成功的支持mysql数据库。同时也与nginx集成完毕。

至此。我们的php5.6的安装到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值