在linux环境下php的安装有很多LNAMP一键安装包,可以自动编译安装好完整的环境,这篇文章主要介绍的是手动编译安装PHP7的方法。
php本身是c和c++编写的程序,想要正确运行和编译安装php我们是需要php基础依赖的。所以我们在centos当中打开terminal输入:
sudo yum install gcc gcc-c++ libxml2-devel
上面这条命令是通过yum安装c和c++的语言环境,后面libxml2-devel是一个C语言操作xml的库,这样PHP也就可以操作xml了。以上三个软件都是PHP必须的依赖。centos7.3版本当中c和c++默认都是安装好的。
这里我们想要通过wget通过PHP源码的镜像链接来下载PHP如果centos里没有wget我们需要安装一下:
sudo yum install wget
登陆PHP下载的网址 http://php.net/downloads.php
找到对应的镜像,右键复制链接地址这里下载的镜像是PHP7 http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror
最后通过wget下载这个地址里解析出来的文件就可以了。
wget http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror
下载好以后,我们输入:
ls
可以在目录里面看到一个mirror文件,这里面就包含我们刚刚下载的PHP源码了。
注意:如果你用windows下载这个文件的话,文件会保存成名字为php-7.1.0.tar.gz。因为windows需要根据文件的后缀名来判断这个文件使用什么样的应用程序打开,但是在linux这就是无所谓的事情了,即便文件的名字的变成了mirror我们仍然可以使用tar软件来解压这个文件。这是linux和windows的一个小差异。
我们在当前目录输入:
tar -zvxf mirror
centos就会将我们刚刚下载的PHP7解压到当前目录。ls查看我们会看到一个php7的文件夹。
在安装之前我们需要配置一下编译时候的参数。这里需要用到configure脚本命令。
configure命令是为了方便编译安装设置所使用的命令,linux大部分编译安装的软件可能都会用到这个命令,大家可以想象windows下安装软件我们要一直点下一步下一步,每一个窗口都要设置一些参数,比如如何安装,文件安装到什么地方。
configure命令就是做这些事情的,相对的它更加强大一些。编译安装PHP的过程当中我们需要使用configure命令配置安装路径以及开启fpm。 cd到php7源码的根目录下
./configure --prefix=/usr/local/php7 --enable-fpm
configure命令后面的参数--prefix的意思是指定软件安装的目录,linux用户自己安装的软件一般放到/usr/local/目录当中,这只是一件约定成俗的事情,你也可以将软件编译安装到你想放的位置。
后面的 --enable-fpm是开启PHP-fpm功能的一个参数,使用nginx的时候我们会用到这个功能,所以在别的文章里再介绍它。
还是要在PHP7源码的根目录下我们使用make进行编译
make
然后等系统自动编译就行了,这个要等好一会。编译完成会显示complete字样。
这里说说make,make是GUN提供的一种方便编译C语言的工具,如果没有可以通过
sudo yum install make
来安装。
还是在PHP7源码根目录当中
sudo make install
之后系统会将PHP安装在之前configure配置的目录当中。
我们创建一个test.php文件用于测试我们的PHP是否安装成功并且可以使用。
vim test.php
test.php当中的代码
phpinfo();
然后用PHP执行这个文件
/usr/local/php7/bin/php test.php
/usr/local/php7/bin/php是为了定位PHP程序的位置,如果你在安装结束以后配置了PHP的环境变量,可以直接使用PHP test.php来运行PHP文件。
如果出现一堆PHP7环境变量的提示就说明PHP安装成功了。
在linux环境下编译安装PHP的时候没什么技术难点,本质上和其他编译安装的软件流程基本是一样的。注意该开启的参数开启比如fpm。否则又要重新编译安装这样就很麻烦了。