LAMP 之 自动化编译安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP 之 自动化编译安装相关的知识,希望对你有一定的参考价值。

1 概述

LAMP 目前在CentOS6不支持php-fpm的安装,安装高版本的数据库在centos6上也需要通过编译安装完成,本文介绍了Modules模式和FastCGI模式快速部署LAMP的包和相关操作,同时附上了一键安装的编译脚本。

2  快速部署LAMP

在CentOS6和7中,在Modules模式和FastCGI模式安装服务包如下

.CentOS 7:

.Modules模式:httpd, php,php-mysql, mariadb-server
.FastCGI模式:httpd, php-fpm,php-mysql, mariadb-server

.CentOS 6:

.Modules模式:httpd, php, php-mysql,mysql-server
.FastCGI:默认不支持

.安装LAMP

.CentOS 6:

yum install httpd, php, mysql-server,php-mysql
service httpdstart
service mysqld start

.CentOS 7:

yum install httpd, php, php-mysql,mariadb-server
systemctl  start httpd.service
systemctl  start mariadb.service

.注意:要使用prefork模型

3 一键编译安装

脚本前提:

1.本次下载的服务包都放在了自制的http服务器172.18.50.75这台服务器上,通过wget工具进行下载。

2.保证yum源可用,yum源既要有本地的光盘yum源,同时也要保证epel源可用,因为软件包安装需要用到这两个源安装一些开发包组,建议用yum repolist 查看

#!/bin/bash
#
#******************************************************************************
#Author:               Sunny
#Date:                 2017-10-07
#FileName:             auto_install_LAMP.sh
#version:              1.0
#Your change info:      
#Description:          For auto install LAMP with xcache,wordpress,phymysqladmin
#DOC URL:               
#Copyright(C):         2017  All rihts reserved
#*****************************************************************************
echo "Now install wget..."
rpm -q wget &>/dev/null || yum -y install wget &>/dev/null;
echo "install development tools,please wait..."
yum -y groupinstall "development tools" &>/dev/null || { echo "something wrong when install development tools,Please check local yum resource,script exist now";exit; }
serverip=$(ifconfig  | awk ‘/inet /{print $2}‘| awk -F : ‘{print $NF}‘| head -1)

[ -e /app ] || mkdir /app

get_version() {
 os_version=`cat /etc/system-release | grep -o " [0-9]"| cut -d " " -f2`
}

get_version;
min_time () {
    time=`date +%Y%m%d%H%M`
}
min_time;

last_restart_ser(){

/app/httpd24/bin/apachectl restart &>/dev/null && echo "Httpd24 has been restart OK,you can test now..." || echo "Something wrong when start httpd24,please check"
service mysqld restart &>/dev/null  && echo "Mysqld has been restart OK,you can test now..." || echo "Something wrong when start httpd24,please check"
service php-fpm restart &>/dev/null && echo "php-fpm has been restart OK,you can test now..." || echo "Restart php-fpm wrong,if you install php-fpm,please check,else ignore it."
echo "PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH" >> /etc/profile.d/lamp.sh
echo "please run . /etc/profile.d/lamp.sh in order to export PATH"
echo "run   mysql_secure_installation  to init mysql"
echo "all is done,now exist"

}


httpd24_service(){
cat >/etc/init.d/httpd24<<eof
#!/bin/bash
#
# httpd        Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: The Apache HTTP Server is an efficient and extensible  \#	       server implementing the current HTTP standards.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd/httpd.pid
#
### BEGIN INIT INFO
# Provides: httpd
# Required-Start: \$local_fs \$remote_fs \$network \$named
# Required-Stop: \$local_fs \$remote_fs \$network
# Should-Start: distcache
# Short-Description: start and stop Apache HTTP Server
# Description: The Apache HTTP Server is an extensible server 
#  implementing the current HTTP standards.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi

# Start httpd in the C locale by default.
HTTPD_LANG=\${HTTPD_LANG-"C"}

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
RETVAL=0
STOP_TIMEOUT=\${STOP_TIMEOUT-10}

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
        echo -n \$"Starting \$prog: "
        LANG=\$HTTPD_LANG daemon --pidfile=\${pidfile} \$httpd \$OPTIONS
        RETVAL=\$?
        echo
        [ \$RETVAL = 0 ] && touch \${lockfile}
        return \$RETVAL
}

# When stopping httpd, a delay (of default 10 second) is required
# before SIGKILLing the httpd parent; this gives enough time for the
# httpd parent to SIGKILL any errant children.
stop() {
	echo -n \$"Stopping \$prog: "
	killproc -p \${pidfile} -d \${STOP_TIMEOUT} \$httpd
	RETVAL=\$?
	echo
	[ \$RETVAL = 0 ] && rm -f \${lockfile} \${pidfile}
}
reload() {
    echo -n \$"Reloading \$prog: "
    if ! LANG=\$HTTPD_LANG \$httpd \$OPTIONS -t >&/dev/null; then
        RETVAL=6
        echo \$"not reloading due to configuration syntax error"
        failure \$"not reloading \$httpd due to configuration syntax error"
    else
        # Force LSB behaviour from killproc
        LSB=1 killproc -p \${pidfile} \$httpd -HUP
        RETVAL=\$?
        if [ \$RETVAL -eq 7 ]; then
            failure \$"httpd shutdown"
        fi
    fi
    echo
}

# See how we were called.
case "\$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  status)
        status -p \${pidfile} \$httpd
	RETVAL=\$?
	;;
  restart)
	stop
	start
	;;
  condrestart|try-restart)
	if status -p \${pidfile} \$httpd >&/dev/null; then
		stop
		start
	fi
	;;
  force-reload|reload)
        reload
	;;
  graceful|help|configtest|fullstatus)
	\$apachectl \[email protected]
	RETVAL=\$?
	;;
  *)
	echo \$"Usage: \$prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}"
	RETVAL=2
esac

exit \$RETVAL
eof
chmod 755 /etc/init.d/httpd24
}


get_pack_file (){
  echo "Now You will ask to input to package name,if you do not know the complete package name,please check under  $url $localdir" 
  echo "for example,version httpd 2.4 ,its complete package name is httpd-2.4.27.tar.bz2,if you have many packages to download,you should use space to distinguish between different packages"
  read -p "now please input the packages names you want to download in $url,(eg:apr-1.6.2.tar.gz  httpd-2.4.27.tar.bz2  php-7.1.10.tar.xz): " package
  [ -e /root/package/package."$time" ] || mkdir -p /root/package/package."$time";
  echo "$package" | tr -s " " "\n" &>/root/package/package.file
  echo
}

get_package (){

echo "You have two ways to get packages you want:"
echo "remote: You will download from remote server,default url is  http://192.168.32.75/source"
echo "local:  You have already prepare package in the local host"
echo
[ -e /root/package ] || mkdir -p /root/package;
read -p  "Your package in l(local) or r(remote)( r or l ): " choice
case $choice in
r)
  read -p "Please input the url where you want to download package(default:http://172.18.50.75/source): " url
  url=${url:-http://172.18.50.75/source}
  wget -nv --spider $url 2>&1 | grep -o "200 OK" &>/dev/null || { echo "The url is wrong or could not be connect,the scirpt will exit,please check";exit; }


  get_pack_file;

  echo "Now start to download pack,please wait a minute"
  cd  /root/package/package."$time"
  while read pack;
  do
  [ -e /root/package/package."$time"/$pack ] || wget -q "$url/$pack"
  [ -e /root/package/package."$time"/$pack ] && echo  "$pack had been success download !" || { echo "$pack did not been downloaded,it will exist,please check...";exit; }
  done</root/package/package.file;
 # rm -f /root/package/package.file;
;;
l)
   read -p "Please input the package directory(eg: /root/mariadb ): " localdir

  get_pack_file;

  echo "Now start to copy pack to /root/package/package."$time",please wait a minute"
  cd  /root/package/package."$time"
  while read pack
  do
  [ -e /root/package/package."$time"/$pack ] || cp $localdir/$pack /root/package/package."$time" &>/dev/null;
  [ -e /root/package/package."$time"/$pack ] && echo  "$pack had been  success copy to /root/package/package.$time " || { echo "$pack did not copy to /root/package/package.$time,it will exist,please check...";exit; }
  done</root/package/package.file
 # rm -f /root/package/package.file;
;;
*)
  echo "Your input is not r or l ,and it is wrong input,the script will exit,please check"
  exit
;;
esac
}

remove_package(){
read -p "Would U want to remove the package you have prepared this time( y  or  n ): " removeable
if [ "$removeable" = "y" ];then
  echo "now delete  /root/package/package."$time""
  rm -rf /root/package/package."$time";
  else
  echo "Since you answer is not y,$package will be save in  /root/package/package."$time" "
fi
}

install_httpd24(){
echo "now install httpd-2.4.27.tar.bz2 include apr-1.6.2.tar.gz  and apr-util-1.6.0.tar.gz"
get_package;
echo "Httpd2.4 will be install in /app/httpd24,it is website home is /app/httpd24/htdocs/"
echo install openssl-devel pcre-devel expat-devel ,please wait...
yum -y  install openssl-devel pcre-devel expat-devel &>/dev/null || { echo "something wrong when install openssl-devel pcre-devel expat-devel ,Please check local yum resource,script exist now";exit; }
cd /usr/local
tar xf /root/package/package."$time"/apr-1.6.2.tar.gz -C /usr/local
tar xf /root/package/package."$time"/apr-util-1.6.0.tar.gz -C /usr/local
tar xf /root/package/package."$time"/httpd-2.4.27.tar.bz2 -C /usr/local
cp -r /usr/local/apr-1.6.2  /usr/local/httpd-2.4.27/srclib/apr
cp -r /usr/local/apr-util-1.6.0  /usr/local/httpd-2.4.27/srclib/apr-util
cd /usr/local/httpd-2.4.27/
echo "now configure and make install httpd24"
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork &>/dev/null;
make &>/dev/null || ehco "something wrong when make httpd.please check"
make install &>/dev/null  || ehco "something wrong when make install httpd.please check"
echo  "PATH=/app/httpd24/bin/:$PATH" >> /etc/profile.d/lamp.sh
id apache &>/dev/null && userdel  apache &>/dev/null;
useradd -r -d /app/httpd24/htdoc  -s /sbin/nologin apache;
sed -i ‘s/User daemon/User apache/g‘  /app/httpd24/conf/httpd.conf 
sed -i ‘s/Group daemon/Group apache/g‘  /app/httpd24/conf/httpd.conf 
echo  "PATH=/app/httpd24/bin/:$PATH" >> /etc/profile.d/lamp.sh
sed -i "s/#ServerName www.example.com:80/ServerName www.$(hostname).com:80/g" /app/httpd24/conf/httpd.conf
if [ "$os_version" -eq 6 ];then
httpd24_service
chkconfig --add httpd24
chkconfig  httpd24 on
else 
echo "/app/httpd24/bin/apachectl start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
fi
/app/httpd24/bin/apachectl restart &>/dev/null;
ss -nultp | grep :80 &>/dev/null && echo "Httpd24 now is running..." || echo "Httpd24 could not be start,please check"
}

install_mariadb(){
echo "now install mariadb-5.5.57-linux-x86_64.tar.gz"
get_package;
echo "now unzip mariadb,wait a minute"
tar xf /root/package/package."$time"/mariadb-5.5.57-linux-x86_64.tar.gz  -C /usr/local/
cd /usr/local/
ln -s mariadb-5.5.57-linux-x86_64/ mysql
id mysql &>/dev/null && userdel  mysql &>/dev/null;
useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql;
cd /usr/local/mysql
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql &>/dev/null;
mkdir /etc/mysql
cp support-files/my-large.cnf   /etc/mysql/my.cnf
sed -i ‘/\[mysqld\]/ a skip_name_resolve = ON‘ /etc/mysql/my.cnf
sed -i ‘/\[mysqld\]/ a innodb_file_per_table = ON‘ /etc/mysql/my.cnf
sed -i ‘/\[mysqld\]/ a datadir = /app/mysqldb‘ /etc/mysql/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig  mysqld on
if [ $os_version -eq 6 ];then
touch /var/log/mysqld.log;
chown mysql /var/log/mysqld.log;
else
mkdir /var/log/mariadb;
chown mysql /var/log/mariadb/;
fi;
service mysqld restart &>/dev/null;
ps -ef | grep ^mysql &>/dev/null && echo "Mysql is running now..." || echo "Mysql is not running,please check"
echo "PATH=/usr/local/mysql/bin/:$PATH" >/etc/profile.d/lamp.sh 
echo "Now create database wpdb and create user wpadmin"
/usr/local/mysql/bin/mysql <<EOF
create database wpdb;
grant all on wpdb.* to [email protected]‘%‘ identified by ‘Pass123456‘;
EOF
echo "After mariadb is complete install,for safe ,run mysql_secure_installation"
}

install_php(){
echo "now install php-5.6.31.tar.bz2"
get_package;
echo "install libxml2-devel bzip2-devel libmcrypt-devel,please wait..."
echo "You should check basic and epel source"
yum -y install libxml2-devel bzip2-devel libmcrypt-devel &>/dev/null || { echo "something wrong when install libxml2-devel bzip2-devel libmcrypt-devel,Please check local and epel yum resource,script exist now";exit; }
echo "now unzip  php-5.6.31.tar.bz2,wait a minite"
tar xf /root/package/package."$time"/php-5.6.31.tar.bz2 -C /usr/local
echo "now configure php"
cd /usr/local/php-5.6.31
./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 &>/dev/null || { echo "something wrong when configure php,script will exist,please check";exit; }
make &>/dev/null || { echo "something wrong when make php,script will exist,please check";exit; }
make install &>/dev/null || { echo "something wrong when make install php,script will exist,please check";exit; }
cp /usr/local/php-5.6.31/php.ini-production  /etc/php.ini
echo "AddType application/x-httpd-php .php" >> /app/httpd24/conf/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /app/httpd24/conf/httpd.conf
sed -i.bak ‘s/DirectoryIndex index.html/DirectoryIndex index.php index.html/g‘ /app/httpd24/conf/httpd.conf
cat >/app/httpd24/htdocs/index.php <<EOF
<h1>
<?php
\$mysqli=new mysqli("$serverip","root","Pass123456");
if(mysqli_connect_errno()){
echo "it is falilure!";
\$mysqli=null;
exit;
}
echo "nice job,it is connected...";
\$mysqli->close();
phpinfo();
?>
</h1>
EOF
echo "php has been complete configure,now resatart httpd24"
/app/httpd24/bin/apachectl restart  &>/dev/null && echo "Httpd24 has been restart OK,you can test now..." || echo "Something wrong when start httpd24,please check"
}

install_php_fpm(){
echo "now install php-5.6.31.tar.bz2"
echo "install libxml2-devel bzip2-devel libmcrypt-devel,please wait..."
yum -y install openssl-devel libxml2-devel bzip2-devel &>/dev/null || { echo "something wrong when install  openssl-devel libxml2-devel bzip2-devel,Please check local  yum resource,script exist now";exit; }
yum -y install libmcrypt-devel &>/dev/null || { echo "something wrong when install libmcrypt-devel,Please check epel yum resource,script exist now";exit; }
get_package;
echo "now unzip  php-5.6.31.tar.bz2,wait a minite"
tar xf /root/package/package."$time"/php-5.6.31.tar.bz2 -C /usr/local
echo "now configure php"
cd /usr/local/php-5.6.31
./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir  --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php.d --with-bz2 &>/dev/null || { echo "something wrong when configure php,script will exist,please check";exit; }
make &>/dev/null || { echo "something wrong when make php,script will exist,please check";exit; }
make install &>/dev/null || { echo "something wrong when make install php,script will exist,please check";exit; }
[ -e /etc/php ] || mkdir /etc/php/
cp /usr/local/php-5.6.31/php.ini-production  /etc/php/php.ini
cp   /usr/local/php-5.6.31/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
cp /app/php/etc/php-fpm.conf.default  /app/php/etc/php-fpm.conf
sed -i.bak ‘s/#LoadModule proxy_module modules\/mod_proxy.so/LoadModule proxy_module modules\/mod_proxy.so/g‘  /app/httpd24/conf/httpd.conf
sed -i ‘s/#LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/g‘  /app/httpd24/conf/httpd.conf
#config httpd
sed -i.bak ‘s/DirectoryIndex index.html/DirectoryIndex index.php index.html/g‘ /app/httpd24/conf/httpd.conf
echo "AddType application/x-httpd-php .php" >> /app/httpd24/conf/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /app/httpd24/conf/httpd.conf
echo "ProxyRequests Off" >>/app/httpd24/conf/httpd.conf
#If your php_fpm is not install in the local host,you should replace 127.0.0.1 with php_fpm host ip.
echo "ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/\$1" >>/app/httpd24/conf/httpd.conf
cat >/app/httpd24/htdocs/index.php <<EOF
<h1>
<?php
\$mysqli=new mysqli("$serverip","wpadmin","Pass123456");
if(mysqli_connect_errno()){
echo "it is falilure!";
\$mysqli=null;
exit;
}
echo "nice job,it is connected...";
\$mysqli->close();
phpinfo();
?>
</h1>
EOF
echo "PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH" >>/etc/profile.d/lamp.sh 
echo "php_fpm has been complete configure,now resatart php_fpm and httpd24"
service php-fpm restart &>/dev/null && echo "php-fpm has been restart OK,you can test now..." || { echo "Something wrong when startphp-fpm,it will exit,please check";exit; }
/app/httpd24/bin/apachectl restart  &>/dev/null && echo "Httpd24 has been restart OK,you can test now..." || { echo "Something wrong when start httpd24,it will exit;please check";exit; }
}


install_xcache(){
echo "now install xcache-3.2.0.tar.gz to speed up php"
get_package;
echo "install php-devel ,please wait..."
yum -y  install  php-devel &>/dev/null || { echo "something wrong when install  php-devel ,Please check local yum resource,script exist now";exit; }
tar xf /root/package/package."$time"/xcache-3.2.0.tar.gz -C /usr/local
cd /usr/local/xcache-3.2.0/
phpize 
./configure  --enable-xcache --with-php-config=/app/php/bin/php-config &>/dev/null || { echo "something wrong when configure xcache,script will exist,please check";exit; }
make  &>/dev/null || { echo "something wrong when make xcache,script will exist,please check";exit; }
make install  &>/dev/null || { echo "something wrong when make install xcache,script will exist,please check";exit; }
[ -e /etc/php.d/ ] || mkdir /etc/php.d/
cp /usr/local/xcache-3.2.0/xcache.ini  /etc/php.d/
sed -i.bak ‘s/extension = xcache.so/extension = \/app\/php\/lib\/php\/extensions\/no-debug-non-zts-20131226\/xcache.so/g‘ /etc/php.d/xcache.ini 
echo "xcache has been complete configure,now resatart httpd24"
/app/httpd24/bin/apachectl restart  &>/dev/null && echo "Httpd24 has been restart OK,you can test now..." || echo "Something wrong when start httpd24,please check"

}

install_pma(){
echo "now install phpMyAdmin-4.0.10.20-all-languages.zip"
get_package;
echo "now install php-mysql and php-mbstring "
yum -y install  php-mysql php-mbstring &>/dev/null || { echo "something wrong when install php-mysql and php-mbstring,it will exist;please check";exit; }
unzip /root/package/package."$time"/phpMyAdmin-4.0.10.20-all-languages.zip -d /app/httpd24/htdocs/ &>/dev/null
ln -s /app/httpd24/htdocs/phpMyAdmin-4.0.10.20-all-languages/ /app/httpd24/htdocs/pma
cp /app/httpd24/htdocs/pma/config.sample.inc.php  /app/httpd24/htdocs/pma/config.inc.php
sed -i "s/\$cfg\[‘blowfish_secret‘\].*/\$cfg\[‘blowfish_secret‘\] = ‘afddadfsdfsfsdfdfsdfsadfsdfsdfsdfsdfffsfdsf‘;/g" /app/httpd24/htdocs/pma/config.inc.php
echo " phpMyAdmin has been complete configure now restart httpd24 and mysqld"
/app/httpd24/bin/apachectl restart  &>/dev/null && echo "httpd24 has been restart OK" || { echo "something wrong when restart httpd24,it will exit,please check";exit; }
service mysqld restart &>/dev/null && echo "mysqld has been restart ok,you can test  phpMyAdmin now" || { echo "something wrong when restart mysqld,it will exit,please check";exit; }
}

install_wordpress (){
echo "Now install wordpress-4.8-zh_CN.tar.gz,default database is wpdb,and teh user is wpadmin"
get_package;
tar xf /root/package/package."$time"/wordpress-4.8-zh_CN.tar.gz  -C /app/httpd24/htdocs
cd /app/httpd24/htdocs
ln -s /app/httpd24/htdocs/wordpress  /app/httpd24/htdocs/blog
cd /app/httpd24/htdocs/blog/
cp /app/httpd24/htdocs/blog/wp-config-sample.php  /app/httpd24/htdocs/blog/wp-config.php
sed -i.bak ‘s/database_name_here/wpdb/g‘ /app/httpd24/htdocs/blog/wp-config.php
sed -i ‘s/username_here/root/g‘ /app/httpd24/htdocs/blog/wp-config.php
sed -i ‘s/password_here/Pass1234/g‘ /app/httpd24/htdocs/blog/wp-config.php
echo "Now wordpress is config OK,you should open browser http://websrv/blog  to register "
}
echo "The script will install LAMP with phpmysqladmin,xcache and wordpress"
echo "You have two choice to install LAMP,the different is that you could install with php_fpm mode or php in httpd24"
read -p "Please input your choice ,1 means php_mode,2 means php in httpd24 mode( 1 or 2 ): " choice
case $choice in
1)
install_httpd24
install_mariadb
install_php_fpm
install_xcache
install_pma
install_wordpress

;;
2)

install_httpd24
install_mariadb
install_php
install_xcache
install_pma
install_wordpress
;;
*)
echo "Your input is wrong , now exit , please check..."
exit
;;
esac

last_restart_ser


本文出自 “阳光运维” 博客,请务必保留此出处http://ghbsunny.blog.51cto.com/7759574/1972203

以上是关于LAMP 之 自动化编译安装的主要内容,如果未能解决你的问题,请参考以下文章

编译安装lamp三部曲之mysql-技术流ken

lamp环境搭建之编译安装mysql

编译安装LAMP之httpd

Shell脚本自动部署(编译)LAMP平台

lamp环境搭建之编译安装php

web服务之源码编译安装LAMP(编译安装PHP 解析环境)