Home > Article > Backend Development > Ubuntu Server Deploy 已经支持php7
原谅我无耻的打个广告,ubuntu server deploy已加入php7分支,php7的分支已经集成了php扩展的服务器的安装、启用、禁用。
git clone git checkout php7./php.sh install./php.sh install-ext imagick./php.sh install-ext redis./php.sh en redis./php.sh dis imagick
ubuntu server deploy是一个使用Bash语言开发,专门用于Ubuntu Server的Tengie(Nginx)和PHP环境安装部署使用的项目。已经实测过可用于docker(实际上就是直接获取这个项目的源代码而已)。
master分支是php 5的部署。
php7分支是php 7的部署。
扩展安装目前只在php7分支中支持,未来会移植到主分支上。
因为不同的php扩展,依赖不同的dev库,同时因为目前pecl上面的大多数扩展还不支持php7,需要自己去gihub获得特定的源代码。所以,提供了一个php_ext目录,这目录存放的sh脚本对应的就是不同的扩展所需要预备执行的内容。基于这个脚本,你完全可以去取得不同的源代码来进行编译,比如,好像php-memcached的安装:
#!/usr/bin/env bashapt-get install libmemcached-dev -ygit clone cd php-memcachedgit checkout php7 # 取出php7的分支代码get_source=1 # 声明已经取得了扩展的源代码,无需再去pecl库下载了config_args="${config_args} --disable-memcached-sasl" # 添加指定其他的configure参数# 你也可以指定具体的configure的命令config_cmd
除了php.sh以外,主要使用的还有server.sh和tengine.sh
server.sh主要是Ubuntu服务器的各种初始化。tengine.sh则是tengine的部署。
所有的服务、服务器的部署参数,可以通过user目录里面脚本对参数进行重载(我实在不喜欢在命令行的参数上去折腾)。执行server.sh、tengine.sh、php.sh,都会加载整个user目录中的所有脚本。
补充说明一下,Ubuntu服务器的系统服务管理,使用的sysv-rc-conf。
这个项目的设计,是支持多种php版本同时共存的。所以php7分支部分,所有php相关的服务、脚本,都加上了php7的前缀,比如:php7-config,php7ize,php7-pecl等,而php-fpm的进程,也变为php7-fpm。
我自己已经使用这个项目部署超过30台服务的环境了,状态比较稳定和实用了。
详细的介绍可看: