最近自学了下Shell编程,也算是入门吧!按照如下教程,编译安装了LAMP(Apache-2.4.6 + MySQL-5.5.25 + PHP-5.3.27)

CentOS6.3编译安装LAMP(1):准备工作

CentOS6.3编译安装LAMP(2):编译安装 Apache2.2.25

CentOS6.3编译安装LAMP(2):编译安装 Apache2.4.6

CentOS6.3编译安装LAMP(3):编译安装 MySQL5.5.25

CentOS6.3编译安装LAMP(4):编译安装 PHP5.2.17

CentOS6.3编译安装LAMP(4):编译安装 PHP5.3.27

在生产环境上,如果按着上述教程一个一个地去安装,势必有些麻烦,于是萌发了一个念头:能不能把这些Shell脚本汇总到一个脚本中,实现自动化安装呢?答案是可以的。


【个人专用&入门级】LAMP一键安装包

软件版本:

Apache-2.4.6 + MySQL-5.5.25 + PHP-5.3.27

运行环境:

目前仅在CentOS-5.5(32位)上试验并编译通过,后续会在CentOS6.3上试验下,包括64位系统。

源码下载:

放在了百度云盘,点击进入下载页面,需要下载的文件及文件夹清单如下:

Apache-2.4.6
MySQL-5.5.25
PHP-5.3.27
phpMyAdmin-3.5.8
Config
Shell
lamp.sh

把它们上传到Linux主机的某个目录下即可,如 /usr/local/src 目录

运行方式:

chmod +x ./lamp.sh && ./lamp.sh

部分Shell脚本预览

lamp.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
###################################################################
## author: snsgou.com
## website: http://www/snsgou.com/lamp
## version: 0.1
################################################################### #需要切换到root用户
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi chmod -R 755 ./* CUR_PATH=$(pwd)
CONFIG_PATH="$CUR_PATH/Config"
SHELL_PATH="$CUR_PATH/Shell" action=$1
[[ -z $1 ]] && action=install
case "$action" in
install)
source $SHELL_PATH/lamp_install.sh
;;
uninstall)
source $SHELL_PATH/lamp_uninstall.sh
;;
add)
source $SHELL_PATH/vhost_add.sh
;;
del)
source $SHELL_PATH/vhost_del.sh
;;
esac

Shell/lamp_install.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
###################################################################
## author: snsgou.com
## website: /article/detail/702
## version: 0.1
################################################################### #当前路径检测
if [[ -z $CUR_PATH ]]; then
echo '$CUR_PATH is not defined'
exit 1
fi ###################################################################
## 全局变量
################################################################### #网站目录(暂不支持修改)
SITE_PATH='/var/www' #Apache2.4的mpm选择(可修改)
# prefork (Recommend); worker (Multi-threaded); event (Multi-threaded,not support ssl.)
Apache_MPM=prefork #MySQL的root密码(可修改)
MySQL_ROOT_PWD='123456' #MySQL的data目录(暂不支持修改)
MySQL_DATA_PATH='/usr/local/mysql/data' #设置时区
rm -rf /etc/localtime
\cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ###################################################################
## 准备工作
################################################################### #卸载已存在的rpm包
rpm -e httpd
rpm -e mysql
rpm -e php yum -y remove httpd
yum -y remove mysql-server mysql
yum -y remove php
yum -y remove php-mysql yum -y install yum-fastestmirror #selinux可能会致使编译安装失败,我们先禁用它
setenforce 0 #yum安装必要工具
yum -y install gcc gcc-c++ kernel-devel ntp vim-enhanced flex bison autoconf make automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libmhash-devel pcre-devel libtool-libs gd file patch mlocate diffutils readline-devel glibc-devel glib2-devel libcap-devel ###################################################################
## 安装 Apache-2.4
################################################################### #安装 apr
cd $CUR_PATH/Apache-2.4.6
rm -rf ./apr-1.4.6
tar -xzvf ./apr-1.4.6.tar.gz
cd ./apr-1.4.6
mkdir /usr/local/apr
./configure --prefix=/usr/local/apr
make && make install #安装 apr-util
cd $CUR_PATH/Apache-2.4.6
rm -rf ./apr-util-1.4.1
tar -xzvf ./apr-util-1.4.1.tar.gz
cd ./apr-util-1.4.1
mkdir /usr/local/apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && make install #安装 pcre
cd $CUR_PATH/Apache-2.4.6
rm -rf ./pcre-8.33
tar -xzvf ./pcre-8.33.tar.gz
cd ./pcre-8.33
mkdir /usr/local/pcre
./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config
make && make install #切换到Apache源码目录
cd $CUR_PATH/Apache-2.4.6
rm -rf ./httpd-2.4.6
tar -xzvf ./httpd-2.4.6.tar.gz
cd ./httpd-2.4.6 #生成configure
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-deflate=shared --enable-expires=shared --enable-ssl=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support --with-mpm=$Apache_MPM #编译
make && make install #使用init脚本管理httpd
#\cp -f ./build/rpm/httpd.init /etc/init.d/httpd
\cp -f $CONFIG_PATH/httpd-2.4.6.init /etc/init.d/httpd #增加执行权限
chmod 755 /etc/init.d/httpd #添加httpd到服务项,并设置开机启动
chkconfig --add httpd
chkconfig --level 2345 httpd on
#chkconfig --list httpd #查看是否设置成功 #建立httpd的软链接,到时候,Apache的配置文件路径为 /etc/httpd/conf/httpd.conf,
#其实真实路径为 /usr/local/apache/conf/httpd.conf
rm -rf /etc/httpd
mkdir /etc/httpd
ln -sf /usr/local/apache/conf /etc/httpd/conf #设置软链接以适应init脚本
ln -sf /usr/local/apache/bin/httpd /usr/sbin/httpd
ln -sf /usr/local/apache/bin/apachectl /usr/sbin/apachectl rm -rf /var/log/httpd/
ln -s /usr/local/apache/logs /var/log/httpd #添加apache用户组及用户
groupadd apache
useradd -g apache -s /usr/sbin/nologin apache
chown -R apache:apache /usr/local/apache #新建网站目录
rm -rf $SITE_PATH/html
mkdir -p $SITE_PATH
chmod -R 755 $SITE_PATH
\cp -f $CONFIG_PATH/httpd-vhosts-2.4.6.conf /etc/httpd/conf/extra/httpd-vhosts.conf
mkdir -p /usr/local/apache/conf/vhost
touch /usr/local/apache/conf/vhost/none.conf
\cp -f $CONFIG_PATH/httpd-2.4.6.conf /usr/local/apache/conf/httpd.conf
\cp -f $CONFIG_PATH/index.html $SITE_PATH/index.html
\cp -f $CONFIG_PATH/p.php $SITE_PATH/p.php
\cp -f $CONFIG_PATH/phpinfo.php $SITE_PATH/phpinfo.php #启动Apache
#service httpd start echo "############################# Apache-2.4 install completed #############################" ###################################################################
## 安装 MySQL-5.5
################################################################### #安装cmake
cd $CUR_PATH/MySQL-5.5.25
rm -rf ./cmake-2.8.8
tar -xzvf ./cmake-2.8.8.tar.gz
cd ./cmake-2.8.8
./configure
make && make install #解压MySQL
cd $CUR_PATH/MySQL-5.5.25
rm -rf ./mysql-5.5.25
tar -xzvf ./mysql-5.5.25.tar.gz
cd ./mysql-5.5.25 mkdir -p $MySQL_DATA_PATH
groupadd mysql
useradd -g mysql -s /usr/sbin/nologin mysql #cmake编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=$MySQL_DATA_PATH -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0 #安装
make && make install #复制配置文件
#\cp ./support-files/my-medium.cnf /etc/my.cnf
\cp -f $CONFIG_PATH/my-5.5.25.cnf /etc/my.cnf #设置权限
chmod +x /usr/local/mysql
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql #添加MySQL的软链接以适应init脚本
ln -sv /usr/local/mysql/bin/mysql /usr/sbin/mysql
ln -sv /usr/local/mysql/bin/mysqladmin /usr/sbin/mysqladmin
ln -sv /usr/local/mysql/bin/mysqldump /usr/sbin/mysqldump #初始化数据库
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=$MySQL_DATA_PATH #配置开机自动启动
\cp -f ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
#chkconfig --list mysqld #查看是否已应用上 #启动MySQL
service mysqld start #设置root密码
/usr/local/mysql/bin/mysqladmin password $MySQL_ROOT_PWD
mysql -uroot -p$MySQL_ROOT_PWD <<EOF
drop database test;
delete from mysql.user where user='';
update mysql.user set password=password('$MySQL_ROOT_PWD') where user='root';
delete from mysql.user where not (user='root') ;
flush privileges;
exit
EOF echo "############################# MySQL-5.5 install completed #############################" ###################################################################
## 安装 PHP-5.3
################################################################### #安装 libmcrypt
cd $CUR_PATH/PHP-5.3.27
rm -rf ./libmcrypt-2.5.8
tar -xzvf ./libmcrypt-2.5.8.tar.gz
cd ./libmcrypt-2.5.8
./configure --prefix=/usr
make && make install #安装 mhash
cd $CUR_PATH/PHP-5.3.27
rm -rf ./mhash-0.9.9.9
tar -xzvf ./mhash-0.9.9.9.tar.gz
cd ./mhash-0.9.9.9
./configure --prefix=/usr
make && make install #安装 mcrypt
/sbin/ldconfig #搜索出可共享的动态链接库
cd $CUR_PATH/PHP-5.3.27
rm -rf ./mcrypt-2.6.8
tar -xzvf ./mcrypt-2.6.8.tar.gz
cd ./mcrypt-2.6.8
./configure
make && make install #安装 libiconv
cd $CUR_PATH/PHP-5.3.27
rm -rf ./libiconv-1.14
tar -xzvf ./libiconv-1.14.tar.gz
cd ./libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install #安装 PHP-5.3.27
cd $CUR_PATH/PHP-5.3.27
rm -rf ./php-5.3.27
tar -xzvf ./php-5.3.27.tar.gz
cd ./php-5.3.27
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --with-bz2 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-mcrypt --with-mhash --with-gettext --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --enable-gd-native-ttf --enable-mbstring --enable-zip --enable-ftp --enable-soap --enable-sockets --enable-bcmath --without-pear
make && make install #复制配置文件php.ini
#\cp ./php.ini-development /etc/php.ini
\cp -f $CONFIG_PATH/php-5.3.27.ini /etc/php.ini
mkdir /etc/php.d #重启Apache
#service httpd restart #添加SELINUX规则
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so echo "############################# PHP-5.3 install completed #############################" ###################################################################
## 安装 phpMyAdmin-3.5.8
################################################################### cd $CUR_PATH/phpMyAdmin-3.5.8
rm -rf ./phpMyAdmin-3.5.8.2-all-languages
tar -xzvf ./phpMyAdmin-3.5.8.2-all-languages.tar.gz
mv ./phpMyAdmin-3.5.8.2-all-languages $SITE_PATH/phpmyadmin
chmod -R 755 $SITE_PATH/phpmyadmin
chown -R apache:apache $SITE_PATH/phpmyadmin
\cp -f $CONFIG_PATH/phpMyAdmin-3.5.8-config.inc.php $SITE_PATH/phpmyadmin/config.inc.php #启动Apache
service httpd start echo "############################# phpMyAdmin-3.5.8 install completed #############################" ###################################################################
## 更改网站目录权限
################################################################### chown -R apache:apache /usr/local/apache
chown -R apache:apache $SITE_PATH
chmod -R 755 $SITE_PATH

整个过程编译下来,大概花了 1小时20分钟!

【个人专用&入门级】LAMP一键安装包的更多相关文章

  1. LAMP一键安装包-CentOS 5/6下自动编译安装Apache,MySQL,PHP

    http://www.centos.bz/lamp/ 此安装包已经不再维护,请使用新版http://www.centos.bz/ezhttp/. 适用环境: 系统支持:CentOS-5 (32bit/ ...

  2. LAMP一键安装包(Python版)

    去年有出一个python整的LAMP自动安装,不过比较傻,直接调用的yum 去安装了XXX...不过这次一样有用shell..我也想如何不调用shell 来弄一个LAMP自动安装部署啥啥的..不过尼玛 ...

  3. phpStudy for Linux (lnmp+lamp一键安装包)

    phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Tengine/Lighttpd/IIS7/8/6 phpStudy for Linux 支持Apache/Ng ...

  4. centos 6的LAMP一键安装包(可选择/升级版本)

    安装步骤 事前准备(安装 wget.screen.unzip,创建 screen 会话) yum -y install wget screen git git clone 并赋予脚本执行权限 git ...

  5. 推荐一个lamp的一键安装包

    本来我是一直用的nginx的,现在安全者的服务器是用的tengine,稳定性就不用多说了! 前段时间用thinkphp写了两个两个项目,刚开始放到了国外的服务器上,环境也是lnmp的,最后发现ngin ...

  6. lnmp、lamp、lnmpa一键安装包(Updated: 2015-10-25)

    lnmp.lamp.lnmpa一键安装包(Updated: 2015-10-25) 2014-12-26 Posted by yeho 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/ ...

  7. lnmp、lamp、lnmpa一键安装包(Updated: 2016-4-12)

    lnmp.lamp.lnmpa一键安装包(Updated: 2016-4-12)   文章目录 脚本特性 安装步骤 如何添加虚拟主机? 如何删除虚拟主机? 如何管理ftp账号? 数据备份 如何管理服务 ...

  8. lanmp v2.5一键安装包发布(包括lamp,lnmp,lnamp安装)

    lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境 ...

  9. 安装lnmp一键安装包(转)

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要3GB以上硬盘剩余空间 128M以上内存,Xen的需要有SWAP,OpenVZ的另外 ...

随机推荐

  1. EasyHook远程进程注入并hook api的实现

    EasyHook远程进程注入并hook api的实现 http://blog.csdn.net/v6543210/article/details/44276155

  2. java的应用项目

    elk是一个不错的日志分析系统 mycat  是一不错的mysql中间件,可以做一个横向的分库分表模型,在无感知的时候,增加分库分表. apache ant 是一个java项目发布工具 springb ...

  3. sicily 1052. Candy Sharing Game

    Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description A number of students sit in a circle ...

  4. C基础入门 - 第一章 - C语言绪言

    第1章 C语言绪言 1.1 C语言概述 1.1.1 C语言世界 1.1.2 C语言学习, 能当饭吃吗 1.2 开发环境构建 1.2.1 visual studio安装使用 1.2.2 visual s ...

  5. 无缝滚动Js

    <html> <body> <div style="width: 190px; height: 127px; overflow: hidden; font-si ...

  6. FineReport——JS二次开发(自定义翻页按钮)

    FR允许自定义工具栏上面的按钮,并提交JS方法: 对于翻页功能,大概有首页,下一页,上一页,最后一页,以及跳转页等功能. 不得不说的是,在HTML页面自定义的按钮如何获取到报表模板,通过FR提供的JS ...

  7. javascript方法--apply()

    今天琢磨了一下apply,以前对这个方法觉得比较懵,今天一琢磨确实觉得挺好玩的. 一开始把MDN的apply文档看了一遍,感觉不是很理解,而且有一些东西也是知道但是比较模糊,所以还是一步一步来,不懂查 ...

  8. WdatePicker做出onchange效果

    WdatePicker({onpicking: function (dp) {if (dp.cal.getDateStr() != dp.cal.getNewDateStr()) { Func(dp. ...

  9. 运行ceph时,了解一下主要的进程。

    最简单ceph.conf配置如下: [global] fsid = 798ed076--429e-9e27-0ffccd60b56e mon_initial_members = ceph-node1 ...

  10. PHP实现RESTful风格的API实例

    原生方式实现,直接撸代码 Request.php :包含一个Request类,即数据操作类.接收到URL的数据后,根据请求URL的方式(GET|POST|PUT|PATCH|DELETE)对数据进行相 ...