在Linux下部署Laravel应用程序时,有一些关键步骤和技巧可以帮助你确保应用程序顺利运行。以下是一个详细的指南,涵盖了从环境配置到应用部署的整个过程。
环境准备
-
更新系统:
sudo apt update && sudo apt upgrade -y
-
安装必要的软件:
- PHP:安装PHP及其必要的扩展。
sudo apt install php php-fpm php-mysql php-curl php-mbstring php-xml php-zip php-gd php-bcmath
- Composer:安装PHP的依赖管理工具。
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
- Nginx或Apache:选择并安装Web服务器。这里以Nginx为例。
sudo apt install nginx
- MySQL:安装MySQL数据库服务器。
sudo apt install mysql-server
- PHP:安装PHP及其必要的扩展。
部署步骤
-
上传Laravel应用程序: 使用FTP或SCP将Laravel项目上传到服务器,确保将项目的
public
目录设置为服务器的Web根目录。 -
配置Nginx: 编辑Nginx配置文件,通常位于
/etc/nginx/sites-available/
目录下。sudo nano /etc/nginx/sites-available/default
添加以下内容:
server { listen 80; server_name your_domain.com; root /path/to/your/laravel/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; modeblock"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location /\.(?!well-known).* { deny all; } }
保存文件并重启Nginx:
sudo systemctl restart nginx
-
配置PHP: 确保PHP安装了必要的扩展。你可以使用以下命令检查:
php -m
确保以下扩展已经安装:
pdo_mysql
,tokenizer
,xml
,mbstring
,curl
,zip
,gd
,bcmath
。 -
配置环境变量: 复制
.env.example
文件为.env
,并使用你的数据库凭据和其他必要的信息填充它。cp .env.example .env nano .env
生成应用密钥:
php artisan key:generate
-
运行数据库迁移: 创建数据库并运行迁移:
php artisan migrate
-
优化配置: 运行以下命令优化配置缓存和路由缓存:
php artisan config:cache php artisan route:cache
-
设置文件权限: 确保Laravel的
storage
和bootstrap/cache
目录具有正确的权限:sudo chown -R www-data:www-data /path/to/your/laravel/storage sudo chown -R www-data:www-data /path/to/your/laravel/bootstrap/cache sudo chmod -R 775 /path/to/your/laravel/storage sudo chmod -R 775 /path/to/your/laravel/bootstrap/cache
其他技巧
- 使用宝塔面板:对于初学者,可以使用宝塔面板来简化部署过程。宝塔面板提供了图形化界面,方便管理Web服务器、数据库和PHP环境。
- 配置SSL证书:为了提高安全性,建议为你的Laravel应用配置SSL证书,可以使用Let’s Encrypt免费获取。
- 监控和日志:设置监控和日志系统,如Prometheus和Grafana,可以帮助你实时监控应用性能和排查问题。
通过以上步骤和技巧,你应该能够在Linux上成功部署Laravel应用程序。如果在过程中遇到任何问题,请参考Laravel官方文档或寻求社区帮助。