在CentOS上搭建LNMP环境是一个常见的任务,它涉及到安装和配置Linux、Nginx、MySQL/MariaDB以及PHP,下面将详细介绍如何在CentOS 7.x系统上手动搭建LNMP环境,并提供一个清晰的步骤指南。
实验准备
1.1 网络准备
确保你的CentOS实例能够正常连接互联网,并且防火墙与SElinux已关闭。
1.2 备份YUM源
为了避免因更换YUM源而导致的问题,建议先备份原有的YUM源:
cd /etc/yum.repos.d/ mkdir back mv * back/
1.3 下载新的YUM源
使用阿里云或网易的镜像源来提高下载速度:
wget http://mirrors.aliyun.com/repo/Centos7.repo O /etc/yum.repos.d/CentOSBase.repo wget http://mirrors.aliyun.com/repo/epel7.repo O /etc/yum.repos.d/epel.repo yum clean all yum makecache
1.4 安装编译工具和依赖包
为了后续的软件安装,需要先安装一些编译工具和依赖包:
yum y install gcc gccc++ pcredevel openssl openssldevel zlibdevel ncursesdevel cmake bison libxml2devel libpngdevel
安装Nginx
2.1 创建Nginx YUM源文件
在/etc/yum.repos.d/
目录下创建nginx.repo文件:
vi /etc/yum.repos.d/nginx.repo
添加以下内容:
[nginx] name=nginx repo baseurl=https://nginx.org/packages/mainline/centos/7/\$basearch/\$architecture/ gpgcheck=0 enabled=1
保存并退出(按Esc键,输入:wq)。
2.2 安装Nginx
执行以下命令安装Nginx:
yum install y nginx
2.3 配置Nginx
编辑Nginx的主配置文件nginx.conf
:
vim /etc/nginx/nginx.conf
找到server {...}
块,修改如下内容以取消对IPv6地址的监听,并配置Nginx与PHP的联动:
server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.php index.html index.htm; error_page 404 /404.html; location = /50x.html { root /usr/share/nginx/html; } 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; } }
保存并退出。
2.4 启动Nginx并设置开机自启
systemctl start nginx systemctl enable nginx
访问服务器的公网IP,确认Nginx服务是否正常运行,显示“Welcome to Nginx!”页面则表示成功。
安装数据库(以MariaDB为例)
3.1 检查是否已安装MariaDB
rpm qa | grep i mariadb
如果返回结果为空,则继续下一步;否则,执行以下命令移除已安装的MariaDB:
yum y remove MariaDB
3.2 创建MariaDB YUM源文件
vi /etc/yum.repos.d/MariaDB.repo
添加以下内容:
MariaDB 10.4 CentOS repository list created 20191105 11:56 UTC https://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = https://mirrors.cloud.tencent.com/mariadb/yum/10.4/centos7amd64/ gpgkey=https://mirrors.cloud.tencent.com/mariadb/yum/RPMGPGKEYMariaDB gpgcheck=1
保存并退出。
3.3 安装MariaDB
yum y install MariaDBserver MariaDBclient
3.4 启动MariaDB并设置开机自启
systemctl start mariadb systemctl enable mariadb
3.5 验证安装是否成功
mysql V
返回类似如下结果则表示安装成功:
mysql Ver 15.1 Distrib 10.4.8MariaDB, MariaDB Server
3.6 执行安全性操作并设置密码
mysql_secure_installation
按照提示完成配置,包括设置root用户密码、移除匿名用户、禁止远程root登录等。
安装PHP
4.1 更新YUM源并安装PHP相关软件包
rpm Uvh https://mirror.webtatic.com/yum/el7/webtaticrelease.rpm yum y install php72w php72wcli php72wcommon php72wmbstring php72wopcache php72wxml php72wfpm php72wmysqlnd php72wldap php72wpecl php72wpear php72wpdo php72wsoap php72wgd php72wbcmath php72wjson php72wintl php72wtidy html2ps1.4.21.fc21.noarch.rpm
4.2 启动PHPFPM并设置开机自启
systemctl start phpfpm systemctl enable phpfpm
4.3 测试PHP是否正常工作
在/usr/share/nginx/html/
目录下创建一个info.php
文件:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
然后在浏览器中访问http://<your_server_ip>/info.php,如果能看到PHP信息页面,则表示PHP安装成功。
环境测试与优化
通过上述步骤,你已经成功地在CentOS上搭建了一个基本的LNMP环境,接下来可以进行一些性能优化和安全设置,
调整Nginx和PHP的配置参数以提高性能。
启用MariaDB的查询缓存以提高数据库响应速度。
配置防火墙规则以限制不必要的访问。
定期备份数据以防止数据丢失。
6. LNMP环境搭建常见问题解答(FAQs)
Q1: Nginx无法启动怎么办?
A1: 首先检查Nginx配置文件是否有语法错误:nginx t
,如果有错误,根据提示修正后重试,查看日志文件/var/log/nginx/error.log
获取更多信息。
Q2: MariaDB安装失败或启动失败怎么办?
A2: 确保YUM源配置正确,并且网络连接正常,查看MariaDB的错误日志/var/log/mariadb/mariadb.err
获取更多信息,如果问题依旧存在,可以尝试重新安装或更换YUM源。Q3: PHP页面显示空白怎么办?A3: 确保PHPFPM服务已经启动,并且Nginx与PHP之间的配置正确无误,查看PHP错误日志/var/log/phpfpm/wwwerror.log
获取更多信息,如果问题依旧存在,可以尝试重启Nginx和PHPFPM服务。Q4: 如何更改PHP版本?A4: 可以通过安装不同版本的PHP模块来实现,要切换到PHP 7.3,可以安装php73w
及其相关模块,并调整Nginx配置文件中的fastcgi_pass路径。Q5: 如何提高LNMP环境的安全性?A5: 除了上述提到的基本安全设置外,还可以考虑以下几点:禁用不必要的模块和服务。使用强密码策略。定期更新软件包以修复已知漏洞。配置防火墙规则以限制访问范围。启用HTTPS协议以提高数据传输的安全性。