温馨提示×

centos lnmp如何部署网站

小樊
34
2025-11-22 02:27:28
栏目: 云计算

CentOS 7 上部署网站的 LNMP 实操指南

一 环境准备与版本选择

  • 系统建议:CentOS 7.x(本文以 CentOS 7.6 为例),具备 rootsudo 权限,已连接公网。
  • 组件版本示例:Nginx 1.27.0MariaDB 10.11PHP 8.3.8(亦可选择 MySQL 8.x;PHP 版本需与程序兼容)。
  • 端口与防火墙:开放 TCP 80/443;云服务器需配置安全组入方向放行 80/443。
  • 两种路径:手动搭建(可控性高)与一键安装包(效率高,适合快速交付)。

二 手动搭建 LNMP 环境

  • 安装 Nginx
    • 创建仓库:vi /etc/yum.repos.d/nginx.repo,写入
      • [nginx] name=nginx repo baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1
    • 安装与启动:yum install -y nginx;systemctl start nginx;systemctl enable nginx
  • 安装 MariaDB
    • 安装:yum install -y mariadb-server mariadb
    • 启动与初始化:systemctl start mariadb;systemctl enable mariadb;执行 mysql_secure_installation 设置 root 密码与基础安全项。
  • 安装 PHP 与 PHP-FPM
    • 安装:yum install -y php php-fpm php-mysqlnd(或 php-mysql);systemctl start php-fpm;systemctl enable php-fpm
  • 配置 Nginx 与 PHP 联动(两种方式二选一)
    • 方式 A(TCP 端口):在 /etc/nginx/conf.d/default.conf 的 server 块中加入
      • 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; }
    • 方式 B(Unix Socket,常见路径):fastcgi_pass unix:/run/php-fpm/www.sock; 其余参数同上。
    • 检查并重载:nginx -t && systemctl reload nginx
  • 防火墙放行
    • firewall-cmd --permanent --zone=public --add-service=http
    • firewall-cmd --permanent --zone=public --add-service=https
    • firewall-cmd --reload。

三 部署网站与虚拟主机

  • 创建站点目录与示例页
    • mkdir -p /var/www/example.com/html
    • echo “” > /var/www/example.com/html/index.php
    • chown -R nginx:nginx /var/www/example.com && chmod -R 755 /var/www/example.com
  • 新建虚拟主机配置
    • vi /etc/nginx/conf.d/example.com.conf
    • 示例:
      • server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php-fpm/www.sock; } location ~ /.ht { deny all; } }
  • 生效与验证
    • nginx -t && systemctl reload nginx
    • 浏览器访问:http://example.com 或服务器 IP 查看 phpinfo 页面。
  • DNS 与证书
    • 在域名解析商将 example.comwww.example.com 指向服务器 IP
    • 启用 HTTPS(Let’s Encrypt):yum install -y certbot python2-certbot-nginx;certbot --nginx -d example.com -d www.example.com

四 数据库与程序上线

  • 创建数据库与用户
    • mysql -u root -p
    • CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘your_user’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
    • GRANT ALL PRIVILEGES ON your_db.* TO ‘your_user’@‘localhost’;
    • FLUSH PRIVILEGES;
  • 导入数据
    • mysql -u your_user -p your_db < your_data.sql
  • 程序配置
    • 将程序代码上传至站点根目录(如 /var/www/example.com/html)。
    • 编辑应用配置(如 .envconfig.php),填入数据库名、用户、密码、主机(通常为 localhost)。
    • 设置目录权限(示例):chown -R nginx:nginx /var/www/example.com;对需要写入的目录(如 uploadscachelogs)设置 755/775 视属主而定。
    • 重启服务:systemctl reload nginx;必要时重启 php-fpm

五 一键安装与常用管理

  • 使用 LNMP 一键安装包(适合快速交付)
    • 安装前建议:screen -S lnmp
    • 下载与安装:wget http://soft.lnmp.com/lnmp/lnmp2.2.tar.gz -O lnmp2.2.tar.gz && tar zxf lnmp2.2.tar.gz && cd lnmp2.2 && ./install.sh lnmp
    • 版本支持:提供 PHP 8.4.5MySQL 8.4 等新版本选项,支持多 PHP 版本、自动生成 Let’s Encrypt 证书、虚拟主机与数据库管理脚本等。
  • 常用管理命令
    • 环境控制:lnmp {start|stop|reload|restart|status}
    • 组件控制:lnmp {nginx|mysql|mariadb|php-fpm} {start|stop|reload|restart|status}
    • 虚拟主机:lnmp vhost {add|list|del}
    • 数据库:lnmp database {add|list|edit|del}
    • SSL:lnmp ssl add(为已存在虚拟主机添加证书)。

0