CentOS LNMP环境搭建指南
LNMP是Linux、Nginx、MySQL和PHP的简称,是一种常见的网站服务器架构,它适用于运行大型、高并发的网站应用,如电子商务网站、社交网络和内容管理系统等,本文将详细介绍如何在CentOS系统上手动部署LNMP环境。
环境要求
1、实例规格:内存建议不小于4 GiB。
2、公网IP地址:实例应分配公网IP地址或绑定弹性公网IP(EIP)。
3、操作系统:推荐使用Alibaba Cloud Linux 3/2、CentOS 7/8。
4、安全组规则:放行22、80、443端口,必要时可放行其他应用所需端口。
5、软件版本:
Nginx:1.20.1
MySQL:8.0.39
PHP:8.0.30
步骤详解
1、关闭防火墙和SELinux:
临时关闭防火墙:sudo systemctl stop firewalld
永久关闭防火墙:sudo systemctl disable firewalld
查看SELinux状态:sudo getenforce
临时关闭SELinux:sudo setenforce 0
永久关闭SELinux:编辑/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
,并重启系统。
2、安装Nginx:
创建Nginx repo文件:vi /etc/yum.repos.d/nginx.repo
,添加以下内容:
```plaintext
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
```
安装Nginx:sudo yum install y nginx
启动Nginx并设置为开机自启动:sudo systemctl start nginx && sudo systemctl enable nginx
3、安装并配置MySQL:
安装MySQL依赖包:sudo yum install compatopenssl10
更新YUM源并安装MySQL:sudo rpm Uvh https://dev.mysql.com/get/mysql80communityreleaseel711.noarch.rpm && sudo yum install y mysqlcommunityserver
启动MySQL并设置为开机自启动:sudo systemctl start mysqld && sudo systemctl enable mysqld && sudo systemctl daemonreload
获取MySQL初始密码并设置新密码:sudo grep 'temporary password' /var/log/mysqld.log
,然后运行sudo mysql_secure_installation
进行安全配置。
4、安装PHP:
更新YUM源并安装EPEL release:sudo yum install y epelrelease https://mirrors.cloud.tencent.com/epel/epelreleaselatest7.noarch.rpm
安装Remi repo并启用:sudo yum install y https://rpms.remirepo.net/enterprise/remirelease7.rpm
,然后运行sudo yumconfigmanager enable remiphp80
安装PHP及相关模块:sudo yum install y php phpfpm phpcommon phpopcache phpmysqlnd phpxml phpjson
配置PHPFPM:编辑/etc/phpfpm.d/www.conf
文件,修改用户和组为nginx
,并设置监听端口为9000或Unix套接字。
启动PHPFPM并设置为开机自启动:sudo systemctl start phpfpm && sudo systemctl enable phpfpm
5、配置Nginx支持PHP:
编辑Nginx配置文件:vim /etc/nginx/conf.d/default.conf
,在server块中添加以下内容:
```plaintext
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
```
重启Nginx:sudo systemctl restart nginx
6、测试环境:
创建测试PHP文件:echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
访问http://your_server_ip/info.php,如果看到PHP信息页面,则表示LNMP环境搭建成功。
FAQs
1、为什么需要关闭防火墙和SELinux?
关闭防火墙和SELinux是为了简化部署过程,避免因权限问题导致的安装失败,在生产环境中,建议根据实际需求合理配置防火墙和SELinux规则,以增强系统安全性。
2、如何检查LNMP环境是否搭建成功?
你可以通过访问http://your_server_ip/info.php来查看PHP信息页面,确认PHP是否正常工作,可以检查Nginx和MySQL的运行状态,确保它们都已启动并正常运行。