前言:
其实对于很多php程序员来说,Linux可能还是属于一个略懂的状态.比如搭建环境大家更加乐意去使用继承开发环境.对于源码编译安装比较陌生.当然我也不例外.不过我认为一个程序员无论你常用的开发语言是什么.linux都是一个绕不开的东西.所以今天就学习下如何使用源码编译安装PHP7
1.前提
首先我使用的是CentOS7的操作系统,也是一个比较主流的系统.其他发行版本甚至mac 应该方法都是大同小异
当我们安装php之前我们需要到官网去下载一个源码包
- 点击左上角的Downloads
- 选择php版本(我这里选择的最新版本)
-
选择一个下载源,右键复制链接(我的服务器在美国,我就选了美国 大家可以自行决定)
下面就进入到服务器环节了
首先要下载一个包,我比较常用的命令是wget,如果你没有安装wget的话
yum install wget
- cd到你要下载的目录,使用wget命令下载
#把刚刚复制的链接粘贴到命令后面
wget http://cn2.php.net/get/php-7.2.6.tar.bz2/from/this/mirror
-
下载完成后就有这个文件拉
- 解压mirror 文件
tar -xf mirror
- 解压出来就如上图会有一个php文件夹,这就是我们的php安装包了
- 随后我们cd进入这个包里面.使用它里面的编译工具 configura
这个configure实际上是一个shell脚本,用来编辑我们安装包的,编译可以选择很多的配置,比如安装某些扩展,排除某些扩展,设定路径等等
#可以使用help来查看可以有那些配置
./configure --help
开始安装
- 安装依赖
首先我发现php需要必须要有两个依赖,第一是gcc(很多服务器镜像有)
第二个是libxml2
那么的安装方式非常简单
#gcc
yum install gcc
#libxml2
yum install libxml2-devel
- 编译php
还是我们之前讲的使用./configrue来编译,不过我们可以做一些配置.(当然不配置也可以)
#--prefix=/后面更你想要安装的地方,也就是window安装软件时询问你的安装目录
./configure --prefix=/service/php
如果你的服务器跟我一样是个垃圾,内存超级小 那么我推荐你在后面加上 --disable-fileinfo
./configure --prefix=/service/php/ --disable-fileinfo
然后就是等待(直到出现 Thank you for using PHP)
那么我们编译完成之后呢,就是安装啦,安装分为两部
#第一步
make
#第二部
make install
也可以合二为一, make&&make install
又是个漫长的等待(谁叫我服务器烂呢)
验证安装
如果安装没有报错,那么应该是ok了 我们去验证一下
首先cd到你刚刚设置的目录下面去
我的是在/service/php
bin目录里就是一个可执行文件的目录,我们进入
cd bin
我们要验证php是否安装成功,我们就直接创建一个php文件,看看是否可以执行就好了
#创建一个php文件
vim index.php
进入后写上一点代码,并保存
<?php
echo 'hello world';
然后我们使用php去执行index.php 文件
如上图我们看到的确输出了hello world 由此可以证明我们的安装php是 成功的!
6月3日更新
接着之前的写.我发现虽然我安装php7成功,并且可以使用php去执行php代码了.可是还有很多没有完善的地方
配置环境变量
也许是自己之前一直使用继承环境的原因,环境变量一直都是配好了的,非常方便.我就忘了还有这个事了
由于linux的强大,配置环境变量又分为临时设置,给某个用户设置,和全局设置.为了方便,我就直接全局设置了
#只需要配置这个文件便可以全局生效
vim /etc/profile
进入文件之后,在文末加上
#$PATH后面是你自己的php文件所在的路径
PATH=$PATH:/service/php/bin
export PATH
然后保存退出,再执行一个命令就ok了
source /etc/profile
下面我们测试一下
php -i
如果是打印出了很多的php信息的话就代表配置成功!
配置php.ini
之前没有注意到的部分还有,我们的php安装目录里面没有php.ini文件.我查阅了些资料.php.ini是在我们下载的安装包里面,需要我们把它copy到自己的安装目录里
我们先去找找看
我们就先挑选开发版本的ini文件
在copy ini文件之前,这里还有一个细节,我们php在编译的时候我们并没有去配置它的ini文件的目录位置.那么就是一个默认的位置.那么这个默认的php.ini的位置在哪里呢?
这个可以使用刚刚使用过的命令 php -i 里面查看到,我们使用管道将我我们需要的信息过滤出来
好了我们现在知道了配置的php.ini目录的位置了.我们就把文件移动过去吧
cp php.ini-development /service/php/lib/php.ini
这样就可以通过php.ini文件来配置我们的php了
注意目录一定要和php -i 里面查出的位置保持一致哦,不然修改ini文件是不会生效的
好了今天就写到这里了.之后我会多写一些关于linux的文章,也是自己学习的一个路径.如果有不对的地方,欢迎大神指点
谢谢
以上