本文转自lnmp、lamp、lnmpa一键安装包和LAMP一键安装脚本使用说明

这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP),适用于CentOS 6~7(包括redhat)、Debian 6~8、Ubuntu 12~16的32位和64位。

脚本特性

  • 持续不断更新
  • 源码编译安装,大多数源码是最新stable版,并从官方网址下载
  • 提供多个数据库版本(MySQL-5.7, MySQL-5.6, MySQL-5.5, MariaDB-10.1, MariaDB-10.0, MariaDB-5.5, Percona-5.6, Percona-5.5, AliSQL-5.6, PostgreSQL, MongoDB)
  • 提供多个PHP版本(PHP-7.1, PHP-7.0,PHP-5.6, PHP-5.5,PHP-5.4,PHP-5.3)
  • 提供Nginx、Tengine、OpenResty
  • 提供多个Apache版本(Apache-2.4,Apache-2.2)
  • 根据自己需求安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。及php加解密工具ionCube、ZendGuardLoader、swoole、xdebug、Composer
  • 根据自己需求安装Pureftpd、phpMyAdmin
  • 根据自己需求安装memcached、redis
  • jemalloc优化MySQL、Nginx
  • 提供添加、删除虚拟主机脚本
  • 提供Nginx/Tengine/OpenResty/Apache、MySQL/MariaDB/Percona、PHP、Redis、phpMyAdmin升级脚本
  • 提供本地、远程(服务器之间rsync)、阿里云OSS、腾讯云COS和upyun备份
  • 提供CentOS 6、7下HHVM安装

Github地址:https://github.com/lj2007331/lnmp

带JAVA版本请访问:http://oneinstack.com/

提交问题请访问:http://oneinstack.com/qa/

问题反馈请加QQ群:

  • 付费千人群:558540514
  • 群7: 262601796(新)
  • 群6: 535783209(满)
  • 群5: 556824757(满)
  • 群4: 213014293
  • 群3: 486321919
  • 群2: 438311066
  • 群1: 235258658

安装步骤

  1. yum -y install wget screen curl python#for CentOS/Redhat
  2. #apt-get -y install wget screen curl python# for Debian/Ubuntu
  3. wget http://aliyun-oss.linuxeye.com/lnmp-full.tar.gz #阿里云经典网络内网下载
  4. wget http://mirrors.linuxeye.com/lnmp-full.tar.gz # 包含源码,国内外均可下载
  5. wget http://mirrors.linuxeye.com/lnmp.tar.gz # 不包含源码,建议仅国外主机下载
  6. tar xzf lnmp-full.tar.gz
  7. #tar xzf lnmp.tar.gz
  8. cd lnmp # 如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件
  9. screen -S lnmp # 如果网路出现中断,可以执行命令screen -R lnmp重新连接安装窗口
  10. ./install.sh # 请勿sh install.sh或者bash install.sh这样执行

如何添加虚拟主机?

  1. ./vhost.sh

如何删除虚拟主机?

  1. ./vhost.sh del

如何管理ftp账号?

  1. ./pureftpd_vhost.sh

数据备份

  1. cd ~/lnmp # 必须进入lnmp目录下执行
  2. ./backup_setup.sh # 备份参数设置
  3. ./backup.sh # 立即执行备份
  4. crontab -e # 可添加到计划任务,如每天凌晨1点自动备份
  5. 0 1 * cd ~/lnmp;./backup.sh > /dev/null 2>&1 &

备份参数设置如下图:

如何管理服务?

Nginx/Tengine/OpenResty:

  1. service nginx {start|stop|status|restart|reload|configtest}

MySQL/MariaDB/Percona:

  1. service mysqld {start|stop|restart|reload|status}

PHP:

  1. service php-fpm {start|stop|restart|reload|status}

Apache:

  1. service httpd {start|restart|stop}

HHVM:

  1. service supervisord {start|stop|status|restart|reload}

注:hhvm进程交给supervisord管理,了解更多请访问《Supervisor管理hhvm进程》

Pure-Ftpd:

  1. service pureftpd {start|stop|restart|status}

Redis:

  1. service redis-server {start|stop|status|restart|reload}

Memcached:

  1. service memcached {start|stop|status|restart|reload}

如何更新版本?

  1. ./upgrade.sh

跨大版本升级(如php):http://oneinstack.com/question/oneinstack-downgrade-if-php-version/

如何卸载?

  1. ./uninstall.sh

如何重装?

  1. 12
    ./uninstall.sh # 请先备份数据好数据后再卸载,丢失数据概不负责./install.sh # 再次安装

    程序目录:
    MySQL 安装目录: /usr/local/mysql
    MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)
    MariaDB 安装目录: /usr/local/mariadb
    MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
    PHP 安装目录: /usr/local/php
    Apache 安装目录: /usr/local/apache
    phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)

    网站目录:
    默认的网站根目录: /data/www/default
    默认页位置: /data/www/default/index.html
    新建站点默认目录: /data/www/域名/web
    phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)
    phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)
    xcache 后台地址: http://域名或ip/xcache/
    xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)

    配置文件:
    Apache 日志目录: /usr/local/apache/logs
    Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf
    新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
    PHP 配置文件: /usr/local/php/etc/php.ini
    PHP 所有扩展配置文件目录: /usr/local/php/php.d/
    MySQL 配置文件: /etc/my.cnf

    命令一览:
    MySQL 或 MariaDB 命令:
    /etc/init.d/mysqld (start|stop|restart|status)
    Apache命令:
    /etc/init.d/httpd (start|stop|restart|status)
    memcached
    /etc/init.d/memcached (start|stop|restart|status)

    安装LAMP及建站简单流程:
    1、安装 LAMP 环境
    2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)
    3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web
    4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名
    5、运行网站安装程序完成网站安装

    问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?
    答:以 root 登录后,运行:chown -R apache:apache /data/www/域名

    问2:安装时因内存不足报错,不能完成安装?
    答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
    更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
    同时还优化了安装过程中对内存的占用。
    备注:为什么写成 480 MB ?
    这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。

    问3:域名跟 ip 地址都显示相同的网页,如何设置?
    答:这是因为域名没与 IP 绑定。
    修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
    在此文件的第 1 行开始,追加以下虚拟主机的配置:

    1234
    <virtualhost *:80>ServerName  公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost>

    注意,格式是301+空格+斜杠+空格+完整网址
    此处是用到了 301 永久重定向来达到目的。
    然后保存并重启 Apache,命令:/etc/init.d/httpd restart

    问4:将 MySQL 换成 MariaDB ,应该怎么做?
    答:
    1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
    2、卸载 LAMP,命令:lamp uninstall
    3、重新安装 LAMP,选择 MariaDB
    4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump
    卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。
    注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。

    问5:如何更改网站的默认目录?
    答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可

    问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?
    答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。
    如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。

    问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?
    答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。
    比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。
    修改示例:
    ServerName www.ccc.com
    ServerAlias ccc.com

    问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?
    答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。
    MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。
    因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data
    当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:

    12
    /usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql

    然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data
    更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。

    问9:LAMP 能配合什么 Web 面板管理呢?
    答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。

    问10:请问 xcache 的后台怎么进去?
    答:http://域名或IP/xcache/
    用户名:admin
    密码:123456
    前提是你安装了 xcache 后才能进入该后台。

    问11:如何修改 xcache 的后台用户名和密码?
    答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。
    注意 xcache.admin.pass 的值是密码 md5 后的值。
    然后重启 Apache 即可。

    问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?
    答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。
    删除已有的 PHP 步骤:
    rm -rf /etc/php.ini /usr/bin/php* /usr/local/php
    编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。

    当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。

    问13:安装以后要如何关闭日志功能?
    答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,
    搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。

    问14:FTP 安装使用是怎样的?
    答:1、安装 LAMP 环境;
    2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
    3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);
    4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
    5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。
    敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。
    因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。

    问15:Apache 的 SSL 如何设置?
    答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。
    还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。
    可以参考《Apache下部署ssl教程》一文。

    问16:安装 PHP 时出现以下错误,怎么处理?
    cc: Internal error: Killed (program cc1)
    Please submit a full bug report.
    See for instructions.
    make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
    Installing PHP failed, Please visit https://teddysun.com/lamp and contact.

    答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
    更多错误信息查询,参考《PHP编译安装常见错误总结》一文。

    问17:请问如何卸载组件呢,比如 xcache memcached?
    答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。
    比如安装了 PHP 5.4 的话:
    /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
    /usr/local/php/php.d/xcache.ini

    问18:怎么卸载 phpMyAdmin?
    答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。
    默认安装位置是 /data/www/default/phpmyadmin/

    问19:多个IP的VPS如何设置一个IP对应一个域名呢?
    答:按照以下步骤:
    1、创建虚拟主机,以域名命名;
    2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
    3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。

本文作者:独归远,采用署名-非商业性使用-相同方式共享CC BY-NC-SA 3.0许可协议
本文标题:Linux学习之一键建站脚本
本文链接:https://blog.syzhou.site/2018/2018.11.18Linux学习之一键建站脚本/

谢谢你请我吃糖果

支付宝
微信

Linux学习之一键建站脚本相关推荐

  1. linux下测试个人主页,一键建站集成软件包,Linux上快速搭建测试个人网站

    原标题:一键建站集成软件包,Linux上快速搭建测试个人网站 来自:Linux迷 https://www.linuxmi.com/ubuntu-20-0-linux-xampp.html 在Ubunt ...

  2. linux的建站安装包,一键建站集成软件包,Linux上快速搭建测试个人网站

    原标题:一键建站集成软件包,Linux上快速搭建测试个人网站 来自:Linux迷 https://www.linuxmi.com/ubuntu-20-0-linux-xampp.html 在Ubunt ...

  3. 阿里云一键建站产品,阿里云自营建站-中小企业建站首选...

    阿里云推出的自营建站服务,这对于中小企业来说简直是福利了,现在一般的公司都开始有了自己的官网,有可能就是因为你的官网设计的标准,大气,客户就会对你的信任度增加,从而促进一笔不小的订单,这都是有可能的啊 ...

  4. 阿里云一键建站产品,阿里云自营建站-中小企业建站首选

    阿里云推出的自营建站服务,这对于中小企业来说简直是福利了,现在一般的公司都开始有了自己的官网,有可能就是因为你的官网设计的标准,大气,客户就会对你的信任度增加,从而促进一笔不小的订单,这都是有可能的啊 ...

  5. wordpress入门-wordpress入门一键建站免费插件配置教程

    wordpress入门?wordprss怎么入门怎么快速搭建一个网站,并且做好SEO优化.今天就给大家推荐一款 wordpress全套工具,一键建站+SEO内容优化. 各种主题功能插件等等最全word ...

  6. Linux虚拟机克隆一键修改IP脚本 伸手党速速来取

    Linux虚拟机克隆一键修改IP脚本 hostnamectl --static set-hostname hadoop$1 //修改hostname的名称,$1为传参值file=/etc/syscon ...

  7. 最新首发自助建站系统源码,傻瓜式一键建站系统源码,高度开源支持专业在线自助建站服务平台软件

    一佰互联,巅云门户自助建站系统v8建站平台版,历经3年不断打磨终于上线了.专业PS级大师级高端响应式智能建站平台软件,只为网络公司而生,采用国内知名开源php框架,Thinkphp6+vue.js前端 ...

  8. 最新自助建站系统源码 一键建站系统源码 含700+精美网站模板和搭建教程

    分享一款最新自助建站系统源码,一键建站系统源码,傻瓜式一键建站含700+精美网站模板,网站全是自适应响应式,含完整代码程序包和详细搭建教程. 系统模板页面图: 系统功能特色一览: 1.一次性打包,解决 ...

  9. Niushop Saas版商城系统 一款一键建站、多样化营销的傻瓜式运营商城系统

    什么是Saas版商城系统? Niushop开源商城Saas运营版商城系统,是牛之云科技新推出的一体化商城运营解决方案,是一种通过互联网云端提供服务ID模式,企业无需自建服务器,快速搭建自己的商城系统. ...

最新文章

  1. 针对天气预报集合数据的时间层次聚类和可视化
  2. golang 读取 ini配置信息
  3. Day02-深度学习原理与使用方法
  4. Linux虚拟内存映射分析以及CMA测试 - 以SSD202为例
  5. BOI 2003 Problem. Spaceship
  6. primefaces_PrimeFaces扩展中的全新JSF组件
  7. 舞动的桥 阿里云首个百万IOPS云盘的背后
  8. (转)Hibernate框架基础——在Hibernate中java对象的状态
  9. C++第一次试水写cstring类
  10. [工具向]__申请,下载,使用百度地图api
  11. Yii2中使用自定义的数据库
  12. Linux_数据段、代码段、堆栈段、BSS段的区别
  13. 长尾关键词生成工具-长尾关键词生成软件免费-关键词组合工具
  14. Windows电脑怎么卸载服务/删除服务?
  15. 阿里巴巴分布式调度引擎tbschedule实战四tbschedule的配置使用
  16. 戴尔linux恢复镜像,如何从官网下载并使用系统恢复映像
  17. matlab liccode,有没有哪位大佬能帮忙解决以下两个错误:liccode=cha
  18. Data Analysis - Day7 - Pandas
  19. Java8新特性——Map的新方法
  20. Excel怎么快速删除空白表

热门文章

  1. 第四届江西省高校网络安全技能大赛 决赛 MISC
  2. 华为HCIP-DATACOM题库解析51-70(821)
  3. Python练手小程序—统计英文文件中单词出现的的个数
  4. 远程控制软件Aspia详细教程
  5. ubuntu18虚拟机克隆之后ip相同的解决方案
  6. 利用flask解析海康摄像头视频
  7. 达利欧的五步流程事理模型
  8. Windows 11学习入门
  9. 在 vue-cli 项目中添加标签页图标 favicon
  10. IC入行第一步:怎样选择岗位和公司?