温馨提示×

ubuntu php怎样部署项目

小樊
56
2026-09-22 15:27:47
栏目: 编程语言

在 Ubuntu 上部署 PHP 项目,常见方式有 LNMP(Linux + Nginx + MySQL + PHP) 或 LAMP(Linux + Apache + MySQL + PHP)。下面我给你一个最常用、最实用的 Nginx + PHP 部署流程(适合 Laravel / ThinkPHP / 原生 PHP)。


一、更新系统

sudo apt update
sudo apt upgrade -y

二、安装 Nginx

sudo apt install nginx -y

测试:

sudo systemctl status nginx

浏览器访问服务器 IP,看到 Nginx 欢迎页说明成功。


三、安装 PHP

以 PHP 8.1 为例(可按需改版本):

sudo apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-mbstring php8.1-xml php8.1-curl -y

查看 PHP 版本:

php -v

四、配置 Nginx 支持 PHP

编辑站点配置:

sudo nano /etc/nginx/sites-available/your_project

示例配置(重点看 PHP 部分):

server {
    listen 80;
    server_name yourdomain.com;  # 或服务器IP
    root /var/www/your_project/public;  # Laravel用public,原生PHP用根目录

    index index.php index.html;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }

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

启用站点:

sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、上传项目代码

sudo mkdir -p /var/www/your_project

可用方式:

  • scp
  • git clone
  • FTP

示例:

cd /var/www/your_project
git clone 你的项目地址 .

设置权限:

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 /var/www/your_project

六、安装并配置数据库(MySQL)

sudo apt install mysql-server -y
sudo mysql_secure_installation

创建数据库:

CREATE DATABASE db_name;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

七、配置项目(以 Laravel 为例)

cp .env.example .env
nano .env

修改数据库信息。

composer install
php artisan key:generate
php artisan migrate

八、防火墙(可选)

sudo ufw allow 80
sudo ufw allow 443

九、访问项目

浏览器访问:

http://服务器IP

十、常见问题

✅ 502 错误
→ 检查 php-fpm 是否在运行

systemctl status php8.1-fpm

✅ 权限问题

sudo chown -R www-data:www-data 项目目录

✅ 想用 Apache
→ 可装 apache2 + libapache2-mod-php


如果你告诉我:

  • PHP 框架(Laravel / ThinkPHP / 原生)
  • Ubuntu 版本
  • 是否用域名 / HTTPS

我可以给你更精确的部署方案。

0 踩