1. 程式人生 > >一鍵安裝LNMP

一鍵安裝LNMP

1.準備工作,下載原始碼包

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz wget http://cn2.php.net/distributions/php-5.6.27.tar.gz   wget http://nginx.org/download/nginx-1.12.2.tar.gz

2.一鍵安裝LNMP指令碼

 

#!/bin/bash


# DATE:2018-10-17 #this is a lnmp-install   # The Nginx service is being installed ROOT_ID=0 ML=`pwd` NGINX_ML=${ML}/nginx-1.12.2 PML=${ML}/php-5.6.27 QD=`netstat -anpt | grep 80 | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1` ADDR=`ip a | grep ens33$ | awk '{print $2}' | cut -d "/" -f1` MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4` MAR=`rpm -qa | grep mariadb` cd $ML && { wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null mv Centos-7.repo /etc/yum.repos.d/Centos-Base.repo yum clean all &> /dev/null yum makecache &> /dev/null }   if [ $? -eq 0 ]     then           echo "Yum源更新完畢,開始安裝!!!"     else         echo "Yum源error"         exit 1 fi echo "Yum源配置成功"   if [ "$UID" -eq "$ROOT_ID" ]         then                echo "root使用者執行中" && systemctl stop firewalld && yum install -y gcc gcc-c++  pcre-devel zlib-devel openssl-devel &> /dev/null         else                echo "請使用Root使用者執行"                exit 1 fi echo "依賴包安裝完成!" cd $ML || {         echo "進入目錄失敗!!!"         exit 1 }   #wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && { #tar zxf nginx-1.12.2.tar.gz && groupadd nginx && useradd -g nginx nginx -s /sbin/nologin #} tar zxf nginx-1.12.2.tar.gz && groupadd nginx && useradd -g nginx nginx -s /sbin/nologin #echo "Nginx包下載成功" cd $NGINX_ML && {     ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx &> /dev/null && make &> /dev/null && make install &> /dev/null  }   if [ $? -eq "0" ]         then                ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx啟動成功,請訪問http://$ADDR:80"         else               echo "Nginx啟動失敗!!!"               exit 1 fi     #Start installing MySQL5.7! #echo "開始下載MySQL二進位制安裝包,請稍等..." if [ -z "$MAR" ]                 then                         echo "開始安裝MySQL" fi if [ -n "$MAR" ]                then                         rpm -e mariadb-libs --nodeps && echo "解除安裝mariadb成功!正式安裝MySQL" fi   cd $ML || {     echo "進入目錄失敗!!!"     exit 1 }   #wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && { #wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz && { tar zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  && mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql && cd /usr/local/mysql/ && mkdir data  && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql #} cat << EOF >/etc/my.cnf [client]   socket=/usr/local/mysql/data/mysql.sock   [mysqld]   basedir=/usr/local/mysql   datadir=/usr/local/mysql/data   pid-file=/usr/local/mysql/data/mysqld.pid   socket=/usr/local/mysql/data/mysql.sock   log_error=/usr/local/mysql/data/mysql.err EOF if [ ! -d /etc/my.cnf ]                 then                         chmod 750 data/ && chown -R mysql:mysql .  && bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --initialize-insecure && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/null                 else                          echo "錯誤!!!" fi if [ $? -eq "0" ]     then         echo "MySQL安裝完成!"     else         echo "MySQL安裝失敗!!!"         exit 1 fi #PHP install sccessy yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null if [ $? -eq 0 ]         then                 echo "依賴包安裝成功!!!"         else                 echo "依賴包安裝失敗!!!" fi cd $ML || {         echo "進入目錄失敗!!!"         exit 1 } #wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null  && { tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7/ && ./configure --prefix=/usr/local/libmcrypt &> /dev/null && make &> /dev/null && make install &> /dev/null #} if [ $? -eq 0 ]         then                 echo "Libmcrypt安裝成功!"         else                 echo "Libmcrypt-ERROR!"         exit 1 fi # PHP install cd $ML || {         echo "進入目錄失敗!!!"         exit 1 } #wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && { tar zxf php-5.6.27.tar.gz && cd php-5.6.27/ &&  ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts  &> /dev/null #} if [ $? -eq 0 ]             then                  make &> /dev/null  && make install &> /dev/null  &&  echo "PHP編譯安裝成功,正在配置請稍等...."             else                  echo "PHP安裝失敗" fi cd $PML || {                 echo "進入目錄失敗!!!"                 exit 1 } cp php.ini-production /etc/php.ini && { cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on } if [ $? -eq 0 ]                         then                                 cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf && echo "複製主配置成功"                         else                                 echo "PHP許可權失敗,請重試!" fi if [ ! -d /usr/local/php5.6/etc/php-fpm.conf ]         then                 sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.conf                 sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.conf                 sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.conf                 sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf                 sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf                 sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.conf         else                 echo "NONONO" fi if [ $? -eq 0 ]                         then                                 systemctl start php-fpm && echo "PHP啟動成功"                         else                                 echo "啟動PHP失敗" fi #配置nginx解析php if [ ! -d /usr/local/nginx/conf/nginx.conf ]         then                sed -i 's/index  index.html index.htm;/index  index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf                sed -i 's/#    root           html;/    root           html;/g' /usr/local/nginx/conf/nginx.conf                sed -i 's/#    fastcgi_pass   127.0.0.1:9000;/    fastcgi_pass   127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf                sed -i 's/#    fastcgi_index  index.php;/    fastcgi_index  index.php;/g' /usr/local/nginx/conf/nginx.conf                sed -i 's*#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.conf                sed -i 's/#    include        fastcgi_params;/    include        fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf                sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf                sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf         else                echo "解析PHP失敗!!!" fi touch /usr/local/nginx/html/phptest.php cat << EOF >/usr/local/nginx/html/phptest.php <?php phpinfo(); ?> EOF if [ ! -d /usr/local/nginx/html/phptest.php ]     then         nginx -s reload && systemctl restart php-fpm     else         echo "測試目錄檔案失敗" fi wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  &> /dev/null && yum install -y sl &> /dev/null sl if [ $? -eq 0 ]         then                 echo "LNMP安裝成功,請您訪問http://$ADDR/phptest.php"         else                 echo "安裝失敗" fi #############################################LNMP installed successfully!!!#####################################################