下面按最常见场景给你讲:
在 Debian 上使用 Nginx 反向代理 / 托管 Laravel 项目(PHP-FPM 方式,生产推荐)。
sudo apt update
sudo apt install nginx php php-fpm php-mysql php-mbstring php-xml php-curl unzip git -y
查看 PHP 版本(示例 8.2):
php -v
ls /run/php/
# 通常看到 php8.2-fpm.sock
假设项目在:
/var/www/laravel
cd /var/www
git clone 你的laravel项目 laravel
cd laravel
composer install
cp .env.example .env
php artisan key:generate
设置权限:
sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 755 /var/www/laravel
sudo nano /etc/nginx/sites-available/laravel
server {
listen 80;
server_name example.com; # 或服务器IP
root /var/www/laravel/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
⚠️ 注意:
php8.2-fpm.sock 按你实际 PHP 版本改root 必须指向 publicsudo ln -s /etc/ngin/sites-available/laravel /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
如果你的 Laravel 跑在:
127.0.0.1:8000server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
systemctl status php8.2-fpm
try_files 没写sudo chown -R www-data:www-data storage bootstrap/cache
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
如果你愿意,可以告诉我:
我可以直接给你一份完整可用的配置。