练习:远程连接客户机安装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 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
}
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
/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
/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] 举报,一经查实,本站将立刻删除。