微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

100例脚本之九tengine+php一键安装

练习:远程连接客户机安装PHP+tengine,

一、需要用到脚本8获取远程ip以及推送公钥到远程机器。

二、创建如下目录结构

1.lnmp.sh

------------------------------------------------------

lnmp

├── conf

│   ├── index.PHP

│   ├── Nginx.conf

│   └── PHP-fpm.conf

├── include

│   ├── config.sh

│   ├── init_os.sh

│   ├── Nginx_install.sh

│   └── PHP_install.sh

├── installrc

├── lnmp.sh

└── src

    ├── PHP-7.2.6.tar.bz2

    └── tengine-2.3.0.tar.gz

三、分别编写脚本

#!/bin/bash

#####lnmp main program

###2019-6-8######

soft_dir=`pwd`/src

config_dir=`pwd`/conf

cpus=`lscpu|awk '/^cpu\(s\)/{print $2}'`

. installrc

. include/init_os.sh

. include/Nginx_install.sh

. include/PHP_install.sh

. include/config.sh

init_os

Nginx_install

PHP_install

config

2.init_os.sh

#!/bin/bash

#### init os #########

###yum########

init_os(){

rm -rf /etc/yum.repos.d/*

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum make cache && yum repolist

####SELinux########

systemctl disable firewalld

systemctl stop firewalld

#firewall-cmd --permanent --add-service=http

#firewall-cmd --permanent --add-service=https

#firewall-cmd --reload

setenforce 0

sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config

#NTP

yum -y install chrony 

sed -ri '/3.CentOS.pool.ntp.oeg/a\server pool.ntp.org iburst prefer' /etc/chrony.conf

systemctl start chronyd

systemctl enable chronyd

}

3.Nginx_install.sh

#!/bin/bash

#

#tengine install scripts

#by Dan Chen 2019-6-8

Nginx_install(){

        yum -y install gcc gcc-c++ openssl-devel pcre-devel

        useradd Nginx

        cd $soft_dir

        tar xf $tengine_version

        cd ${tengine_version%.tar.gz}

        ./configure && make -j $cpus && make install

        echo "$Nginx_prefix/sbin/Nginx" >> /etc/rc.local

        chmod a+x /etc/rc.d/rc.local

        echo "export PATH=$PATH:$Nginx_prefix/sbin" >> /etc/profile

        source /etc/profile

}

4.PHP_install.sh

#!/bin/bash

#

##PHP install scripts

PHP_install(){

        yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel \

        libxml libxml-devel libcurl libcurl-devel libxslt-devel openssl-devel

        cd $soft_dir

        tar xf $PHP_version

        cd ${PHP_version%.tar.bz2}

        ./configure --prefix=$PHP_prefix --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir \

        --with-jpeg-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-MysqL --with-MysqLi \

        --with-openssl --with-pcre-regex --with-pdo-MysqL --with-pdo-sqlite --with-pear --with-png-dir \

        --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml \

        --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache \

        --enable-pcntl --enable-shmop --enable-sockets --enable-sysvsem --enable-xml --enable-zip

        make -j $cpus && make install

        cp $PHP_prefix/etc/PHP-fpm.conf.default $PHP_prefix/etc/PHP-fpm.conf

        cp sapi/fpm/init.d.PHP-fpm /etc/rc.d/init.d/PHP-fpm

        chmod a+x /etc/rc.d/init.d/PHP-fpm

        chkconfig --add PHP-fpm

}

5.config.sh

#!/bin/bash

#config conf

config() {

#tengine

\cp $config_dir/Nginx.conf $Nginx_prefix/conf/Nginx.conf 

\cp $config_dir/index.PHP $Nginx_prefix/html/index.PHP

\cp $PHP_prefix/etc/PHP-fpm.d/www.conf.default $PHP_prefix/etc/PHP-fpm.d/www.conf

$Nginx_prefix/sbin/Nginx

/etc/init.d/PHP-fpm start

}

6.installrc

#!/bin/bash

#config conf

config() {

#tengine

\cp $config_dir/Nginx.conf $Nginx_prefix/conf/Nginx.conf 

\cp $config_dir/index.PHP $Nginx_prefix/html/index.PHP

\cp $PHP_prefix/etc/PHP-fpm.d/www.conf.default $PHP_prefix/etc/PHP-fpm.d/www.conf

$Nginx_prefix/sbin/Nginx

/etc/init.d/PHP-fpm start

}

总结:

1.本例主要是使用shell函数,在主程序lnmp.sh入口中调用函数,安装过程大概20分钟左右

2.本例未安装MysqL数据库,原因是一般MysqL是单独安装在多台高配置服务器并做成集群更好一点,有兴趣的朋友可以尝试完成MysqL集群的搭建。

运行结果:

[root@Node1 etc]# ss -tnl

State       Recv-Q Send-Q              Local Address:Port                             Peer Address:Port              

LISTEN      0      128                             *:80                                          *:*                  

LISTEN      0      128                             *:22                                          *:*                  

LISTEN      0      100                     127.0.0.1:25                                          *:*                  

LISTEN      0      128                     127.0.0.1:9000                                        *:*                  

LISTEN      0      128                            :::22                                         :::*                  

LISTEN      0      100                           ::1:25                                         :::*     



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐