centos中laravel部署有哪些注意事项
导读:CentOS中Laravel部署注意事项 1. 系统与软件版本兼容性 CentOS版本:需使用CentOS 7及以上版本(确保系统内核及软件包支持Laravel的现代依赖)。 PHP版本:Laravel 10及以上要求PHP 8.1+,L...
CentOS中Laravel部署注意事项
1. 系统与软件版本兼容性
- CentOS版本:需使用CentOS 7及以上版本(确保系统内核及软件包支持Laravel的现代依赖)。
- PHP版本:Laravel 10及以上要求PHP 8.1+,Laravel 9及以下需PHP 7.3+;需安装BCMath、Ctype、Fileinfo、JSON、Mbstring、OpenSSL、PDO、Tokenizer、XML等核心扩展(可通过
yum或Remi仓库安装)。 - Web服务器:推荐使用Nginx(高性能)或Apache(兼容性好),需配置正确指向Laravel的
public目录。 - 数据库:支持MySQL(5.7+)/MariaDB(10.2+)/PostgreSQL(10+),需提前创建数据库及用户并授权。
- 其他工具:需安装Composer(PHP依赖管理)、Git(版本控制,可选)、Node.js+NPM(若项目使用前端构建工具如Webpack,可选)。
2. 文件与目录权限设置
- 所有者调整:将Laravel项目目录所有者设为Web服务器用户(Nginx默认为
nginx,Apache默认为apache),命令示例:sudo chown -R nginx:nginx /path/to/your/laravel-project # 替换为实际项目路径 - 权限配置:
- 普通文件:设置为
644(所有者可读写,组及其他用户只读); - 目录:设置为
755(所有者可读写执行,组及其他用户可读执行); - 特殊目录(
storage、bootstrap/cache):需赋予Web服务器写权限,设置为775(避免权限过高导致安全风险),命令示例:sudo find /path/to/your/laravel-project -type d -exec chmod 755 { } \; # 所有目录设为755 sudo find /path/to/your/laravel-project -type f -exec chmod 644 { } \; # 所有文件设为644 sudo chmod -R 775 /path/to/your/laravel-project/storage # 存储目录设为775 sudo chmod -R 775 /path/to/your/laravel-project/bootstrap/cache # 缓存目录设为775
- 普通文件:设置为
- SELinux处理:若系统启用SELinux(默认开启),需调整文件上下文或临时禁用:
- 临时禁用:
sudo setenforce 0(重启后恢复); - 永久禁用:编辑
/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled; - 或保留SELinux并设置正确上下文:
sudo chcon -R -t httpd_sys_content_t /path/to/your/laravel-project。
- 临时禁用:
3. Web服务器配置要点
-
Nginx配置示例:
server { listen 80; server_name yourdomain.com; # 替换为实际域名/IP root /path/to/your/laravel-project/public; # 必须指向public目录 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; # 路由转发到index.php } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 与PHP-FPM通信 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; # 禁止访问隐藏文件(如.git) } add_header X-Frame-Options "SAMEORIGIN"; # 安全头设置 add_header X-Content-Type-Options "nosniff"; }重启Nginx:
sudo systemctl restart nginx。 -
Apache配置示例:
< VirtualHost *:80> ServerName yourdomain.com; DocumentRoot /path/to/your/laravel-project/public; < Directory /path/to/your/laravel-project/public> AllowOverride All; # 允许.htaccess覆盖 Require all granted; < /Directory> < /VirtualHost>重启Apache:
sudo systemctl restart httpd。
4. PHP环境配置
-
扩展安装:确保安装Laravel所需的PHP扩展(如
mbstring、openssl、pdo_mysql、tokenizer、xml、gd、bcmath等),可通过以下命令安装:sudo yum install php-mbstring php-openssl php-pdo-mysql php-tokenizer php-xml php-gd php-bcmath -y使用
php -m命令验证扩展是否全部启用。 -
PHP配置优化:调整
php.ini中的关键参数(如memory_limit、upload_max_filesize、post_max_size),以满足项目需求(如上传文件大小限制)。
5. Composer依赖管理
- 安装Composer:在项目目录外全局安装Composer:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer - 依赖安装与更新:进入项目目录,运行
composer install安装依赖;若遇到内存不足问题,可增加PHP内存限制:php -d memory_limit=256M composer install - 依赖优化:生产环境中,运行以下命令优化依赖加载速度:
composer dump-autoload -o
6. 环境变量与密钥配置
.env文件设置:复制.env.example文件并重命名为.env,修改以下关键配置:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name # 替换为实际数据库名 DB_USERNAME=your_database_user # 替换为实际数据库用户 DB_PASSWORD=your_database_password # 替换为实际数据库密码 APP_KEY= # 留空,后续生成- 应用密钥生成:运行
php artisan key:generate生成应用密钥(APP_KEY),并将其添加到.env文件中(用于加密会话、CSRF令牌等)。
7. 数据库配置与迁移
- 数据库连接测试:确保
.env中的数据库配置正确,运行php artisan migrate执行数据库迁移(创建表结构)。 - 数据库备份:定期备份数据库(可使用
mysqldump工具),避免数据丢失。
8. 安全配置
- 隐藏敏感文件:通过Nginx/Apache配置禁止访问
.env、.git等隐藏文件(如上文Nginx配置中的location ~ /\.(?!well-known).*)。 - 设置安全头:在Web服务器配置中添加安全头(如
X-Frame-Options、X-Content-Type-Options),防止点击劫持、MIME类型嗅探等攻击。 - 定期更新:保持CentOS、PHP、Laravel及依赖包的最新版本,修复安全漏洞。
9. 性能优化
- 开启OPcache:在
php.ini中启用OPcache(opcache.enable=1),提升PHP脚本执行速度。 - 配置缓存:运行以下命令生成配置、路由、视图缓存(生产环境必备):
php artisan config:cache php artisan route:cache php artisan view:cache - 静态文件处理:通过Nginx/Apache直接处理静态文件(如CSS、JS、图片),减少PHP负载。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos中laravel部署有哪些注意事项
本文地址: https://pptw.com/jishu/743571.html
