LNMP和LAMP

[toc]
当前两个主要应用的架构:LNMP和LAMP,都是指一组通常一起使用来运行动态网站或者服务器的自由软件名称。

LAMP的全称是:Linux + Apache + Mysql + PHP。

Supported Software

Software Version

Apache & Additional Modules Version
httpd 2.4.53
apr 1.7.0
apr-util 1.6.1
nghttp2 1.47.0
openssl 1.1.1n
mod_wsgi 4.9.0
mod_security2 2.9.5
mod_jk 1.2.48
Database Version
MySQL 5.7.37, 8.0.28
MariaDB 10.2.43, 10.3.34, 10.4.24, 10.5.15, 10.6.7, 10.7.3
PHP & Additional extensions Version
PHP 7.4.29, 8.0.18, 8.1.5
ionCube Loader 11.0.1
PDFlib 10.0.0
APCu extension 5.1.21
gRPC extension 1.44.0
ImageMagick 7.1.0-30
imagick extension 3.7.0
libsodium 1.0.18
libsodium extension 2.0.23
memcached 1.6.6
libmemcached 1.0.18
memcached extension 3.1.5
re2c 3.0
redis 5.0.14
redis extension 5.3.7
mongodb extension 1.12.0
swoole extension 4.8.6
yaf extension 3.3.4
yar extension 2.2.1
msgpack extension 2.1.2
psr extension 1.2.0
phalcon extension 4.1.2
xdebug extension 3.1.3
Database Management Tools Version
phpMyAdmin 5.1.3
Adminer 4.8.1
File Managerment Tool Version
KodExplorer 4.47

installationInstallation

  • If your server system: Amazon Linux 2/CentOS/Rocky Linux
yum -y install wget git
git clone https://github.com/teddysun/lamp.git
cd lamp
chmod 755 *.sh
./lamp.sh
  • If your server system: Debian/Ubuntu
apt-get -y install wget git
git clone https://github.com/teddysun/lamp.git
cd lamp
chmod 755 *.sh
./lamp.sh
./lamp.sh -h
  • Automation install mode example
./lamp.sh --apache_option 1 --apache_modules mod_wsgi,mod_security --db_option 1 --db_root_pwd teddysun.com --php_option 1 --php_extensions apcu,ioncube,imagick,redis,mongodb,libsodium,swoole --db_manage_modules phpmyadmin,adminer --kodexplorer_option 1

upgradeUpgrade

cd ~/lamp
git reset --hard         // Resets the index and working tree
git pull                 // Get latest version first
chmod 755 *.sh

./upgrade.sh             // Select one to upgrade
./upgrade.sh apache      // Upgrade Apache
./upgrade.sh db          // Upgrade MySQL or MariaDB
./upgrade.sh php         // Upgrade PHP
./upgrade.sh phpmyadmin  // Upgrade phpMyAdmin
./upgrade.sh adminer     // Upgrade Adminer

backupBackup

  • You must modify the config before run it
  • Backup MySQL or MariaDB datebases, files and directories
  • Backup file is encrypted with AES256-cbc with SHA1 message-digest (Depends on openssl command) (option)
  • Auto transfer backup file to Google Drive (Depends on rclone command) (option)
  • Auto transfer backup file to FTP server (Depends on ftp command) (option)
  • Auto delete remote file from Google Drive or FTP server (option)
./backup.sh

uninstallUninstall

./uninstall.sh

installationDefault Installation Location

Apache Location Path
Install prefix /usr/local/apache
Web root location /data/www/default
Main configuration File /usr/local/apache/conf/httpd.conf
Default virtual host conf /usr/local/apache/conf/vhost/default.conf
Virtual host conf /usr/local/apache/conf/vhost/your_virtual_host.conf
Virtual host SSL location /usr/local/apache/conf/ssl/your_virtual_host
Virtual host location /data/www/your_virtual_host_names
Virtual host log location /data/wwwlog/your_virtual_host_names
phpMyAdmin Location Path
Installation location /data/www/default/phpmyadmin
Adminer Location Path
Installation location /data/www/default/adminer.php
KodExplorer Location Path
Installation location /data/www/default/kod
PHP Location Path
Install prefix /usr/local/php
Configuration file /usr/local/php/etc/php.ini
ini additional location /usr/local/php/php.d
MySQL Location Path
Install prefix /usr/local/mysql
Default data location /usr/local/mysql/data
my.cnf configuration File /etc/my.cnf
MariaDB Location Path
Install prefix /usr/local/mariadb
Default data location /usr/local/mariadb/data
my.cnf configuration file /etc/my.cnf

process-managementProcess Management

Process Command
Apache /etc/init.d/httpd (start stop status restart)
MySQL/MariaDB /etc/init.d/mysqld (start stop status restart)
Memcached /etc/init.d/memcached (start stop restart)
Redis-Server /etc/init.d/redis-server (start stop restart)

lamp-commandlamp Command

Command Description
lamp add Create a new Apache virtual host
lamp del Delete a Apache virtual host
lamp list List all of Apache virtual hosts
lamp version Print version and exit

LNMP的全称是:Linux + Nginx + Mysql + PHP/Perl/Python

LNMP一键安装包是什么?

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。

LNMP一键安装包有哪些功能?

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

LNMP安装

安装前确认已经安装wget命令,如提示wget: command not found ,使用yum install wgetapt-get install wget 命令安装。 为防止掉线等情况,建议使用screen,可以先执行:screen -S lnmp 命令后,再执行LNMP安装命令: wget http://soft.vpser.net/lnmp/lnmp1.9beta.tar.gz -cO lnmp1.9beta.tar.gz && tar zxf lnmp1.9beta.tar.gz && cd lnmp1.9 && ./install.sh {lnmp|lnmpa|lamp}

如断线可使用screen -r lnmp 恢复。详细安装教程参考:https://lnmp.org/install.html

常用功能说明

以下操作需在lnmp安装包目录下执行,如lnmp1.9

自定义参数

lnmp.conf配置文件,可以修改lnmp.conf自定义下载服务器地址、网站/数据库目录及添加nginx模块和php编译参数;不论安装升级都会调用该文件里的设置(如果修改了默认的参数建议备份此文件);

FTP服务器

执行:./pureftpd.sh 安装,可使用 lnmp ftp {add|list|del} 进行管理。

升级脚本:

执行:./upgrade.sh 按提示进行选择 也可以直接带参数:./upgrade.sh {nginx|mysql|mariadb|php|phpa|m2m|phpmyadmin}

  • 参数: nginx 可升级至任意Nginx版本。
  • 参数: mysql 可升级至任意MySQL版本,MySQL升级风险较大,虽然会自动备份数据,依然建议自行再备份一下。
  • 参数: mariadb 可升级已安装的Mariadb,虽然会自动备份数据,依然建议自行再备份一下。
  • 参数: m2m 可从MySQL升级至Mariadb,虽然会自动备份数据,依然建议自行再备份一下。
  • 参数: php 仅适用于LNMP,可升级至大部分PHP版本。
  • 参数: phpa 可升级LNMPA/LAMP的PHP至大部分版本。
  • 参数: mphp 多PHP版本升级工具,只支持7.2.x-7.2.x类似小版本升级,大版本直接新装即可;
  • 参数: phpmyadmin 可升级phpMyadmin。

扩展插件

执行: ./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|apcu|imagemagick|ioncube|exif|fileinfo|ldap|bz2|sodium|imap|swoole} 以下为扩展插件安装使用说明

缓存加速:

  • 参数: xcache 安装时需选择版本和设置密码,http://yourIP/xcache/ 进行管理,用户名 admin,密码为安装xcache时设置的。
  • 参数: redis 安装redis
  • 参数: memcached 可选择php-memcache或php-memcached扩展。
  • 参数: opcache 可访问 http://yourIP/ocp.php 进行管理。
  • 参数: eaccelerator 安装。
  • 参数: apcu 安装apcu php扩展,支持php7,可访问 http://yourIP/apc.php 进行管理。 请勿安装多个缓存类扩展模块,多个可能导致网站出现问题 !

PHP组件/模块:

  • 参数:exif 图片exif信息读取模块。
  • 参数:fileinfo 文件MIME类型编码读取模块,安装要求至少有1GB以上内存,否则可能会安装失败。
  • 参数:ldap LDAP扩展。
  • 参数:bz2 bz2压缩扩展模块。
  • 参数:imap imap模块。
  • 参数:swoole PHP协程框架模块,第三方模块不支持通过lnmp.conf开启安装。

图像处理:

  • imageMagick安装卸载执行:./addons.sh {install|uninstall} imageMagick imageMagick路径:/usr/local/imagemagick/bin/。

解密:

  • IonCube安装执行:./addons.sh {install|uninstall} ionCube
  • Sodium加密库扩展模块安装/卸载执行:./addons.sh {install|uninstall} sodium,一般微信支付之类的需要使用,PHP 7.2以下版本不支持通过lnmp.conf开启安装。

其他常用脚本:

  • 可选1,多PHP版本安装执行:./install.sh mphp 可以安装多个PHP版本 ,只支持LNMP模式,lnmp vhost add时进行选择或使用时需要将nginx虚拟主机配置文件里的include enable-php.conf替换为 include enable-php5.6.conf 即可前面的5.6换成你刚才安装的PHP的大版本号5.* 或7.0之类的。
  • 可选2,数据库安装执行:./install.sh db 可以直接单独安装MySQL或MariaDB数据库。
  • 可选3,Nginx安装执行:./install.sh nginx可以直接单独安装Nginx。 以下工具在lnmp安装包tools目录下可拷贝到其他目录下运行
  • 可选4,执行:./reset_mysql_root_password.sh 可重置MySQL/MariaDB的root密码。
  • 可选5,执行:./check502.sh 可检测php-fpm是否挂掉,502报错时重启,配合crontab使用。
  • 可选6,执行:./cut_nginx_logs.sh 日志切割脚本。
  • 可选7,执行:./remove_disable_function.sh 运行此脚本可删掉禁用函数。

无人值守安装

无人值守命令生成工具:https://lnmp.org/auto.html

  • 设置如下环境变量即可完全无人值守安装
变量名 变量值含义
LNMP_Auto 启用无人值守自动安装
DBSelect 数据库版本序号
DB_Root_Password 数据库root密码(不可为空),不安装数据库时可不加该参数
InstallInnodb 是否安装Innodb引擎,y 或 n ,不安装数据库时可不加该参数
PHPSelect PHP版本序号
SelectMalloc 内存分配器版本序号
ApacheSelect Apache版本序号,仅LNMPA和LAMP模式需添加该参数
ServerAdmin 管理员邮箱,仅LNMPA和LAMP模式需添加该参数
RHELRepo (非必选)设为 local 时,RHEL使用本地源,不设置源为163 centos源
CheckMirror (非必选)安装时不检查下载镜像,方便无网络安装
Bin (非必选)MySQL 8.0使用二进制方式安装,y 或 n,默认使用二进制方式安装
  • 各程序版本对应序号
MySQL版本 对应序号 PHP版本 对应序号 内存分配器 对应序号 Apache版本 对应序号
MySQL 5.1 1 PHP 5.2 1 不安装 1 Apache 2.2 1
MySQL 5.5 2 PHP 5.3 2 Jemalloc 2 Apache 2.4 2
MySQL 5.6 3 PHP 5.4 3 TCMalloc 3
MySQL 5.7 4 PHP 5.5 4
MySQL 8.0 5 PHP 5.6 5
MariaDB 5.5 6 PHP 7.0 6
MariaDB 10.3 7 PHP 7.1 7
MariaDB 10.4 8 PHP 7.2 8
MariaDB 10.5 9 PHP 7.3 9
MariaDB 10.6 10 PHP 7.4 10
不安装数据库 0 PHP 8.0 11
PHP 8.1 12
  • 以LNMP模式,默认选项安装MySQL 5.5、MySQL root密码设置为lnmp.org、启用InnoDB、PHP 5.6、不安装内存分配器为例,先执行(建议先运行screen),再下载解压lnmp安装包:

wget http://soft.vpser.net/lnmp/lnmp1.9beta.tar.gz -cO lnmp1.9beta.tar.gz && tar zxf lnmp1.9beta.tar.gz && cd lnmp1.9

然后设置无人值守参数并安装:

LNMP_Auto="y" DBSelect="2" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ./install.sh lnmp

(如果缺失参数的话还是会有要求选择缺失选项的提示)。

卸载

  • 卸载LNMP、LNMPA或LAMP可执行:./uninstall.sh 按提示选择即可卸载。

状态管理

  • LNMP/LNMPA/LMAP状态管理:lnmp {start|stop|reload|restart|kill|status}
  • Nginx状态管理:lnmp nginx或/etc/init.d/nginx {start|stop|reload|restart}
  • MySQL状态管理:lnmp mysql或/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
  • MariaDB状态管理:lnmp mariadb或/etc/init.d/mariadb {start|stop|restart|reload|force-reload|status}
  • PHP-FPM状态管理:lnmp php-fpm或/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
  • PureFTPd状态管理:lnmp pureftpd或/etc/init.d/pureftpd {start|stop|restart|kill|status}
  • Apache状态管理:lnmp httpd或/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

虚拟主机管理

  • 添加:lnmp vhost add
  • 删除:lnmp vhost del
  • 列出:lnmp vhost list
  • 数据库管理:lnmp database {add|list|edit|del}
  • FTP用户管理:lnmp ftp {add|list|edit|del|show}
  • SSL添加:lnmp ssl add
  • 通配符/泛域名SSL添加:lnmp dnsssl {ali|cf|dp|he|gd|aws|namecheap|namesilo} 需依赖域名dns api

相关图形界面

LNMP相关目录文件

目录位置

  • Nginx:/usr/local/nginx/
  • MySQL:/usr/local/mysql/
  • MariaDB:/usr/local/mariadb/
  • PHP:/usr/local/php/
  • 多PHP目录:/usr/local/php5.6/ 版本号随安装版本不同而不同
  • PHP扩展插件配置文件目录:/usr/local/php/conf.d/
  • PHPMyAdmin:/home/wwwroot/default/phpmyadmin/
  • 默认虚拟主机网站目录:/home/wwwroot/default/
  • Nginx日志目录:/home/wwwlogs/

配置文件:

  • Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
  • MySQL/MariaDB配置文件:/etc/my.cnf
  • PHP配置文件:/usr/local/php/etc/php.ini
  • PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
  • PureFtpd配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
  • Apache配置文件:/usr/local/apache/conf/httpd.conf

lnmp.conf 配置文件参数说明

参数名称 参数介绍 例子
Download_Mirror 下载镜像 一般默认,如异常可修改下载镜像
Nginx_Modules_Options 添加Nginx模块或其他编译参数 --add-module=/第三方模块源码目录
PHP_Modules_Options 添加PHP模块或编译参数 --enable-exif 有些模块需提前安装好依赖包
MySQL_Data_Dir MySQL数据库目录设置 默认/usr/local/mysql/var
MariaDB_Data_Dir MariaDB数据库目录设置 默认/usr/local/mariadb/var
Default_Website_Dir 默认虚拟主机网站目录位置 默认/home/wwwroot/default
Enable_Nginx_Openssl Nginx是否使用新版openssl 默认 y,建议不修改,y是启用并开启到http2
Enable_PHP_Fileinfo 是否安装开启php的fileinfo模块 默认n,根据自己情况而定,安装启用的话改成 y
Enable_Nginx_Lua 是否为Nginx安装lua支持 默认n,安装lua可以使用一些基于lua的waf网站防火墙
Enable_Swap 是否添加SWAP 默认y,当内存不足时可提高编译安装成功概率
Enable_PHP_Exif 是否添加PHP exif模块 默认n,更改为y即安装
Enable_PHP_Fileinfo 是否添加PHP fileinfo模块 默认n,更改为y即安装,需1GB以上内存
Enable_PHP_Ldap 是否添加PHP ldap模块 默认n,更改为y即安装
Enable_PHP_Bz2 是否添加PHP bz2模块 默认n,更改为y即安装
Enable_PHP_Sodium 是否添加PHP sodium模块,PHP 7.2以下不支持lnmp.conf开启安装 默认n,更改为y即安装
Enable_PHP_Imap 是否添加PHP imap模块 默认n,更改为y即安装

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容