首页 > 代码库 > LAMP一键安装脚本

LAMP一键安装脚本

 

LAMP shell

本脚本适用环境:

  • 系统支持:CentOS/Redhat/Fedora
  • 内存要求:≥256M
  • 硬盘要求:2GB以上的剩余空间
  • 服务器必须配置好软件源和可连接外网
  • 必须具有系统 root 权限
  • 建议使用干净系统全新安装
  • 日期:2014年11月14日

关于本脚本:

  • 支持 PHP 自带所有组件;
  • 支持 MySQL ,MariaDB, SQLite 数据库;
  • 支持 OCI8 (可选安装);
  • 支持 pure-ftpd (可选安装);
  • 支持 memcached (可选安装);
  • 支持 ImageMagick (可选安装);
  • 支持 GraphicsMagick (可选安装);
  • 支持 Zend Guard Loader (可选安装);
  • 支持 ionCube PHP Loader (可选安装);
  • 支持 XCache ,Zend OPcache (可选安装);
  • 命令行新增虚拟主机,操作简便;
  • 自助升级 PHP,phpMyAdmin,MySQL 或 MariaDB 至最新版本;
  • 支持创建 FTP 用户;
  • 一键卸载(切记,卸载前请注意备份数据)。

将会安装:

  • 1、Apache 2.4.10
  • 2、MySQL 5.6.21、MySQL 5.5.40、MariaDB 5.5.40、MariaDB 10.0.14 (四选一安装)
  • 3、PHP 5.4.34, PHP 5.3.29, PHP 5.5.19 (三选一安装)
  • 4、phpMyAdmin 4.2.11
  • 5、OCI8 2.0.8 (可选安装)
  • 6、xcache 3.2.0 (可选安装)
  • 7、pure-ftpd-1.0.36 (可选安装)
  • 8、memcached-1.4.20 (可选安装)
  • 9、Zend OPcache 7.0.3 (可选安装)
  • 10、ImageMagick-6.8.9-8 (可选安装)
  • 11、GraphicsMagick-1.3.20 (可选安装)
  • 12、Zend Guard Loader 3.3 (可选安装)
  • 13、ionCube PHP Loader 4.6.1 (可选安装)

如何安装:

事前准备(安装 wget、screen、unzip,创建 screen 会话):

yum -y install wget screen unzipscreen -S lamp

第一步,下载、解压、赋予执行权限:

wget --no-check-certificate -O lamp.zip https://github.com/teddysun/lamp/archive/master.zipunzip lamp.zipcd lamp-master/chmod +x *.sh

第二步,安装 LAMP 一键安装包
终端中输入以下命令:

./lamp.sh 2>&1 | tee lamp.log

安装其它:

  • 1、(可选安装)执行脚本 xcache.sh 安装 xcache 。(命令:./xcache.sh)
  • 2、(可选安装)执行脚本 oci8_oracle11g.sh 安装 OCI8 扩展以及 oracle-instantclient11.2。(命令:./oci8_oracle11g.sh)
  • 3、(可选安装)执行脚本 pureftpd.sh 安装 pure-ftpd-1.0.36。(命令:./pureftpd.sh)
  • 4、(可选安装)执行脚本 ZendGuardLoader.sh 安装 Zend Guard Loader。(命令:./ZendGuardLoader.sh)
  • 5、(可选安装)执行脚本 ioncube.sh 安装 ionCube PHP Loader。(命令:./ioncube.sh)
  • 6、(可选安装)执行脚本 ImageMagick.sh 安装 imagick 的 PHP 扩展。(命令:./ImageMagick.sh)
  • 7、(可选安装)执行脚本 GraphicsMagick.sh 安装 gmagick 的 PHP 扩展。(命令:./GraphicsMagick.sh)
  • 8、(可选安装)执行脚本 opcache.sh 安装 Zend OPcache 的 PHP 扩展。(命令:./opcache.sh)
  • 9、(可选安装)执行脚本 memcached.sh 安装 memcached 及 memcached 的 PHP 扩展。(命令:./memcached.sh)
  • 10、(升级脚本)执行脚本 upgrade_php.sh 将会升级 PHP 和 phpMyAdmin 至最新版本。(命令:./upgrade_php.sh | tee upgrade_php.log)
  • 11、(升级脚本)执行脚本 upgrade_mysql.sh 将会升级 MySQL 至已安装版本的最新版本。(命令:./upgrade_mysql.sh | tee upgrade_mysql.log)
  • 12、(升级脚本)执行脚本 upgrade_mariadb.sh 将会升级 MariaDB 至已安装版本的最新版本。(命令:./upgrade_mariadb.sh | tee upgrade_mariadb.log)

关于 upgrade_php.sh
新增 upgrade_php.sh 脚本,目的是为了自动检测和升级 PHP 和 phpMyAdmin。这两种软件版本更新比较频繁,因此才会有此脚本,方便升级。
使用方法:

./upgrade_php.sh | tee upgrade_php.log

关于 upgrade_mysql.sh
新增 upgrade_mysql.sh 脚本,目的是为了自动检测和升级 MySQL。升级之前自动备份全部数据库,在升级完成之后再将备份恢复。
使用方法:

./upgrade_mysql.sh | tee upgrade_mysql.log

关于 upgrade_mariadb.sh
新增 upgrade_mariadb.sh 脚本,目的是为了自动检测和升级 MariaDB。升级之前自动备份全部数据库,在升级完成之后再将备份恢复。
使用方法:

./upgrade_mariadb.sh | tee upgrade_mariadb.log

注意:
1、执行脚本时出现下面的错误提示时。

-bash: ./lamp.sh: /bin/bash^M: bad interpreter: No such file or directory

是因为Windows下和Linux下的文件编码不同所致。
解决办法是:
执行

vi lamp.sh

输入命令

:set ff=unix 

#注意,包括冒号
回车后,输入ZZ(两个大写字母z),即可保存退出vi命令。

2、Oracle 数据库连接错误排查
一般连接外部 oracle 服务器那一步骤时,可能会出现 ORA-24408:could not generate unique server group name 这样的错误,解决办法是在 hosts 中将主机名添加即可:

vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 test::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 test

上面的代码中,test即为主机名。然后重启网络服务即可。service network restart

3、增加 FTP 用户相关
在运行 lamp ftp add 命令之前,先要安装 pure-ftpd ,如果开启了防火墙的话,还需要对端口 21 放行。
执行以下命令安装 pure-ftpd:

./pureftpd.sh 2>&1 | tee pureftpd.log

使用提示:
lamp add(del,list):创建(删除,列出)虚拟主机。
lamp ftp(add|del|list):创建(删除,列出)ftp 用户。
lamp uninstall:一键删除 LAMP(切记,删除之前请注意备份数据!)

程序目录:
MySQL 安装目录: /usr/local/mysql
MySQL 数据库目录:/usr/local/mysql/data(默认,安装时可更改路径)
MariaDB 安装目录: /usr/local/mariadb
MariaDB 数据库目录:/usr/local/mariadb/data(默认,安装时可更改路径)
PHP 安装目录: /usr/local/php
Apache 安装目录: /usr/local/apache

命令一览:
MySQL 或 MariaDB 命令:

/etc/init.d/mysqld(start|stop|restart|status)

Apache命令:

/etc/init.d/httpd(start|stop|restart|status)

网站根目录:
默认的网站根目录: /data/www/default

更多信息或下载安装包请参考项目主页:https://github.com/teddysun/lamp

更新日志:

更新(2014年11月14日):升级 PHP 至版本 5.5.19;升级 phpMyAdmin 至版本 4.2.11。
更新(2014年10月20日):升级 PHP 至版本 5.4.34,5.5.18。
更新(2014年10月10日):升级 MariaDB 至版本 5.5.40,10.0.14;升级 phpMyAdmin 至版本 4.2.9.1。
注意:数据库如果选择安装 MariaDB 5.5.40,在编译 PHP 时会出现 #error <my_config.h> MUST be included first! 错误。参考链接:http://cgit.drupalcode.org/barracuda/commit/?id=db4f837
目前已经更改了默认安装的数据库为 MySQL。而 MariaDB 5.5.40 则不推荐安装,等待官方修复这个 Bug。
更新(2014年09月26日):新增 memcached.sh 脚本,一键安装 memcached 及 memcached 的 PHP 扩展;升级 MySQL 至版本 5.5.40,5.6.21。
更新(2014年09月25日):新增 GraphicsMagick.sh 脚本,一键安装 gmagick 扩展。
更新(2014年09月24日):新增 PHP 版本 5.3.29, 5.5.17 支持;新增 MySQL 版本 5.5.39 支持;新增 opcache.sh 脚本,一键安装 Zend OPcache;优化 MySQL 和 MariaDB 的升级脚本;优化 ZendGuardLoader,Xcache,OCI8,ionCube PHP Loader,ImageMagick 脚本,对应 PHP 各版本;升级 Xcache 至版本 3.2.0;
更新(2014年09月22日):升级 PHP 至版本 5.4.33;升级 phpMyAdmin 至版本 4.2.9;升级 ImageMagick 至版本 6.8.9-8。
更新(2014年09月01日):升级 PHP 至版本 5.4.32;升级 phpMyAdmin 至版本 4.2.8;优化升级脚本 upgrade_php.sh。
更新(2014年08月12日):支持 CentOS 7,更多详情参照《CentOS 7下LAMP一键安装》。
更新(2014年08月03日):升级 Apache 至版本 2.4.10;升级 MySQL 至版本 5.6.20;升级 phpMyAdmin 至版本 4.2.7。
更新(2014年07月26日):升级 PHP 至版本 5.4.31。
更新(2014年07月18日):升级 phpMyAdmin 至版本 4.2.6。
更新(2014年07月12日):新增 ImageMagick 扩展支持脚本 ImageMagick.sh;修正了获取 PHP 5.4 最新版版本号的一个问题(upgrade_php.sh)。
更新(2014年06月27日):升级 phpMyAdmin 至版本 4.2.5;升级 PHP 至版本 5.4.30。
更新(2014年06月24日):新增安装 MariaDB 10.0 的选项;优化升级 MariaDB 的脚本,自动判断已安装 MariaDB 版本并做对应版本的升级;升级 phpMyAdmin 至版本 4.2.4。
更新(2014年06月20日):新增安装 MariaDB 5.5 的选项;新增升级 MariaDB 的脚本;升级 phpMyAdmin 至版本 4.2.3;因为最近 google 众所周知的缘故,更改 xcache 和 pureftpd 安装包的下载链接;优化和修正一些细节。
更新(2014年06月05日):新增编译 PHP 模块:bz2, gettext, gmp, pcntl, readline, shmop, xsl;新增 ionCube.sh 脚本一键安装 ionCube PHP Loader;优化 Xcache、Zend Guard Loader、OCI8 安装后的配置文件到 PHP 单独的目录 /usr/local/php/php.d 下。
更新(2014年05月31日):升级 PHP 到版本 5.4.29;升级 MySQL 到版本 5.6.19;新增 MySQL 一键升级脚本 upgrade_mysql.sh ,升级之前自动备份所有数据库,升级完成后自动恢复数据库。
更新(2014年05月22日):升级 phpMyAdmin 到版本 4.2.2。
更新(2014年05月14日):升级 phpMyAdmin 到版本 4.2.1;修正:卸载时关闭开机启动,删除 MySQL 相关软链接。
更新(2014年05月12日):升级 phpMyAdmin 到版本 4.2.0。如果用升级脚本 upgrade_php.sh 升级 phpMyAdmin 到版本 4.2.0 的话,请参考 注意事项 。全新安装则不受影响。
更新(2014年05月03日):升级 PHP 到版本 5.4.28。
更新(2014年04月28日):升级 phpMyAdmin 到版本 4.1.14;修改脚本中安装包的下载链接,从原来的七牛改为自用的VPS,原因是七牛对于国外下载速度实在是慢。
更新(2014年04月21日):升级 MySQL 到版本 5.6.17,升级 PHP 到版本 5.4.27,升级 phpMyAdmin 到版本 4.1.13。
更新(2014年03月20日):升级 Apache 到版本 2.4.9,升级 PHP 到版本 5.4.26,升级 phpMyAdmin 到版本 4.1.9。
更新(2014年02月10日):升级 PHP 到版本 5.4.25,升级 phpMyAdmin 到版本 4.1.7。新增 Zend Guard Loader 安装脚本 ZendGuardLoader.sh。
更新(2014年02月01日):升级 MySQL 到版本 5.6.16;升级 phpMyAdmin 到版本 4.1.6;由于 Google Code 无法再新建文件下载,更新安装包的下载链接为七牛云存储外链。国外 VPS 下载安装包可能会比较慢。
更新(2014年01月11日):升级 PHP 到版本 5.4.24,升级 phpMyAdmin 到版本 4.1.4。
更新(2013年12月18日):升级 Apache 到版本 2.4.7 ;升级 PHP 到版本 5.4.23 ;升级 phpMyAdmin 到版本 4.1.1 ;升级 Apache 的依赖包 apr 到版本 1.5.0 ;升级 Apache 的依赖包 apr-util 到版本 1.5.3 ;升级 re2c 到版本 0.13.6 ;
本次更新需注意:由于 phpMyAdmin 的版本 4.1.1 所创建的 phpmyadmin 数据库新增了 3 张表,所以通过升级脚本 upgrade_php.sh 升级 phpMyAdmin 到版本 4.1.1 后,请手动删除数据库 phpmyadmin 并重新创建该数据库(如何创建参考链接:http://teddysun.com/268.html),然后下载最新版中的 config.inc.php 文件替换 /data/www/default/phpmyadmin 下的同名文件即可。全新安装本脚本则不受影响。
更新(2013年12月10日):升级 OCI8 的版本至2.0.6;升级 oracle-instantclient 的版本至 11.2.0.4.0。
更新(2013年12月05日):更新 phpMyAdmin 至版本4.0.10;更新脚本 upgrade_php.sh,修复 phpMyAdmin 版本升级至 4.0.10 后因排序问题导致不能获取最新版本号。
更新(2013年12月03日):更新 MySQL 至版本5.6.15。
更新(2013年11月28日):更新 PHP 编译参数,增加对 PDO MySQL 的支持。(备注:这样在安装 Drupal 时可以选择 MySQL 数据库)
更新(2013年11月22日):升级 phpMyAdmin 到版本为 4.0.9;升级 PHP 到版本为 5.4.22;优化 lamp.sh 脚本代码逻辑,使其充分利用多核处理器的性能,编译更快;更新脚本 upgrade_php.sh,因 PHP 官网改版,修改获取最新版 PHP 的方式。
更新(2013年11月04日):新增脚本xcache.sh。
更新(2013年10月23日):更新 PHP 到5.4.21,更新 MySQL 到 5.6.14,更新 phpMyAdmin 到 4.0.8。
更新(2013年09月24日):修正因为 PHP 官方下载页面对 PHP 下载地址的修改,导致 upgrade_php.sh 脚本无法下载到 PHP5.4 的最新版本(截至目前5.4的最新版为5.4.20)。更新记录请参照:这里
更新(2013年09月16日):修正因为 PHP 官方下载页面对 PHP 版本字段的修改,导致 upgrade_php.sh 脚本无法检测到 PHP5.4 的最新版本。更新记录请参照:这里
更新(2013年08月23日):安装PHP5.4.19的脚本已更新到 2.2 版,更新记录请参照:这里
更新(2013年07月24日):安装 PHP5.4.17 的脚本已更新到 2.1 版,更新记录请参照:这里
更新(2013年05月28日):新增的升级脚本upgrade_php.sh 添加了一篇演示文章。同时修正了在测试过程中发现的一个拼写错误。
受影响的版本 2.0,已修正并更新软件包。
更新(2013年05月23日):2.0版本中的lamp.sh有个复制配置文件的路径写错了,导致apache无法解析默认web目录。感谢mrj的反馈!
受影响的版本从1.2.1到2.0,目前已全部修正并更新软件包。
更新(2013年05月17日):安装 PHP5.4.x 的脚本 2.0 版本中的 upgrade_php.sh 已更新,版本号未作改变。
更新记录:
优化脚本 upgrade_php.sh,修复更新 phpMyAdmin 后无法打开的问题。
目前最新版 phpMyAdmin 为4.0.1,请在 lamp.sh 脚本运行完后及时运行 upgrade_php.sh 脚本更新 phpMyAdmin 到最新版本。
更新(2013年05月13日):升级 phpMyAdmin 到版本4.0.0;升级 PHP 到版本5.4.15;优化脚本 upgrade_php.sh,修复了安装完新版 PHP 后已安装的 extensions 丢失的 bug。
备注:本次升级版本号不作调整,依旧为2.0,项目下载页面中替换了原来的下载文件。
更新(2013年04月28日):安装PHP5.4.x的脚本已更新到2.0版。
关于2.0版的说明:本版本为重大更新。新增 upgrade_php.sh 脚本。
更新(2013年04月18日):安装PHP5.3.x的脚本已更新到1.2.2版。
更新(2013年04月13日):安装PHP5.4.x的脚本已更新到1.3.1版。

后记:
折腾这个脚本的缘由参照《新站开张》一文。实际上,这个脚本从一开始是参照Linux服务器运维日志的脚本改编而来,改成符合我所做的项目需求,在这里感谢原作者。随着改得越来越多,于是干脆就作为一个项目发布出来,记录自己的折腾的过程,同时如果能给一些需要的人用到,与有荣焉。
我在折腾这个脚本的时候,参照了大量网上的教程,有时候在编译出错的时候也会抓狂,但只要耐下性子逐一排查,运用google大法都能一一解决。当然,我也在此过程中学到了不少关于Linux、Shell、编译参数等各种知识。

已有 476 条评论

  1. Kate 说:2014-11-21 21:54

    Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 7 x64 Edition Windows 7 x64 Edition

    请问 Pureftp用户如何设置权限 才能上传文件的?

    回复

  2. Kim 说:2014-11-20 15:38

    Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 7 Windows 7

    请问eAccelerator可以暂时停用么? 如果可以的话,该如何操作呢?

    回复

    • 秋水逸冰 说:2014-11-21 00:04

      Google Chrome 38.0.2125.122 Google Chrome 38.0.2125.122 Windows 7 x64 Edition Windows 7 x64 Edition

      该 LAMP 脚本中不包含这个 eAccelerator。

      回复

  3. 李大壮 说:2014-11-19 20:09

    Google Chrome 38.0.2125.122 Google Chrome 38.0.2125.122 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    httpd: Syntax error on line 471 of /usr/local/apache/conf/httpd.conf: Syntax error on line 10 of /usr/local/apache/conf/extra/httpd-vhosts.conf: Syntax error on line 13 of /usr/local/apache/conf/vhost/www.dianzikong.net.conf: without matching section
    修改虚拟主机的配置文件后,就没法重启apache了

    回复

    • 秋水逸冰 说:2014-11-20 09:25

      Wordpress App 3.3.1 Wordpress App 3.3.1 Android 3.3.1 Android 3.3.1

      修改的不对,重新参考网上教程修改吧,另,无需修改 httpd.conf 文件。

      回复

  4. ゲームダウンロード 说:2014-11-18 14:40

    Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 7 Windows 7

    请问安装完memcached 之后, 可以暂时停用,等安装好网站模版之后再用么?
    十分感谢啊!

    回复

    • 秋水逸冰 说:2014-11-18 15:54

      Wordpress App 3.3.1 Wordpress App 3.3.1 Android 3.3.1 Android 3.3.1

      可以停用,运行命令:
      /etc/init.d/memcached stop

      回复

  5. 流星过雁 说:2014-11-15 15:46

    Firefox 33.0 Firefox 33.0 Windows 7 x64 Edition Windows 7 x64 Edition

    感觉到用的时候了,对了 支持多站吗?

    回复

    • 秋水逸冰 说:2014-11-16 07:43

      Wordpress App 3.3 Wordpress App 3.3 Android 3.3 Android 3.3

      当然支持了

      回复

  6. JK 说:2014-11-14 15:08

    Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 7 Windows 7

    很好的作品啊.谢谢!
    请问有计划加Varnish么

LAMP一键安装脚本