auto_lnmp.sh

#!/bin/bash
#2019年10月30日19:42:29
#by author andy
#auto install nginx
#install packages of nginx
nginx_install(){
NGX_YUM="yum install -y"
NGX_VER="nginx-1.16.0"
NGX_DIR="/usr/local/nginx"
NGX_ARGS="--prefix=${NGX_DIR} --user=www --group=www --with-http_stub_status_module --with-http_ssl_module"
$NGX_YUM pcre-devel pcre gcc-c++ openssl-devel openssl zlib-devel
$NGX_YUM wget tar gzip make
#into /root && download soft nginx
cd $HOME
if [ ! -f $NGX_VER.tar.gz ];then
wget http://nginx.org/download/$NGX_VER.tar.gz
else
echo -e "\033[31m$NGX_VER is exist,exiting....\033[0m"
exit
fi
#tar nginx tar.gz package
tar -zxf $NGX_VER.tar.gz
#alter nginx.h about version's info
sed -i -e 's/1.16.0//g' -e 's/nginx\//JWS/g' -e 's/"NGINX"/"JWS"/g' $NGX_VER/src/core/nginx.h
#add uesr
useradd www; usermod -s /sbin/nologin www;
#into nginx directory
cd $NGX_VER
#precompile nginx program
./configure $NGX_ARGS
#ok after than fallow ”make ; make install“
if [ $? -eq 0 ]; then
make ; make install
#start nginx service
if [ $? -eq 0 ];then
/usr/local/nginx/sbin/nginx
netstat -tnlp | grep nginx
fi
else
echo "precompile nginx has some problem "
exit
fi
#stop firewall and selinux
if [ $? -eq 0 ];then
systemctl stop firewalld
setenforce 0
else
echo "Please see error logs,have some trobles"
exit
fi
netstat -tnlp | grep nginx
}
$i
#into /root && download soft mysql
mysql_install(){
#yum package of mysql
yum install -y cmake ncurses-devel ncurses libaio bison git gcc-c++
cd $HOME
if [ ! -f mysql-5.5.60.tar.gz ];then
wget http://mirrors.cn99.com/mysql/Downloads/MySQL-5.5/mysql-5.5.60.tar.gz
tar -zxf mysql-5.5.60.tar.gz
cd mysql-5.5.60
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make ; make install
cd /usr/local/mysql55
\cp support-files/my-large.cnf /etc/my.cnf
\cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
mkdir -p /data/mysql
useradd mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/
ln -s /usr/local/mysql55/bin/* /usr/bin/
service mysqld restart
netstat -tnlp | grep mysql
else
echo -e "\033[31m mysql-5.5.60.tar.gz is exist,exiting....\033[0m"
exit
fi
}

$i
#into /root && download soft php
php_install(){
cd $HOME
yum install -y libxml2 libxml2-devel
if [ ! -f php-5.6.28.tar.bz2 ]; then
wget http://mirrors.sohu.com/php/php-5.6.28.tar.bz2
tar jxf php-5.6.28.tar.bz2
cd php-5.6.28
./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc --with-mysql=/usr/local/mysql55 --enable-fpm
make ; make install
systemctl restart php-fpm
netstat -tnlp | grep php
else
echo -e "\033[31mSorry,php-5.6.28.tar.bz2 already install .exiting....\033[0m"
exit 2
fi
}
$i
lnpm_install(){
cd php-5.6.28
if [ ! -f /usr/local/php56/etc/php.ini -a /usr/local/php56/etc/php-fpm.conf -a /etc/init.d/php-fpm ]; then
#copy initialization file to master program
cp php.ini-development /usr/local/php56/etc/php.ini
#copy and chenge master default of configure
cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf
#make startup script
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#change its permission
chmod o+x /etc/init.d/php-fpm
#startup php-fpm && check its port
/etc/init.d/php-fpm start
netstat -tnlp | grep php-fpm
echo "
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}
}" >/usr/local/nginx/conf/nginx.conf

echo "
<?php
phpinfo();
?>">/usr/local/nginx/html/index.php
/usr/local/nginx/sbin/nginx -s reload
curl 172.0.0.1/index.php
else
echo -e "\033[31mSorry,php-fpm already exist,exiting.....\033[0m"
exit 3
fi
}
$i

PS3="Please enter your select install menu:"
select i in auto_install_nginx auto_install_mysql auto_install_php auto_integrate_lnmp
do
case $i in
auto_install_nginx)
nginx_install
;;
auto_install_mysql)
mysql_install
;;
auto_install_php)
php_install
;;
auto_integrate_lnmp)
lnpm_install
exit
esac
done

猜你喜欢

转载自blog.51cto.com/13689591/2451980
.sh
SH