一.什么是LNMP?
介绍: LNMP架构就是:Linux系统下使用Nginx+MySQL+PHP这种网站服务器搭建的架构。 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。 这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统,同时还有基于阿帕奇(Apache)服务的LAMP架构,功能与LNMP架构相似但根据环境需求有所不同。
优点:
- 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
- 作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
- 作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
- Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。
下面是LNMP环境的搭建如果想要搭建LAMP环境可点击访问《CentOS 7 搭建LAMP环境》
二.LNMP搭建:
(1)首先确保linux可以正常访问外网(2)为了方便这里我直接关闭防火墙和selinux,后期可根据需求开启。
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
(3) 安装epel并更新系统。
添加epel源
[root@localhost ~]#yum install \
>https://repo.ius.io/ius-release-el7.rpm \
>https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
添加Webtatic源
[root@localhost ~]#rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
(4)安装Nginx。
[root@localhost ~]#yum -y install nginx //安装
[root@localhost ~]#nginx -v //查看
nginx version: nginx/1.20.1
(5)启动Nginx。
[root@localhost ~]#systemctl start nginx.service
(6). 下载并安装MySQL官方的Yum Repository。
[root@localhost ~]#rpm -e mariadb-libs --nodeps // 删除原先的数据库
[root@localhost ~]#yum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpm
[root@localhost ~]#yum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpm
[root@localhost ~]#yum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
[root@localhost ~]#yum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpm
[root@localhost ~]#yum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-server-5.7.35-1.el7.x86_64.rpm
输入mysql -V查看是否安装成功,如下所示则说明安装成功
(7). 查看MySQL初始密码,配置数据库相关参数:
[root@localhost ~]#systemctl start mysqld.service //开启数据库服务
[root@localhost ~]#grep "password" /var/log/mysqld.log #Xx+Q)4AWBUp)这个是我的初始密码
2022-01-21T02:32:11.011259Z 1 [Note] A temporary password is generated for root@localhost: Xx+Q)4AWBUp)
输入上面的随机密码,登陆数据库
[root@localhost ~]#mysql -uroot -p
password:
配置数据库root密码(注意每条命令的分号;)
mysql> set global validate_password_policy=0; #修改密码安全策略为低
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; //这里我设的密码为12345678
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678'; //执行以下命令,授予root用户远权限
mysql>exit //退出
重启数据库:
[root@localhost ~]#systemctl restart mysqld.service
(8). 安装相关的PHP环境:
[root@localhost ~]#yum -y install php70w-devel php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-pdo.x86_64 php70w-mysqlnd php70w-fpm php70w-opcache php70w-pecl-redis php70w-pecl-mongodb
(推荐多执行一遍以上指令)
[root@localhost ~]#php -v //查看,回馈一下信息
PHP 7.0.33 (cli) (built: Dec 6 2018 22:30:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies
(9)配置Nginx
- 备份Nginx配置文件
[root@localhost ~]#cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
- 打开Nginx配置文件 需要安装vim或使用vi
[root@localhost ~]#vim /etc/nginx/nginx.conf
找到server大括号内,按i进入编辑模式
//添加下面信息
location / {
index index.php index.html index.htm;
}
//添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求。
location ~ .php$ {
root /usr/share/nginx/html; #将/usr/share/nginx/html替换为您的网站根目录,本文使用/usr/share/nginx/html作为网站根目录。
fastcgi_pass 127.0.0.1:9000; #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理。
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; #Nginx调用fastcgi接口处理PHP请求。
}
添加或修改配置信息后,文件内容如下图所示:
(10)配置PHP并测试
[root@localhost ~]#echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/phpinfo.php
[root@localhost ~]#systemctl restart nginx //重启nginx
[root@localhost ~]#systemctl start php-fpm //启动PHP-FPM
[root@localhost ~]#systemctl enable php-fpm //设置PHP-FPM开机自启动
在浏览器的地址栏输入http://<ECS实例公网IP地址>/phpinfo.php进行访问。
访问结果如下图所示,表示LNMP环境部署成功:
(11)下载配置数据库管理工具phpMyAdmin
创建phpMyAdmin数据存放目录,下载phpMyAdmin,这里需要wget工具,没有可点击安装
[root@localhost ~]#mkdir -p /usr/share/nginx/html/phpmyadmin
[root@localhost ~]#wget --no-check-certificate https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip
[root@localhost ~]#ls //查看下载的安装包
解压配置phpMyAdmin
[root@localhost ~]#yum install -y unzip //安装unzip解压工具
[root@localhost ~]#unzip phpMyAdmin-4.0.10.20-all-languages.zip //解压刚刚下载的zip
[root@localhost ~]#mv phpMyAdmin-4.0.10.20-all-languages/* /usr/share/nginx/html/phpmyadmin //移动phpMyAdmin文件到数据存放目录
在地浏览器的址栏中,输入http:// <ECS实例公网IP地址>/phpmyadmin,访问phpMyAdmin返回页面如下图所示,说明phpMyAdmin安装成功。
输入数据库的账号密码登陆进去后如图所示
到这里说明LNMP环境搭建完成了,后期想要搭建论坛、tomcat环境部署、搭建zabbix监控等等,都可以在LNMP的环境上搭建。