温馨提示×

LNMP环境如何部署PHP项目

小樊
45
2026-07-10 23:02:23
栏目: 编程语言

LNMP(Linux + Nginx + MySQL + PHP) 环境下部署 PHP 项目,一般流程如下。下面以 CentOS / Rocky / Alma / Ubuntu 通用思路为主,并给出常见示例。


一、环境准备

1. 安装 LNMP(如已安装可跳过)

Ubuntu / Debian

sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-xml php-mbstring php-zip -y

CentOS / Rocky / Alma

yum install epel-release -y
yum install nginx mariadb mariadb-server php php-fpm php-mysql php-json php-gd php-mbstring php-xml php-curl -y

启动服务:

systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx mariadb php-fpm

二、配置 MySQL 数据库

mysql -uroot -p

创建数据库和用户:

CREATE DATABASE demo_db DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'demo_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON demo_db.* TO 'demo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

三、上传 PHP 项目

1. 项目目录建议

/var/www/demo

2. 上传或拉取代码

cd /var/www
git clone https://github.com/your/project.git demo

或上传压缩包:

unzip project.zip -d /var/www/demo

3. 设置权限

chown -R nginx:nginx /var/www/demo
chmod -R 755 /var/www/demo

Ubuntu 用户组可能是 www-data


四、配置 Nginx 虚拟主机

示例 Nginx 配置

server {
    listen 80;
    server_name demo.com www.demo.com;

    root /var/www/demo/public;  # Laravel/ThinkPHP 指向 public
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/www.sock; # Ubuntu
        # fastcgi_pass 127.0.0.1:9000;              # CentOS
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

保存后:

nginx -t
systemctl reload nginx

五、配置 PHP

编辑 php-fpm 配置

vim /etc/php-fpm.d/www.conf

确认:

user = nginx
group = nginx
listen = /run/php-fpm/www.sock

重启:

systemctl restart php-fpm

六、项目配置(示例)

1. 配置数据库

.env

DB_HOST=127.0.0.1
DB_DATABASE=demo_db
DB_USERNAME=demo_user
DB_PASSWORD=password

2. 安装依赖(如 Composer)

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

cd /var/www/demo
composer install

七、常见 PHP 框架部署

✅ Laravel

php artisan key:generate
php artisan migrate
chmod -R 777 storage bootstrap/cache

✅ ThinkPHP

  • 确保 public 为入口目录
  • 配置 config/database.php

八、常见问题排查

1. 页面显示 404

  • Nginx root 路径错误
  • PHP 文件未被解析

2. 502 Bad Gateway

systemctl status php-fpm

检查 sock 路径是否一致

3. 权限问题

chown -R nginx:nginx /var/www/demo

九、安全与优化建议

  • 使用 HTTPS(Let’s Encrypt)
  • 关闭 PHP 错误显示
  • 限制 PHP 可访问目录(open_basedir)
  • 设置 Nginx 防盗链、限流

如果你愿意,可以告诉我:

  • ✅ 使用的 Linux 发行版
  • ✅ PHP 版本
  • ✅ 项目类型(原生 / Laravel / ThinkPHP)

我可以给你 完全定制化的部署方案

0