the script was tested on CentOS only, test OK, and other distributions self-test
#!/bin/bash
#Purpose: Install lamp with one click (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
}
#第一部分: Configuration of the system's underlying environment:
#判断当前用户是否为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 Environment:
If [-Z ' egrep-i ps1/etc/profile |awk ' {print '} '];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 $} '
if [$lang! = ' en_US. UTF-8 '];then
Sed-i "s/$lang/en_us. utf-8/"i18n
Fi
#做本机的hosts parsing:
Eth= ' egrep-i device/etc/sysconfig/network-scripts/ifcfg-eth0 |awk-f ' = ' {print $} '
If [-Z ' egrep-i $ (echo $HOSTNAME)/etc/hosts |awk ' {print $} '];then
echo $ (IP ad |grep "Global $ETH" |awk-f "/" ' {print $} ' |awk ' {print $} ' && echo $HOSTNAME) >>/etc/host S
Fi
#关闭selinux:
Sed-i ' s/selinux=enforcing/selinux=disabled/'/etc/selinux/config
#关闭反向解析:
Sed-i ' s/^ #UseDNS yes/usedns no/'/etc/selinux/config
#重启启动sshd Services:
Service sshd Restart
#系统调优, increase the number of system files and the number of processes to 65535
Cat <<eof >>/etc/security/limits.conf
* Soft Nproc 65535
* Soft Nproc 65535
* Soft Nofile 65535
* Hard Nofile 65535
Eof
#或者使用sed inserted into the specified row
#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 $} '/etc/redhat-release |awk-f '. ' ' {print $} '-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 $} '-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 mans vim tree unzip wget lua-devel lua-static PATC H libxml2 libxml2-devel libxslt libxslt-devel gd gd-devel NTP screen sysstat rsync lsof gettext gettext-devel autoconf A Utomake libtool git OpenSSL openssl-devel curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel per L-data-dumper
#升级系统:
Yum Update-y
#第二部分: Installing Lamp
Installation configuration of #================================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 System Users:
If [-Z ' grep mysql/etc/passwd ']; then
Useradd-s/sbin/nologin MySQL
Fi
#创建mysql Initialize the Data directory:
if [!-D "/data/mysql"]; then
Mkdir-p/data/mysql
Fi
#将mysql Initialize directory owner and group modified to MySQL:
Chown-r mysql.mysql/data/mysql/
#初始化
CD $MysqlS &&./scripts/mysql_install_db--datadir=/data/mysql--user=mysql
#备份系统默认的my. cnf file:
Mv/etc/my.cnf{,.bak}
#复制mysql main configuration file to the ETC directory seriously ill named MY.CNF
\CP support-files/my-default.cnf/etc/my.cnf
#复制mysql startup script to the/ETC/INIT.D directory:
\CP Support-files/mysql.server/etc/init.d/mysqld
#赋予启动755 Permissions:
chmod 755/etc/init.d/mysqld
#修改my. cnf files are configured as follows:
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 set to random start:
Chkconfig--add mysqld && chkconfig mysqld on
#================================apr, Apr-util, Libmcrypt and 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
Installation configuration of #================================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 Installation Configuration ================================
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 configuration is incorrect
/usr/local/apache2/bin/apachectl-t
If [' echo $? '-ne 0];then
Exit
Fi
#================================xcache Installation Configuration ================================
CD $SoftDir && wget-q http://www.linuser.com/share/soft/xcache-3.2.0.tar.gz
#解压:
Tar zxf xcache-3.2.0.tar.gz
#进入解压目录, Clear Phpize
CD xcache-3.2.0 &&/usr/local/php/bin/phpize--clean
#执行phpize, Production xcache configuration file:
/usr/local/php/bin/phpize
#配置编译参数:
./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config
#编译及安装
Make && Make_ins
#复制PHP源码包中的php. Ini-production to/usr/local/php/etc directory and rename to PHP.ini
\cp/usr/local/src/php-5.5.30/php.ini-production/usr/local/php/etc/php.ini
#将xcache library file into the php.ini file
echo "extemsiobn_dir= '/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/'" >>/usr/local/php/etc/ Ini
echo "extension=xcache.so" >>/usr/local/php/etc/php.ini
#启动Apache:
/usr/local/apache2/bin/apachectl-k restart
#重命名apache The default home index.html:
Mv/usr/local/apache2/htdocs/index.html{,.bak}
#新建php Information page, test Apache parsing PHP:
echo "<?php echo phpinfo (); ?> ">/usr/local/apache2/htdocs/index.php
#将apache add to the system environment variable:
echo "path= $PAHT:/usr/local/apache2/bin" >>/etc/profile
Source/etc/profile
Script execution:
Time sh/usr/local/sbin/lamp.sh >/var/log/install.log 2>&1
This article is from the Linux system Learning extension blog, so be sure to keep this source http://zhangxiaoxiong.blog.51cto.com/11657691/1786187
LAMP (apache/httpd+mysql+php) environment/Architecture One-click installation script