欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Ubuntu Server Deploy 已经支持php7

程序员文章站 2024-01-13 17:05:16
...
原谅我无耻的打个广告,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台服务的环境了,状态比较稳定和实用了。

详细的介绍可看: