Ubuntu Server 14.04 LTS上编译安装PHP7

作者: shaneZhang 分类: 互联网技术 发布时间: 2018-03-07 12:34

原文地址

由于是在服务器上安装,所以都是命令行,下面就列出命令不给出结果了,如果出现错误请自行查找原因。

本文是在Ubuntu Server 14.04 LTS上编译的,因为15.04之后Ubuntu换用了systemd来管理服务,所以本文的内容并不适用。

本文章编译的是FPM,Nginx和Apache2都可以使用,如果要编译Apache2的模块,请不要参考本文。

由于PHP7废弃了很多功能,所以一些依赖这些功能的程序可能无法运行,尝鲜前请三思。比如很多国产软件都在依赖的mysql相关函数,如果自己开发php应用请用mysqli代替。不过WordPress是没有问题的,尽情使用吧。

下载

很简单,上http://www.php.net/downloads.php然后找到最新版下载就行了,这里我们下载的是php-7.0.2.tar.gz。由于是日本的VPS,所以用日本的镜像。参数-O表示用后面的文件名来保存,否则会保存为地址的最后一段mirror。

要编译我们就得解决依赖关系,不过首先,我们先把工具完善了。

然后就是各种依赖了,这部分很难一次搞定,只能一次一次地运行configure然后看给出的错误信息来查找所需要的包。但是我们偷个懒,先把编译PHP5需要的包装上:

然后几个漏网之鱼就好弄了。根据我的经历,还需要如下软件包:

然后就是编译设置了。下面给出了一个满足大多数需求的参数,直接全部复制到终端中粘贴。这些参数中的目录是模仿Ubuntu自带的PHP5的目录来的,后面建立配置文件时也是参照Ubuntu自带的PHP5的,如果你理解其中的含义,也可以自行设置。

然后运行configure就行了。

仔细看最终结果,如果没有错误的话就可以编译了。如果提示缺少依赖,请安装相应的dev包。如果有错误的话请自行上网查找解决方法,或者在本文后留言提问。

编译安装

编译也很简单,直接make就行了。

编译完成后会提示你make test,你可以试试,但十有八九是会出错的,你可以报告一下问题。这里我们就不说了,直接安装吧。

如果没有出错,接下来就是最麻烦也最重要的配置了。

复制配置文件

所有配置文件操作都要使用root权限,所以我们先切换为root(如果不进行这步操作,后面的命令都要加上sudo):

刚才指定的配置文件位置是/etc/php7/fpm/所以我们首先要建立这个目录:

编译的时候配置都已经帮你建立好了,在安装目录和源码目录下都有,我们就不舍近求远了,就在源码目录下操作了。

然后是启动服务的文件:

然后就是复制最重要的php.ini:

修改配置文件

配置文件到位了,接下来就是修改了,同样这些操作都需要root权限。下面修改文件都是使用vim,如果你使用其他编辑器,请自行修改命令。

修改php.ini就不说了,和PHP5的差不多,主要是post_max_size和upload_max_filesize两个参数和其他一些你需要的参数:

然后就是修改fpm的配置文件。

这个文件主要是修改三个地方:

然后就是fpm的监听池配置:

这个文件修改两个地方:

;listen.owner = www-data和;listen.group = www-data前面的;去掉。
最后来到我们服务配置了,首先加上可执行的权限,然后编辑它:

这个文件也需要改三个地方:

启动服务

这时候我们已经可以用service命令来启动php7-fpm服务了,但是还不能自动启动,所以我们要执行如下命令来让它自动启动:

最后一步

到此PHP7的编译安装就全部完成了,但是别急,还有Nginx还没配置呢。

也很简单,打开Nginx的站点配置之后,把php相关配置下的fastcgi_pass参数改成我们的监听池就行了,就是fastcgi_pass unix:/var/run/php7-fpm.sock;,配置过PHP5的话一定不会陌生。

如果使用的是Apache2,也是类似的,把监听池改成/var/run/php7-fpm.sock就行了。

还有

升级

要升级,只要重复下载、编译设置、编译安装这三步就行了。

优化

优化就是修改/etc/php7/fpm下的php.ini、php-fpm.conf和pool.d下的相关文件,这个请自行上网搜索相关文章。

卸载

首先执行sudo update-rc.d php7-fpm remove,然后删除/usr/share/php7、/etc/php7、/etc/init.d/php7-fpm这些文件和目录就行了。

替代PHP5

诶?上面没有替换PHP5吗?是的,如果你看仔细点,你会发现我们的目录都是带有7的,也就是说是和PHP5并存的。

如果你不想用PHP5了,只需要执行sudo apt-get autoremove php5,然后你想在命令行下执行php的相关命令的话,你还要用update-alternatives来把/usr/share/php7/bin下面的程序添加到系统中,或者简单点直接在/usr/bin目录下创建指向这些程序的符号链接。

如果你还要用PEAR的话,还需要自行建立一些配置文件才行,这个不在本文的讨论范围之内,请自行研究。

对于配合15.04以上的systemd使用的PHP7的编译安装,以后有机会再说吧。

本页面支持AMP友好显示:Ubuntu Server 14.04 LTS上编译安装PHP7

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 5 =

This site uses Akismet to reduce spam. Learn how your comment data is processed.