lnmp安裝指令碼

技術小胖子發表於2017-11-22

一起學習,有問題還請留言

#!/bin/bash

#

# describe: linux nginx mysql php install 


FileS=/updatefile

mkdir -p $FileS


# 安裝lrzsz 方便後續檔案上傳

wget http://vault.centos.org/6.5/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm -P $FileS &>/dev/null

rpm -vih $FileS/*.rpm &>/dev/null

RETVAL=$?

[ $RETVAL -eq 0 ] && echo “lrzsz install done” || echo “lrzsz exists.”


# yum – rprl網路源

YUM=/etc/yum.repo.d

# 檢測yum網路源如果沒有下載並修改yum源名稱將系統提示改為系統版本,epel不需要改

ls $YUM/Centos* &>/dev/null

RETVAL=$? &>/dev/null

[ $RETVAL -eq 0 ] && echo “network yum exists” || wget http://mirrors.aliyun.com/repo/Centos-6.repo -P $YUM &>/dev/null && sed -i `s@$releasever@6@gi` $YUM/Centos-6.repo &>/dev/null


# 檢測epel源

ls $YUM/epel* &>/dev/null

RETVAL=$? &>/dev/null

[ $RETVAL -eq 0 ] && echo “network yum exists”  || wget http://mirrors.aliyun.com/repo/epel-6.repo -P $YUM &>/dev/null


yum clean all &>/dev/null

yum list all &>/dev/null


# 提示資訊 install nginx 

echo “nginx Dependent package you need up | pcie (eq 8.38) | nginx “

cd $FileS


# 安裝nginx依賴包

yum -y install make gcc gcc-c++ flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel unzip libcap lsof


# Zlib:Nginx提供gzip模組,需要zlib的支援 Openssl:Nginx提供SSL的功能

yum -y install gcc gcc-c++ autoconf automake

yum -y install zlib zlib-devel openssl openssl-devel


Server=/var/lock/subsys

# 解壓pcre,nginx

cd $FileS

echo “download file loading…”

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.zip &>/dev/null

unzip pcre*

wget http://nginx.org/download/nginx-1.8.1.tar.gz &>/dev/null

tar xf nginx* 

# 進入目錄進入安裝

cd nginx*

     ./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-pcre=$FileS/pcre-8.38 –user=nginx –group=nginx

 

 make && make install 


# 建立系統使用者

useradd -M -s /sbin/nologin nginx


# 配置nginx支援php檔案

NGINX=/usr/local/nginx/conf

sed -i `3 a user nginx nginx;` $NGINX/nginx.conf

sed -i `s@/scripts$fastcgi_script_name@/usr/local/nginx/html$fastcgi_script_name@gi` $NGINX/nginx.conf

sed -i `65,72s/#/ /gi` !$


# 啟動項

echo “export PATH=$PATH:/usr/local/nginx/sbin” >> /etc/profile.d/nginx.sh

source !$


# 不管有沒有啟動先將其停止,然後再開啟服務

killall -9 nginx

/usr/local/nginx/sbin/nginx

# 提示資訊 install mysql 

echo “******************************************************************************************”

echo “mysql Dependent package you need up | boost(eq boost_1_59_0 ) | mysql | cmake(gt 2.8)”

echo “boost,mysql 檔案太大,手動上傳 “

echo ” warning       mysql install directory need gt 15G”

echo “******************************************************************************************”

sleep 5 

cd $FileS

rz

mv boost* mysql* $FileS &>/dev/null


# 版本太低直接刪除

yum -y remove boost &>/dev/null

yum -y remove mysql &>/dev/null


# 安裝cmake 使用網路yum源、上面已定義直接安裝即可

yum -y install cmake 


# 增加系統組mysql 使用者不允許登陸系統不建立家目錄

groupadd mysql

useradd -M -s /sbin/nologin -r -g mysql mysql


tar xf boost*

tar xf mysql*


cd mysql*

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1   -DWITH_READLINE=1 -DWITH_BOOST=$FileS/boost_1_59_0 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/server/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all


make && make install


# 將Mysql目錄下的檔案屬主屬組許可權交給mysql

chown -R mysql:myql /usr/local/mysql


# 備份原my.cnf配置檔案

mv /etc/my.cnf{.,bak}

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x !$

chkconfig –add mysqld 

chkconfig mysqld on 

service mysqld start 


# 初始化資料庫

/usr/local/mysql/bin/mysqld –initialize-insecure –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data


# 啟動mysqld服務

killall -9 mysqld

service mysqld start 


# 新增全域性環境變數

echo -e “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile.d/mysql.sh

source !$


# 修改mysql密碼

mysqladmin -u root password “123456”



# install php 

echo “php Dependent package you need up |libiconv | libmcrypt | mhash | mcrypt | php “

echo “上面指定軟體包一共五個”

cd $FileS

rz

mv libiconv* libmcrypt* mhash* mcrypt* php* $FileS


# 安裝開發軟體包

cd $FileS

tar xf libiconv*

tar xf mhash* 

tar xf libmcrypt*

tar xf mcrypt*

tar xf php*


cd $FileS/libiconv*

./configure –prefix=/usr/local/libiconv

make && make install

cd ..


cd $FileS/libmcrypt-2.5.8

./configure

make && make install


# 密文軟體不安會各種報錯離散數字

cd $FileS/mhash*

./configure

make && make install

cd ..


echo -e “/usr/local/lib
/usr/local/libiconv
/server/mysql/lib/libmysqlclient.so.20
” >> /etc/ld.so.conf

# 載入庫檔案

ldconfig

sleep 10


# 安裝離散數字解密包

cd $FileS/mcrypt*

./configure

make && make install


# 安裝php元件

yum -y install php-pear


cd $FileS/php*

./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/ –enable-fpm  –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –disable-fileinfo –enable-maintainer-zts


make && make install


# 複製配置檔案

cp $FileS/php-7.0.5/php.ini-production /usr/local/php/php.ini

cp $FileS/php-7.0.5/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


# 自定義一個網頁檔案

echo -e “<?php
phpinfo();
?>” >> /usr/local/nginx/html/a.php

chmod +x /etc/rc.d/init.d/php-fpm

service php-fpm restart

killall -9 nginx

/usr/local/nginx/sbin/nginx

     本文轉自812374156 51CTO部落格,原文連結:http://blog.51cto.com/xiong51/1765990,如需轉載請自行聯絡原作者


相關文章