在 CentOS 7 上部署 LNMP 的完整步骤
一 环境准备与防火墙
yum update -y && yum install -y epel-release wget curlfirewall-cmd --permanent --add-service=http --add-service=https && firewall-cmd --reloadsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
说明:CentOS 7 默认使用 firewalld;放行 80/443 端口可确保外网访问 Nginx。二 安装与启动 Nginx
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum install -y nginx && systemctl start nginx && systemctl enable nginxcurl -I http://127.0.0.1 应返回 200/301 等成功状态码
说明:通过官方 YUM 源安装更易维护;启动后默认根目录通常为 /usr/share/nginx/html。三 安装与初始化数据库(MySQL 或 MariaDB)
yum install -y mariadb-server mariadbsystemctl start mariadb && systemctl enable mariadbmysql_secure_installation(设置 root 密码、删除匿名用户、禁止 root 远程登录、删除测试库)wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmrpm -Uvh mysql80-community-release-el7-3.noarch.rpmyum install -y mysql-community-serversystemctl start mysqld && systemctl enable mysqldgrep 'temporary password' /var/log/mysqld.logmysql_secure_installation 按提示修改密码并加固
说明:MariaDB 与 MySQL 命令兼容度高;MySQL 官方仓库安装后需使用临时密码完成初始化。四 安装与配置 PHP 及与 Nginx 联动
yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmathsystemctl start php-fpm && systemctl enable php-fpm/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000index index.php index.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;
}
listen = /var/run/php-fpm/php-fpm.sockfastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;nginx -t && systemctl reload nginx && systemctl reload php-fpm
说明:PHP-FPM 负责解析 PHP,Nginx 通过 FastCGI 转发动态请求;两种通信方式任选其一,保持两端配置一致即可。五 部署项目与验证
/var/www/your_project(示例将代码放到 /var/www/html)chown -R nginx:nginx /var/www && chmod -R 755 /var/wwwecho "<?php phpinfo(); ?>" > /var/www/html/info.phphttp://服务器IP/info.php 应看到 PHP 信息页/var/www/html/test_db.php<?php
$link = mysqli_connect('localhost','root','【你的数据库root密码】','【】');
if (!$link) die('FAILD: '.mysqli_connect_error());
echo 'OK! Connected to MySQL.';
mysqli_close($link);
?>
http://服务器IP/test_db.php 显示连接成功mysql -u root -p 数据库名 < dump.sql)chown -R nginx:nginx /var/www/your_project/uploads)
说明:完成 PHP 与数据库连接测试后,即可按应用需求配置虚拟主机与目录权限并上线。