1)创建目录
[admin@master prod]$ sudo mkdir -p /srv/salt/prod/php
[admin@master prod]$ sudo mkdir -p /srv/salt/prod/php/files
2)下载软件及拷贝启动脚本和配置文件
[admin@master files]$ sudo wget http://cn2.php.net/distributions/php-7.1.14.tar.gz
然后找一台机器安装一下,如如下几个文件拷贝到files目录下
配置文件2个
#/usr/local/php-7.1.14/etc
-rw-r--r-- 1 root root 4495 Jan 25 18:55 php-fpm.conf.default
-rw-r--r-- 1 root root 18538 Jan 25 18:55 www.conf.default
#启动脚本
#/usr/local/src/php-7.1.14/sapi/fpm
-rw-rw-r--. 1 root root 2390 Jan 31 03:05 init.d.php-fpm.in
php.ini文件
#/usr/local/src/php-7.1.14/
-rw-rw-r--. 1 root root 71096 Jan 31 03:05 php.ini-product
最后在该目录下的文件如下
[admin@master files]$ ll
total 19076
-rw-r--r--. 1 root root 2568 Jan 30 16:19 init.d.php-fpm.in
-rw-r--r--. 1 root root 19426882 Feb 1 2018 php-7.1.14.tar.gz
-rw-r--r--. 1 root root 4495 Jan 30 16:13 php-fpm.conf.default
-rw-r--r--. 1 root root 71096 Jan 30 16:44 php.ini-production
-rw-r--r--. 1 root root 18536 Jan 30 16:26 www.conf.default
接下我们需要修改一下
第一步: 修改启动脚本
#prefix=@prefix@
prefix=/usr/local/php-7.1.14
#exec_prefix=@exec_prefix@
exec_prefix=${prefix}
#php_fpm_BIN=@sbindir@/php-fpm
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
#php_fpm_CONF=@sysconfdir@/php-fpm.conf
php_fpm_CONF=${prefix}/etc/php-fpm.conf
#php_fpm_PID=@localstatedir@/run/php-fpm.pid
php_fpm_PID=${prefix}/var/run/php-fpm.pid
第二步: 修改www.conf.default配置文件
;user = nobody
;group = nobody
user = web
group = web
listen = 127.0.0.1:9000
根据实际情况调整一下一下几个参数,以下是参考
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 50000
二)编写安装php的sls文件
~~~
[admin@master php]$ cat install.sls
include:
- pkg.pkg-init
- user.web
- zlib.install
pkg-php:
pkg.installed:
- names:
- mysql-devel
- openssl-devel
- swig
- libjpeg-turbo
- libjpeg-turbo-devel
- libpng
- libpng-devel
- freetype
- freetype-devel
- libxml2
- libxml2-devel
- libcurl
- libcurl-devel
php-source-install:
file.managed:
- name: /usr/local/src/php-7.1.14.tar.gz
- source: salt://php/files/php-7.1.14.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src && sudo tar xf php-7.1.14.tar.gz && cd php-7.1.14 && sudo ./configure --prefix=/usr/local/php-7.1.14 --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-jpeg-dir --with-png-dir --with-zlib=/usr/local/src/zlib-1.1.12 --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/lib64 --with-gettext=/usr/lib64 --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-7.1.14/etc --enable-fpm --with-fpm-user=web --with-fpm-group=web && sudo make && sudo make install
- unless: test -d /usr/local/php-7.1.14
- require:
- file: php-source-install
- pkg: pkg-php
- user: web-user-group
php-ini:
file.managed:
- name: /usr/local/php-7.1.14/etc/php.ini
- source: salt://php/files/php.ini-production
- user: root
- group: root
- mode: 644
php-fpm:
file.managed:
- name: /usr/local/php-7.1.14/etc/php-fpm.conf
- source: salt://php/files/php-fpm.conf.default
- user: root
- group: root
- mode: 644
www-conf:
file.managed:
- name: /usr/local/php-7.1.14/etc/php-fpm.d/www.conf
- source: salt://php/files/www.conf.default
- user: root
- group: root
- mode: 644
php-service:
file.managed:
- name: /etc/init.d/php-fpm
- source: salt://php/files/init.d.php-fpm.in
- user: root
- group: root
- mode: 755
cmd.run:
- name: chkconfig --add php-fpm
- unless: chkconfig --list|grep php-fpm
- require:
- file: php-service
service.running:
- name: php-fpm
- enable: True
- reload: True
- require:
- cmd: php-service
- watch:
- file: php-ini
- file: php-fpm
- file: www-conf
~~~
接下就测试
[admin@master php]$ sudo salt 'proxy01*' state.sls php.install env=prod test=true
Summary
-------------
Succeeded: 36 (unchanged=12, changed=5)
Failed: 0
-------------
Total states run: 36
没有问题就安装
[admin@master php]$ sudo salt 'proxy01*' state.sls php.install env=prod
- 第一章:saltstack的基本介绍
- 第二章:saltstack的安装部署
- 第一节:在centos7系统上安装saltstack工具
- 第二节:在windows server 2008上安装salt-minion
- 第三章: saltstack的配置管理
- 第一节:salt-master配置
- 第二节:salt-minion配置
- 第三节:了解YAML
- 第四节:salt-master配置文件详解
- 第五节:了解Jinja2
- 第六节:配置普通用户可以运行saltstack的模块
- 第四章:远程执行
- 第一节:远程执行基础介绍
- 第二节:目标定位
- 一、全局及正则表达式匹配
- 二、列表匹配
- 三、Grains
- 四: Pillar
- 五:subnet and ip
- 六:组合匹配
- 七: node group
- 第三节:常用模块
- 一、查看帮助
- 二、Network模块
- 三、Service模块
- 四:State模块
- 五、Cron模块
- 六、File模块
- 七、iptables模块
- 八、pkg包管理
- 第四节:Salt其他命令
- 一、salt-cp(拷贝文件)
- 二、salt-ssh
- 三、salt-key
- 第五节:saltstack返回程序
- 第一节:返回保持到数据库(mysql)
- 第五章:配置管理
- 第一节:简单入门
- 第二节:状态间关系
- 第六章:数据系统
- 第一节:grains
- 第二节:pillar
- 第七章:saltstack配置管理
- 第一节:系统初始化操作
- 第二节:功能模块
- 一、haproxy模块
- 二、keepalived模块
- 三、nginx模块
- 四: pcre模块
- 五: zlib模块
- 六:user模块
- 七:php模块
- 第三节:业务模块
- 第一节:haproxy代理
- 第二节:keepalived业务
- 第八章:自动化管理工具saltstack
- 第一节:文件管理
- 第二节:软件管理
- 第三节:服务管理
- 第四节:sysctl模块管理