1. 环境准备:安装必要组件
在Linux上运行Laravel前,需确保系统已安装以下核心组件:
mbstring、openssl、pdo_mysql、tokenizer、xml等);public目录;2. 文件权限:保障安全与可访问性
Laravel的storage(日志、缓存、上传文件)和bootstrap/cache(框架缓存)目录需要Web服务器用户(如www-data)的读写权限,否则会导致“无法写入”错误。正确设置步骤如下:
sudo chown -R www-data:www-data /path/to/laravel;sudo find /path/to/laravel -type d -exec chmod 755 {} \; sudo find /path/to/laravel -type f -exec chmod 644 {} \; storage和bootstrap/cache目录添加组写权限:sudo chmod -R ug+rwx storage bootstrap/cache(确保Web服务器可写入)。3. .env配置:避免敏感信息泄露
.env.example复制生成.env文件:cp .env.example .env;.env中的关键配置:数据库连接(DB_CONNECTION、DB_HOST、DB_DATABASE、DB_USERNAME、DB_PASSWORD)、应用密钥(APP_KEY,需通过php artisan key:generate生成)、调试模式(生产环境务必设置为APP_DEBUG=false,避免暴露敏感错误信息)。4. Web服务器配置:正确指向public目录
server { listen 80; server_name yourdomain.com; root /path/to/laravel/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整 fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.(?!well-known).* { deny all; # 禁止访问隐藏文件(如.git) } } mod_rewrite模块(sudo a2enmod rewrite),并在虚拟主机配置中添加:<Directory /path/to/laravel/public> AllowOverride All Require all granted </Directory> 重启Web服务器(sudo systemctl restart nginx/apache2)使配置生效。5. 依赖与缓存:提升性能与稳定性
composer install(根据composer.json安装所有依赖);php artisan key:generate(用于加密会话、令牌等敏感数据);php artisan config:clear(清除配置缓存)、php artisan route:clear(清除路由缓存)、php artisan view:clear(清除视图缓存);php artisan config:cache(缓存配置)、php artisan route:cache(缓存路由)、php artisan view:cache(缓存视图),显著提升应用启动速度。6. SELinux(可选):解决权限冲突
若系统启用SELinux(如CentOS),需调整安全上下文以允许Web服务器访问项目文件:
httpd_sys_rw_content_t:sudo semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/laravel(/.*)?" sudo restorecon -Rv /path/to/laravel 此操作允许Web服务器读写项目中的所有文件,避免因SELinux导致的权限问题。