Linux上解决 Laravel 兼容性问题的系统化方案
一 环境基线对齐
php -v、php -m。若扩展缺失,使用系统包管理器安装(Debian/Ubuntu 用 apt,CentOS/RHEL/AlmaLinux/Rocky 用 yum/dnf),或按需编译扩展。export PATH="$HOME/.composer/vendor/bin:$PATH"),确保全局可用。二 依赖与扩展问题处理
composer install;若遇到内存不足,可临时提升:php -d memory_limit=256M composer install。php.ini 中启用(extension=redis.so),随后重启 PHP-FPM。composer update、composer diagnose,或在 composer.json 中固定冲突包的兼容版本,必要时采用 --prefer-dist 加速与稳定安装。三 权限与目录结构
sudo chown -R www-data:www-data /path/to/laravelsudo chmod -R 755 /path/to/laravel/storage /path/to/laravel/bootstrap/cachesudo setenforce 0;生产环境不建议长期关闭,应配置正确的 SELinux 策略。四 Web 服务器与 PHP-FPM 配置
root /path/to/laravel/public;try_files $uri $uri/ /index.php?$query_string;fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;(路径以实际 FPM 配置为准)fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;journalctl -xeu nginx 定位问题。sudo systemctl restart nginx php-fpm,并确认站点根目录与 index.php 入口正确。五 数据库、日志与快速排查
.env 中将 DB_HOST=localhost 改为 DB_HOST=127.0.0.1 强制走 TCP,或显式设置 DB_SOCKET 为实际套接字路径(如 /tmp/mysql.sock),并在 config/database.php 的 mysql 配置中加入 'unix_socket' => env('DB_SOCKET'),。storage/logs/laravel.log;