下面给你一套在 Debian 上配置 Laravel 运行环境的常用做法(以 Debian 11/12 + Nginx + PHP + MySQL 为例,适合生产或开发)。
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
以 PHP 8.2 为例:
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-gd php8.2-bcmath -y
检查:
php -v
sudo apt install mysql-server -y
sudo mysql_secure_installation
创建数据库:
sudo mysql -u root -p
CREATE DATABASE laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
EXIT;
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
cd /var/www
composer create-project laravel/laravel example-app
设置权限:
sudo chown -R www-data:www-data /var/www/example-app
sudo chmod -R 755 /var/www/example-app/storage
新建配置文件:
sudo nano /etc/nginx/sites-available/example-app
内容示例:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/example-app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/example-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
cd /var/www/example-app
cp .env.example .env
php artisan key:generate
编辑数据库信息:
nano .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=password
php artisan migrate
sudo apt install redis-serverphp artisan queue:worksudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx
✅ 500 错误 → 看 storage/logs/laravel.log
✅ 权限问题 → www-data 用户
✅ PHP 版本不对 → 检查 php-fpm socket
如果你告诉我:
我可以给你更精准的配置方案。