温馨提示×

debian装laravel要注意什么

小樊
36
2026-09-08 06:35:24
栏目: 智能运维

在 Debian 上安装和运行 Laravel,有几个系统层面Laravel 自身需要注意的点。下面按“最容易踩坑”的顺序给你梳理。


一、系统与版本选择

1. Debian 版本

  • 推荐 Debian 11 (Bullseye)Debian 12 (Bookworm)
  • 老版本(如 Debian 9/10)可能 PHP 版本过低

2. PHP 版本(非常重要)

Laravel 对 PHP 版本要求较新:

Laravel 版本 最低 PHP
Laravel 10 PHP 8.1
Laravel 11 PHP 8.2

Debian 默认源可能只有 PHP 7.4,必须加 sury 源

apt install -y lsb-release ca-certificates apt-transport-https
curl -sSL https://packages.sury.org/php/README.txt
# 按官方说明添加 sury 源
apt update
apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-gd php8.2-bcmath

二、必须安装的 PHP 扩展

Laravel 常用依赖:

php8.2-mbstring
php8.2-xml
php8.2-bcmath
php8.2-curl
php8.2-zip
php8.2-gd
php8.2-mysql / php8.2-pgsql

否则 composer install 或运行时会报错。


三、Composer 安装

不要用 apt 的旧版 composer:

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

验证:

composer -V

四、权限问题(Debian 最常见坑)

Laravel 需要写:

  • storage
  • bootstrap/cache

正确做法(不推荐 777):

chown -R www-data:www-data /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 775 storage bootstrap/cache

如果你用 CLI 运行:

sudo -u www-data composer install

五、Web 服务器选择

Nginx(推荐)

示例配置要点:

root /var/www/laravel/public;

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;
}

注意:

  • 必须指向 public
  • 重启:systemctl restart nginx php8.2-fpm

Apache

  • 必须开启 mod_rewrite
  • 使用 .htaccess

六、环境变量与缓存

cp .env.example .env
php artisan key:generate

生产环境:

php artisan config:cache
php artisan route:cache
php artisan view:cache

⚠️ 改 .env 后一定要:

php artisan config:clear

七、常见坑总结

  1. PHP 版本太低(最常见)
  2. 缺失扩展(mbstring / xml)
  3. 权限错误(storage 不可写)
  4. Nginx root 指错目录
  5. composer 内存不足
    php -d memory_limit=-1 composer install
    
  6. SELinux(Debian 默认没有,但容器里要注意)

八、推荐最小安装流程

apt update
# 安装 PHP + Nginx + Composer
# 建项目
composer create-project laravel/laravel example-app
# 配置 Nginx
# 设置权限
# php artisan migrate

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

  • Debian 具体版本
  • 用 Nginx 还是 Apache
  • 本地 / 服务器 / Docker

我可以直接给你一套可复制的配置文件

0