在Linux上运行Laravel需要注意什么
导读:1. 环境准备:安装必要组件 在Linux上运行Laravel前,需确保系统已安装以下核心组件: PHP:Laravel 8.x及以上版本要求PHP 7.3或更高版本,需安装常用扩展(如mbstring、openssl、pdo_mysql...
1. 环境准备:安装必要组件
在Linux上运行Laravel前,需确保系统已安装以下核心组件:
- PHP:Laravel 8.x及以上版本要求PHP 7.3或更高版本,需安装常用扩展(如
mbstring
、openssl
、pdo_mysql
、tokenizer
、xml
等); - Composer:PHP依赖管理工具,用于安装Laravel框架及项目依赖;
- Web服务器:推荐使用Nginx(高性能)或Apache(兼容性好),需配置虚拟主机指向项目
public
目录; - 数据库:Laravel支持MySQL、PostgreSQL等,需安装对应数据库服务并创建数据库;
- Node.js & NPM:用于编译前端资源(如CSS、JavaScript),Laravel Mix依赖这些工具。
2. 文件权限:保障安全与可访问性
Laravel的storage
(日志、缓存、上传文件)和bootstrap/cache
(框架缓存)目录需要Web服务器用户(如www-data
)的读写权限,否则会导致“无法写入”错误。正确设置步骤如下:
- 将项目目录所有者更改为Web服务器用户:
sudo chown -R www-data:www-data /path/to/laravel
; - 递归设置目录权限为755(允许所有者读写执行,其他用户读执行)、文件权限为644(允许所有者读写,其他用户只读):
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目录
- Nginx配置示例:
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) } }
- Apache配置示例:
需启用mod_rewrite
模块(sudo a2enmod rewrite
),并在虚拟主机配置中添加:
重启Web服务器(< Directory /path/to/laravel/public> AllowOverride All Require all granted < /Directory>
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服务器访问项目文件:
- 设置项目目录的SELinux上下文为
httpd_sys_rw_content_t
:
此操作允许Web服务器读写项目中的所有文件,避免因SELinux导致的权限问题。sudo semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/laravel(/.*)?" sudo restorecon -Rv /path/to/laravel
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 在Linux上运行Laravel需要注意什么
本文地址: https://pptw.com/jishu/719701.html