#!/bin/bash
#安裝nginx
echo "安裝nginx服務"
wget http://nginx.org/download/nginx-1.11.4.tar.gz &>/dev/null
if [ $? -eq 0 ]
thenecho "nginx-1.11.4安裝包下載完成"echo "--開始安裝必要的依賴文件--"yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel &>/dev/nullif [ $? -eq 0 ]thenecho "依賴文件安裝完成"echo "解壓nginx安裝包到/usr/local目錄下"tar -xf nginx-1.11.4.tar.gz -C /usr/local/srccd /usr/local/src/nginx-1.11.4/echo "創建nginx運行用戶www"useradd www -s /sbin/nologinecho "預編譯nginx"./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --user=www --group=www &>/dev/nullif [ $? -eq 0 ]thenecho "預編譯完成"echo "編譯安裝"make &>/dev/null && make install &>/dev/nullif [ $? -eq 0 ]thenecho "編譯安裝完成"echo "啟動nginx服務"/usr/local/nginx/sbin/nginx &>/dev/nullngx=`ps -ef | grep nginx | wc -l`if [ $ngx -gt 1 ]thenecho "nginx啟動成功"elseecho "nginx啟動失敗"fielseecho "編譯安裝失敗"fielseecho "預編譯失敗"fielseecho "安裝依賴文件失敗"fielseecho "nginx-1.11.4安裝包下載失敗,請檢查原因"fi
cd
#安裝PHP服務
wget http://cn2.php.net/distributions/php-5.6.6.tar.gz --no-check-certificate &>/dev/null
if [ $? -eq 0 ]
thenecho "PHP安裝包下載完成"echo "開始安裝PHP依賴文件"yum -y install gcc autoconf freetype gd libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel freetype-devel libjpeg-devel bzip2 bzip2-devel openssl openssl-devel &>/dev/nullif [ $? -eq 0 ]thenecho "依賴文件下載成功"echo "安裝libmcrypt"wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz --no-check-certificate &>/dev/nullif [ $? -eq 0 ]thenecho "安裝libmcrypt成功"tar xf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configure --prefix=/usr/local/libmcrypt &>/dev/null && make &>/dev/null && make install &>/dev/nullcdtar xf php-5.6.6.tar.gz -C /usr/local/srcecho "預編譯PHP"cd /usr/local/src/php-5.6.6./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=/usr/local/php5.6/etc/ --with-bz2 --enable-maintainer-zts &>/dev/nullif [ $? -eq 0 ]thenecho "PHP預編譯成功"echo "編譯安裝PHP"make &>/dev/null && make install &>/dev/nullif [ $? -eq 0 ]thenecho "編譯安裝PHP成功"echo "生成php.ini配置文件"cp /usr/local/src/php-5.6.6/php.ini-production /usr/local/php5.6/etc/php.iniecho "修改fpm配置文件"cd /usr/local/php5.6/etc/cp php-fpm.conf.default php-fpm.confsed -i 's/user = nobody/user = www/g' php-fpm.confsed -i 's/group = nobody/group = www/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' php-fpm.confsed -i 's/pm.max_children = 5/pm.max_children =300/g' php-fpm.confsed -i 's/pm.start_servers = 2/pm.start_servers =20/g' php-fpm.confsed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' php-fpm.confsed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' php-fpm.confsed -i 's@;pid = run/php-fpm.pid@pid = run/php-fpm.pid@g' php-fpm.conf#生成啟動文件cp /usr/local/src/php-5.6.6/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm on/etc/init.d/php-fpm start &>/dev/nullphp=`netstat -antpu | grep php-fpm | wc -l`if [ $php -gt 0 ]thenecho "php服務啟動成功"echo "查看PHP是否安裝mysql模塊"mokuai=`/usr/local/php5.6/bin/php -m |grep mysqli |wc -l`if [ $mokuai -eq 1 ]thenecho "PHP連接mysql模塊已經安裝"elseecho "PHP連接mysql模塊安裝失敗"fielseecho "PHP服務啟動失敗"fielseecho "編譯安裝失敗"fielseecho "PHP預編譯失敗"fielseecho "安裝libmcrypt失敗"fielseecho "依賴文件下載失敗"fi
elseecho "PHP安裝包下載失敗"
fi
#安裝mysql服務
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-5.7.26-1.el7.src.rpm &>/dev/null
if [ $? -eq 0 ]
thenecho "mysql安裝包下載完畢"echo "卸載boost"yum -y remove boost-* &>/dev/nullrpm -ivh mysql-community-5.7.26-1.el7.src.rpm &>/dev/null#下載解壓工具yum install -y bzip2 &>/dev/nullif [ $? -eq 0 ]thenecho "bzip2解壓縮工具下載完成"cd /root/rpmbuild/SOURCES/tar xf boost_1_59_0.tar.bz2 -C /root/echo "卸載系統自帶的mysql"yum -y remove mysql* &>/dev/nullyum -y remove mariadb* &>/dev/nullecho "安裝mysql依賴包"yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel &>/dev/nullif [ $? -eq 0 ]thenecho "mysql依賴包下載完成"echo "創建mysql用戶和用戶組"groupadd mysql && useradd -M -s /sbin/nologin -r -g mysql mysqlecho "創建mysql數據庫存放位置并修改目錄權限"mkdir -p /data/mysql/{data,log} && chown -R mysql:mysql /data/mysqlecho "解壓源碼包"cd /root/rpmbuild/SOURCES/tar xf mysql-5.7.26.tar.gz -C /root/cdcd mysql-5.7.26echo "預編譯mysql"cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=/root/boost_1_59_0 &>/dev/nullif [ $? -eq 0 ]thenecho "mysql預編譯成功"echo "編譯mysql"make -j $( grep processor /proc/cpuinfo | wc -l) &>/dev/nullif [ $? -eq 0 ]thenecho "mysql編譯完成"echo "安裝mysql"make install &>/dev/nullif [ $? -eq 0 ]thenecho "mysql安裝完成"echo "修改mysql目錄權限"chown -R mysql:mysql /usr/local/mysql/echo "備份配置文件文件"mv /etc/my.cnf{,.bak}echo "自行創建my.cnf配置文件"echo "
[mysqld]
basedir=/usr/local/mysql #mysql安裝目錄
datadir=/data/mysql/data #mysql數據存放目錄
port=3306 #mysql監聽端口
socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目錄
symbolic-links=0 #關閉mysql的符號鏈接
character-set-server=utf8 #指定mysql的字符集為utf8
log-error=/data/mysql/log/mysqld.log #指定mysql的錯誤日志存放路徑
pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目錄" >/etc/my.cnfecho "生成服務啟動腳本"cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld #給腳本添加執行權限echo "添加mysqld開機自啟動"chkconfig --add mysqld #把mysql添加到系統服務chkconfig mysqld on #把mysql添加到開機自啟動echo "初始化數據庫"/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/dataecho "啟動數據庫"/etc/init.d/mysqld startecho "添加path路徑"ln -s /usr/local/mysql/bin/* /usr/local/bin/read -s -p "請修改mysql密碼:" passwdmysqladmin -u root password "$passwd"elseecho "mysql安裝失敗"fielseecho "mysql編譯失敗"fielseecho "mysql預編譯失敗"fielseecho "mysql依賴包下載失敗"fielseecho "解壓縮工具安裝失敗"fi
elseecho "mysql安裝包下載失敗"
fi
注意修改自己要下載的服務版本噢!
[root@node2 ~]#vim LNMP.sh
[root@node2 ~]#bash LNMP.sh
安裝nginx服務
nginx-1.11.4安裝包下載完成
--開始安裝必要的依賴文件--
依賴文件安裝完成
解壓nginx安裝包到/usr/local目錄下
創建nginx運行用戶www
預編譯nginx
預編譯完成
編譯安裝
編譯安裝完成
啟動nginx服務
nginx啟動成功
PHP安裝包下載完成
開始安裝PHP依賴文件
依賴文件下載成功
安裝libmcrypt
安裝libmcrypt成功
預編譯PHP
PHP預編譯成功
編譯安裝PHP
編譯安裝PHP成功
生成php.ini配置文件
修改fpm配置文件
php服務啟動成功
查看PHP是否安裝mysql模塊
PHP連接mysql模塊已經安裝
mysql安裝包下載完畢
卸載boost
bzip2解壓縮工具下載完成
卸載系統自帶的mysql
安裝mysql依賴包
mysql依賴包下載完成
創建mysql用戶和用戶組
創建mysql數據庫存放位置并修改目錄權限
解壓源碼包
預編譯mysql
mysql預編譯成功
編譯mysql
mysql編譯完成
安裝mysql
mysql安裝完成
修改mysql目錄權限
備份配置文件文件
mv: cannot stat ‘/etc/my.cnf’: No such file or directory
自行創建my.cnf配置文件
生成服務啟動腳本
添加mysqld開機自啟動
初始化數據庫
啟動數據庫
Starting MySQL. SUCCESS!
添加path路徑
請修改mysql密碼:mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.