Saltstack自动化源码编译安装PHP以及LNMP安装整合
来源:互联网 发布:淘宝网包包 编辑:程序博客网 时间:2024/05/21 21:46
对于通过saltstack自动化安装LNMP环境,请先参阅
Saltstack自动化源码编译安装Nginx
Saltstack自动化源码编译安装mysql
本文将讲述如何通过saltstack来实现PHP的自动化源码安装,以及将LNMP中的各部分整合起来通过saltstack一键安装配置
主机环境:
master 192.168.199.130 rhel7.2minion 192.168.199.66 rhel6.5
所有配置均在master端进行
本次实验PHP源码包下载http://br2.php.net/get/php-5.6.31.tar.gz/from/this/mirror
1、 编写php安装所需依赖包安装配置文件(此文件中依赖包将会在LNMP自动安装过程中最先安装):
[root@lockey151 ~]# cat /srv/salt/pkg/lnmp-pre.sls
pkg-init: pkg.installed: - pkgs: - gcc-c++ - zlib-devel - libxml2-devel - openssl-devel - pcre-devel - ncurses-devel - bison
2、 编写php安装正式配置文件:
[root@lockey151 ~]# cat /srv/salt/php/install.sls
include: - pkg.lnmp-prephp-source-install: file.managed: - name: /mnt/php-5.6.31.tar.gz - source: salt://php/files/php-5.6.31.tar.gz cmd.run: - name: cd /mnt && tar zxf php-5.6.31.tar.gz && cd php-5.6.31 && ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-fpm && make && make install && cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf && /usr/local/php/sbin/php-fpm - creates: /usr/local/php
3、 测试配置并执行推送
[root@lockey151 php]# salt rhel6-vm2 state.sls php.install test=true
[root@lockey151 php]# salt rhel6-vm2 state.sls php.install
在minion端查看安装进程:
执行make命令中
make install完成
再到master端查看安装结果:
php测试
注意为了使得Nginx支持PHP,需要取消/usr/local/nginx/conf/nginx.conf中的以下注释行
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi.conf; }
到这里Nginx、MySQL、PHP的单独自动化编译安装完成,接下来进行整合:
新建一个lnmp的目录,目录结构如下:
[root@lockey151 lnmp]# tree
.├── cmake.sls├── files│ ├── cmake-2.8.10.2.tar.gz│ ├── my.cnf│ ├── mysql-boost-5.7.19.tar.gz│ ├── mysqld│ ├── nginx│ ├── nginx-1.12.1.tar.gz│ ├── nginx.conf│ └── php-5.6.31.tar.gz├── mysqlinstall.sls├── nginxinstall.sls├── phpinstall.sls└── service.sls1 directory, 13 files[root@lockey151 lnmp]# pwd/srv/salt/lnmp
各配置文件内容如下:
[root@lockey151 lnmp]# cat cmake.sls
cmake-install: file.managed: - name: /mnt/cmake-2.8.10.2.tar.gz - source: salt://lnmp/files/cmake-2.8.10.2.tar.gz cmd.run: - name: cd /mnt && tar -xzvf cmake-2.8.10.2.tar.gz && cd /mnt/cmake-2.8.10.2 && ./configure && make && make install - creates: /mnt/cmake-2.8.10.2
[root@lockey151 lnmp]# cat mysqlinstall.sls
include: - lnmp.cmakemysql-source-install: file.managed: - name: /mnt/mysql-boost-5.7.19.tar.gz - source: salt://lnmp/files/mysql-boost-5.7.19.tar.gz cmd.run: - name: cd /mnt && tar zxf mysql-boost-5.7.19.tar.gz && cd mysql-5.7.19 && /usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=./boost/boost_1_59_0 -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install && cd /usr/local/mysql && mkdir data && chown -R mysql:mysql . - creates: /usr/local/mysql
[root@lockey151 lnmp]# cat nginxinstall.sls
include: - pkg.lnmp-prenginx-source-install: file.managed: - name: /mnt/nginx-1.12.1.tar.gz - source: salt://lnmp/files/nginx-1.12.1.tar.gz cmd.run: - name: cd /mnt && tar zxf nginx-1.12.1.tar.gz && cd nginx-1.12.1 && sed -i.bak 's/#define NGINX_VER "nginx\/" NGINX_VERSION/#define NGINX_VER "nginx"/g' src/core/nginx.h && sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module && make && make install && ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx - creates: /usr/local/nginx
[root@lockey151 lnmp]# cat phpinstall.sls
php-source-install: file.managed: - name: /mnt/php-5.6.31.tar.gz - source: salt://lnmp/files/php-5.6.31.tar.gz cmd.run: - name: cd /mnt && tar zxf php-5.6.31.tar.gz && cd php-5.6.31 && ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-fpm && make && make install - creates: /usr/local/php
最终需要执行的整体安装文件如下
[root@lockey151 lnmp]# cat service.sls
include: - user.users - lnmp.nginxinstall - lnmp.mysqlinstall - lnmp.phpinstall/usr/local/nginx/conf/nginx.conf: file.managed: - source: salt://lnmp/files/nginx.conf - mode: 644/etc/init.d/nginx: file.managed: - source: salt://lnmp/files/nginx - mode: 755nginx-service: service.running: - name: nginx - enable: true - reload: true - require: - file: /etc/init.d/nginx - watch: - file: /usr/local/nginx/conf/nginx.conf/etc/my.cnf: file.managed: - source: salt://lnmp/files/my.cnf - mode: 644/etc/init.d/mysqld : file.managed: - source: salt://lnmp/files/mysqld - mode: 755mysql-service: service.running: - name: mysql - enable: true - reload: true - require: - file: /etc/init.d/mysqld - watch: - file: /etc/my.cnf
LNMP整体测试
[root@lockey151 lnmp]# salt rhel6-vm2 state.sls lnmp.service test=true
rhel6-vm2:---------- Changes: ---------- ID: nginx-service Function: service.running Name: nginx Result: False Comment: The named service nginx is not available Started: 20:09:10.570342 Duration: 11.46 ms Changes: Summary for rhel6-vm2-------------Succeeded: 17 (unchanged=11, changed=2)Failed: 1-------------Total states run: 18Total run time: 1.190 sERROR: Minions returned with non-zero exit code
根据测试的返回结果,nginx服务部分无法启动,这个是因为启动脚本还没有发送过去导致的,整体来说测试是成功的,接下来可以直接进行推送安装了:
[root@lockey151 lnmp]# salt rhel6-vm2 state.sls lnmp.service
如果安装过程中有错误可以对应解决
- Saltstack自动化源码编译安装PHP以及LNMP安装整合
- saltstack源码编译安装lnmp
- saltstack源码编译安装lnmp
- Saltstack自动化源码编译安装Nginx
- Saltstack自动化源码编译安装mysql
- Saltstack自动化编译安装haproxy
- 源码编译安装LNMP
- LNMP源码编译安装
- LNMP 源码编译安装
- 从零搭建LNMP环境(一) - 编译源码安装PHP
- 源码编译安装,搭建LNMP环境(Linux+Nginx+MySQL+PHP)
- centos7搭建lnmp编译安装php【一】
- lnmp学习之php安装、nginx和php整合
- php源码编译安装
- php源码编译安装
- LNMP安装PHP源码包自带的扩展,以及参数说明
- lnmp源码编译安装Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)
- 自动化运维工具 Saltstack安装配置
- Syntax error, insert "Dimensions" to complete TypeArgument
- Lauren与密码学5,对称密码系统
- Codeforces 659F Polycarp and Hay【思维+并查集+Bfs】
- tensorflow ssd mobilenet模型训练
- Codeforces Round #440 (Div. 2) Search for Pretty Integers
- Saltstack自动化源码编译安装PHP以及LNMP安装整合
- MySQL学习阶段小结
- 计算机如是何启动的?
- 使用banner加载网路图片
- 操作系统之进程管理2
- WebStorm设置服务器-局域网内其他设备访问(移动端手机访问测试等)
- Volley源码分析
- Mybatis Insert 返回主键的一个小坑
- 理一理Spring MVC中使用AspectJ的异常