原谅我无耻的打个广告,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 bash
apt-get install libmemcached-dev -y
git clone
cd php-memcached
git 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台服务的环境了,状态比较稳定和实用了。
详细的介绍可看:
https://git.oschina.net/janpoem/ubuntu-server-deploy