LAMP(apache/httpd+mysql+php)環境/架構 一鍵安裝指令碼

來源:互聯網
上載者:User

標籤:lamp(apache/httpd+mysql+php)環境/架構 一鍵安裝指令碼

          該指令碼只在centos 上測試過,測試OK,其他發行版自行測試


#!/bin/bash


#Purpose        :一鍵安裝lamp(apache + mysql + php)

#Writer                :www.linuser.com

#Date                :2015-10-08


#定義軟體下載目錄:

SoftDir=‘/usr/local/src‘


#定義編譯函數:

function MAKE() {

        if [ `echo $?` -eq 0 ];then

                        make 

                else

                        exit

        fi

}


#定義安裝函數:

function MAKE_INS() {

        if [ `echo $?` -eq 0 ];then

                        make install 

                else

                        exit

        fi

}


#第一部分:系統基礎環境的配置:


#判斷目前使用者是否為root:

if [ `whoami` = "root" ];then 

                echo "root"

        else 

                echo "Please use root"

                exit

fi


#判斷當前網路是否暢通:

NET=`ping -c 4 www.baidu.com |grep received |awk ‘{print $6}‘|sed -e ‘s/%//‘`

if [ $NET -ge 2 ];then

        echo "Please check your network"

        exit

fi


#配置PS 環境:

if [ -z `egrep -i ps1 /etc/profile |awk ‘{print $1}‘` ];then

        echo ‘PS1="\[\e[33;1m\][\[email protected]\[\e[31;1m\]\h \t \# \w]\\$\[\e[m\]"‘ >> /etc/profile 

                source /etc/profile

fi


#查看系統編碼是否為en_US.UTF-8

lang=`grep -i lang /etc/sysconfig/i18n |awk -F ‘"‘ ‘{print $2}‘`

if [ $lang != ‘en_US.UTF-8‘ ];then

        sed -i "s/$lang/en_US.UTF-8/" i18n

fi


#做原生hosts 解析:

ETH=`egrep -i device /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F ‘=‘ ‘{print $2}‘`

if  [  -z `egrep -i $(echo $HOSTNAME) /etc/hosts |awk ‘{print $2}‘` ];then

        echo $(ip ad |grep "global $ETH" |awk -F "/" ‘{print $1}‘ |awk ‘{print $2}‘  && echo $HOSTNAME) >> /etc/hosts

fi

#關閉selinux:

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config


#關閉反向解析:

sed -i ‘s/^#UseDNS yes/UseDNS no/‘ /etc/selinux/config


#重啟啟動sshd 服務:

service sshd restart


#系統調優,將系統檔案數和進程數調高至65535

cat <<EOF >> /etc/security/limits.conf

*                soft    nproc           65535

*                soft    nproc           65535

*                soft    nofile          65535

*                hard    nofile          65535

EOF

#或者使用sed 插入到指定的行

#sed -i "49i*                soft    nproc           65535\n*                soft    nproc           65535\n*                soft    nofile          65535\n*                hard    nofile          65535" /etc/security/limits.conf


sed -i ‘s/^root/#root/‘ /etc/security/limits.d/90-nproc.conf 

sed -i ‘s/1024/65535/‘ /etc/security/limits.d/90-nproc.conf 

sed -i "6i*          hard    nporc     65535" /etc/security/limits.d/90-nproc.conf 


#安裝系統擴充源:http://dl.fedoraproject.org/pub/epel

if [ `awk ‘{print $3}‘ /etc/redhat-release |awk -F ‘.‘ ‘{print $1}‘` -eq 6 ];then

                rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

        elif [ `awk ‘{print $4}‘ /etc/redhat-release |awk -F ‘.‘ ‘{print $1}‘` -eq 7 ];then

                rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 

fi


#安裝系統營運包:

yum install -y lrzsz gcc gcc-c++  perl perl-devel bzip2 bzip2-devel make man vim tree unzip wget lua-devel lua-static patch libxml2 libxml2-devel libxslt libxslt-devel gd gd-devel ntp screen sysstat rsync lsof  gettext  gettext-devel autoconf automake libtool git openssl openssl-devel curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel perl-Data-Dumper


#升級系統:

yum update -y 


#第二部分:安裝LAMP


#================================mysql 的安裝配置#================================

cd $SoftDir && wget -q http://www.linuser.com/share/soft/mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz


#解壓:

tar zxf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz


#移動解壓目錄病重新命名Mysql:

mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql


#添加mysql 系統使用者:

if [ -z `grep mysql /etc/passwd` ] ;then

        useradd -s /sbin/nologin mysql

fi


#建立mysql 初始化資料目錄:

if [ ! -d "/data/mysql" ] ;then

        mkdir -p /data/mysql

fi


#將mysql 初始化目錄所屬主和組修改為mysql:

chown -R mysql.mysql /data/mysql/


#初始化

cd $MysqlS && ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql 


#備份系統預設的my.cnf 檔案:

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


#複製mysql 的 主設定檔到etc 目錄下病重新命名為my.cnf

 \cp support-files/my-default.cnf /etc/my.cnf


#複製mysql 的啟動指令碼到/etc/init.d 目錄下:

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


#賦予啟動755 許可權:

chmod 755 /etc/init.d/mysqld


#修改my.cnf 檔案配置如下:

cat << EOF > /etc/my.cnf

[mysqld]

pid-file=/data/mysql/mysql.pid

log-error=/var/log/mysql.log

datadir = /data/mysql

basedir = /usr/local/mysql

character-set-server=utf8

port = 3306

socket = /tmp/mysql.sock

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 16M

thread_concurrency = 8

binlog_format=mixed

server-id = 1

slow-query-log = 1

slow-query-log-file = /data/mysql/mysql-slow.log

log-bin = mysql-bin

log-bin-index = mysql-bin.index

symbolic-links = 0

skip-name-resolve


[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set=utf8


[mysqldump]

quick

max_allowed_packet = 16M


#[mysqld_safe]


[mysql]

no-auto-rehash


[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M


[mysqlhotcopy]

interactive-timeout

EOF


#啟動mysql:

service mysqld start


if [ `echo $?` -eq 0 ] ;then

        echo "Mysql started"

else

        exit

fi


#將Mysqld 設定為隨機啟動:

chkconfig --add mysqld && chkconfig mysqld on


#================================apr 、apr-util 、libmcrypt 及pcre ================================


cd $SoftDir


wget -q http://www.linuser.com/share/soft/apr-1.5.2.tar.gz


#解壓:

tar zxf apr-1.5.2.tar.gz


#進入解壓目錄:

cd apr-1.5.2 && ./configure --prefix=/usr/local/apr


#編譯及安裝

MAKE && MAKE_INS


cd $SoftDir


wget -q http://www.linuser.com/share/soft/apr-util-1.5.4.tar.gz


tar zxf apr-util-1.5.4.tar.gz


cd ./apr-util-1.5.4  && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr


#編譯及安裝

MAKE && MAKE_INS


cd $SoftDir 


wget -q http://www.linuser.com/share/soft/libmcrypt-2.5.7.tar.gz


tar zxf libmcrypt-2.5.7.tar.gz


cd libmcrypt-2.5.7 && ./configure --prefix=/usr/local/libmcrypt 


#編譯及安裝

MAKE && MAKE_INS


cd $SoftDir


wget -q http://www.linuser.com/share/soft/pcre-8.37.tar.gz


tar zxf pcre-8.37.tar.gz


cd pcre-8.37  && ./configure --prefix=/usr/local/pcre 


#編譯及安裝

MAKE && MAKE_INS


cd $SoftDir


wget -q http://www.linuser.com/share/soft/zlib-1.2.8.tar.gz


tar zxf zlib-1.2.8.tar.gz


cd zlib-1.2.8 && ./configure --prefix=/usr/local/zlib


#編譯及安裝:

MAKE && MAKE_INS


#================================apache 的安裝配置================================

cd $SoftDir && wget -q http://www.linuser.com/share/soft/httpd-2.4.16.tar.gz


#解壓apache:

tar zxf httpd-2.4.16.tar.gz


#進入解壓目錄:

cd httpd-2.4.16


#配置編譯參數:

./configure  --prefix=/usr/local/apache2 -enable-so --enable-mods-shared=all --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre=/usr/local/pcre/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-z=/usr/local/zlib 


#編譯簡裝:

MAKE && MAKE_INS


#================================php 安裝配置================================

cd $SoftDir && wget -q http://www.linuser.com/share/soft/php-5.5.30.tar.gz


#解壓:

tar -zxf php-5.5.30.tar.gz


cd php-5.5.30 && ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs  --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql  --with-libxml-dir  --with-gd --with-jpeg-dir  --with-png-dir --with-freetype-dir  --with-iconv-dir --with-zlib-dir  --with-bz2  --with-openssl  --with-mcrypt=/usr/local/libmcrypt  --enable-soap  --enable-gd-native-ttf  --enable-mbstring --enable-sockets  --enable-exif  --disable-ipv6 --with-pear   --with-curl --with-openssl --with-mysqli --enable-mysqlnd --with-gettext  --enable-bcmath --enable-sockets 


#編譯及安裝

MAKE && MAKE_INS 


sed -i ‘s/DirectoryIndex index.html/DirectoryIndex index.html index.php/‘ /usr/local/apache2/conf/httpd.conf

sed -i ‘s/^#ServerName www.example.com:80/ServerName localhost:80/‘ /usr/local/apache2/conf/httpd.conf

sed -i "392i AddType application/x-httpd-php .php" /usr/local/apache2/conf/httpd.conf


#開啟防火牆的80連接埠

iptables -I INPUT -p tcp --dport 80 -j ACCEPT && service iptables save


#測試apache 配置是否有誤

/usr/local/apache2/bin/apachectl -t

if [ `echo $?` -ne 0 ];then

                exit

fi

#================================xcache 安裝配置================================

cd $SoftDir && wget -q http://www.linuser.com/share/soft/xcache-3.2.0.tar.gz


#解壓:

tar zxf xcache-3.2.0.tar.gz 


#進入解壓目錄,清除phpize

cd xcache-3.2.0 && /usr/local/php/bin/phpize --clean


#執行phpize,生產xcache 設定檔:

/usr/local/php/bin/phpize 


#配置編譯參數:

./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config 


#編譯及安裝

MAKE && MAKE_INS


#複製PHP源碼包中的php.ini-production 到 /usr/local/php/etc 目錄下並重新命名為php.ini

 \cp /usr/local/src/php-5.5.30/php.ini-production /usr/local/php/etc/php.ini


#將xcache 庫檔案加入到php.ini 檔案中

echo "extemsiobn_dir=‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/‘" >> /usr/local/php/etc/php.ini

 

echo "extension=xcache.so" >> /usr/local/php/etc/php.ini


#啟動Apache:

/usr/local/apache2/bin/apachectl -k restart


#重新命名apache 預設的首頁index.html:

mv /usr/local/apache2/htdocs/index.html{,.bak}


#建立php 資訊頁面,測試apache 解析php:

echo "<?php   echo phpinfo();  ?>" > /usr/local/apache2/htdocs/index.php


#將apache 加入到系統內容變數中:

echo "PATH=$PAHT:/usr/local/apache2/bin" >> /etc/profile

source /etc/profile


指令碼執行:

  time sh /usr/local/sbin/lamp.sh >/var/log/install.log 2>&1

本文出自 “linux系統學習擴充” 部落格,請務必保留此出處http://zhangxiaoxiong.blog.51cto.com/11657691/1786187

LAMP(apache/httpd+mysql+php)環境/架構 一鍵安裝指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.