实战Linux CentOS7 安装LNMP环境架构过程之编译PHP5.6

周一了,我又TM的开始码代码了,各种BUG各种有,让我抓腮挠耳,我还是只适合做安静的美男子,上次我们安装完nginx,今天开始学习编译安装php,我安装的要安装的是php5.6
连接ssh后 进入下载文件目录 /home/jiaruo/Downloads
wget下载php 地址php官方有 我下载的是5.6

wget http://hk1.php.net/get/php-5.6.27.tar.gz/from/this/mirror

下载完毕 我们用ls 命令查看 多了 个mirror文件 因为不是压缩包,我们把它重命名为php-5.6.27.tar.gz 来进行解压
 mv mirror php-5.6.27.tar.gz

在ls查看 果然多了个 php-5.6.27.tar.gz的文件 然后来进行解压
tar xvf php-5.6.27.tar.gz

解压完毕后 ls查看是否多了个php-5.6.27的文件夹,如果没有 请重新下载解压, 进入php-5.6.27这个文件夹 ls 查看 是否有configure 这个文件 ,有的话 开始检测
通常在php安装的时候 需要用到gd mysql mbstring 等模块,所以我们在编译的时候,先把常用的都安装上,如果以后还有需要,请重新编译

./configure --prefix=/usr/local/php5.6
--with-gd
--with-freetype-dir
--enable-gd-native-ttf
--enable-mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-mcrypt
--enable-mbstring
--enable-zip
--enable-fpm #是让PHP作为独立的进程来运行(默认占据9000端口)


执行上面命令,我这里发现报错
 error: xml2-config not found. Please check your libxml2 installation.

意思就是找不到libxml2,找不到我们就安装被,这还不简单,我们使用yum安装

yum install libxml2
yum install libxml2-devel -y

执行完上面两条命令后,如果没报错我们来检查下libxml2是否安装
[root@localhost ~]# find / -name "xml2-config"
/usr/bin/xml2-config

显示在usr/bin/有个xml2-config的文件
说明安装成功 我们重新执行上面编译php的命令

./configure --prefix=/usr/local/php5.6
--with-gd
--with-freetype-dir
--enable-gd-native-ttf
--enable-mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-mcrypt
--enable-mbstring
--enable-zip
--enable-fpm #是让PHP作为独立的进程来运行(默认占据9000端口)


一定是在php源码包执行,否则找不到该目录,执行完毕 又出现error
configure: error: Cannot find OpenSSL's 

缺少OpenSSL继续安装
yum install openssl-devel
执行完毕,继续编译php ,又报错,我尼玛
configure: error: png.h not found.
说是png.h什么玩意找不到
百度下,继续安装
yum install libpng-devel
,安装完毕,继续编译php,想哭的心都有了,我想安装个php就这么费劲么,算了 不跟他较劲

报错:Configure: error: freetype.h not found
继续安装
yum install freetype-devel
我都不想说什么了
又报错,
configure: error: mcrypt.h not found. Please reinstall libmcrypt.

百度下
yum install php-mcrypt libmcrypt libmcrypt-devel

安装提示找不到改包,说明linux自带的yum源不存在这个包我们去换个yum源
yum install epel-release //扩展包更新包
yum update //更新yum源
yum install libmcrypt libmcrypt-devel mcrypt mhash
上面是三条命令
完事之后继续安装php
提示
Thank you for using PHP.
,继续
make && make install
,如果有报错,就解决错误问题,百度是个好东西
php5.4之后php作为一个独立的进程来运行,所以我们来启动php,进入cd /usr/local/php5.6/目录 里面有个sbin的文件夹,里面放的都是可执行文件进入sbin里面发现有个php-fpm 我们直接来运行 直接报错

[23-Oct-2016 19:31:07] ERROR: failed to open configuration file '/usr/local/php5.6/etc/php-fpm.conf': No such file or directory (2)
[23-Oct-2016 19:31:07] ERROR: failed to load configuration file '/usr/local/php5.6/etc/php-fpm.conf'
[23-Oct-2016 19:31:07] ERROR: FPM initialization failed
You have new mail in /var/spool/mail/root

就是找不到/usr/local/php5.6/etc/php-fpm.conf呗
我们进etc文件夹看看 发现有一个php-fpm.conf.default 直接copy一份试试在启动
./php-fpm 
没有任何信息,说明启动成功
ps aux |grep php

root 51508 0.0 0.3 169816 3968 ? Ss 19:33 0:00 php-fpm: master process (/usr/local/php5.6/etc/php-fpm.conf)
nobody 51509 0.0 0.3 169816 3520 ? S 19:33 0:00 php-fpm: pool www
nobody 51510 0.0 0.3 169816 3520 ? S 19:33 0:00 php-fpm: pool www

php进程在运行

实战Linux CentOS7 安装LNMP环境架构过程之编译PHP5.6_第1张图片
QQ20161024-0.png

说明php编译完毕 并且安装成功,但是nginx和php都是独立的程序,目前还没有任何关系,需要我们来把他们两个打通在,接下来就开始打通两者,写在下一篇文章里

你可能感兴趣的:(实战Linux CentOS7 安装LNMP环境架构过程之编译PHP5.6)