部署 Laravel 8 应用程序涉及多个步骤,包括设置服务器环境、配置 Web 服务器、安装依赖项以及确保安全性。以下是一个基本的部署指南:
1. 准备服务器环境
- 服务器要求:确保服务器满足 Laravel 的要求,包括 PHP 版本(>= 7.3)、Composer、数据库(如 MySQL、PostgreSQL)等。
- 操作系统:通常使用 Linux 发行版(如 Ubuntu、CentOS)。
- Web 服务器:可以选择 Nginx 或 Apache。
2. 获取代码
- 克隆代码库:使用 Git 将代码克隆到服务器。
git clone <your-repository-url> cd <your-project-directory>
3. 安装依赖
- 安装 Composer 依赖:
composer install --no-dev --optimize-autoloader
使用
--no-dev
是为了避免安装开发依赖,--optimize-autoloader
可以优化自动加载器性能。
4. 配置环境变量
- 复制
.env.example
:cp .env.example .env
- 编辑
.env
文件:配置数据库连接、应用密钥、缓存驱动等。APP<em>ENV=production APP</em>DEBUG=false APP<em>KEY=your-app-key # 如果没有,可以运行 <code>php artisan key:generate
生成 DBCONNECTION=mysql DBHOST=127.0.0.1 DBPORT=3306 DBDATABASE=your-database-name DBUSERNAME=your-database-user DB_PASSWORD=your-database-password
5. 生成应用密钥(如果尚未生成)
php artisan key:generate
6. 数据库迁移和种子
- 运行迁移:
php artisan migrate
- 运行种子(可选):
php artisan db:seed
7. 配置 Web 服务器
使用 Nginx
-
配置示例:
server { listen 80; server_name your-domain.com; root /path/to/your/project/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
使用 Apache
- 启用 mod_rewrite 并配置虚拟主机。
-
配置示例:
<VirtualHost *:80> ServerName your-domain.com DocumentRoot /path/to/your/project/public <pre><code><Directory /path/to/your/project/public> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
8. 设置文件权限
- 设置存储和缓存目录的权限:
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache # 根据你的 Web 服务器用户调整
9. 优化和安全性
- 启用 OPcache:确保 PHP 的 OPcache 扩展已启用,以提高性能。
- 配置 SSL:使用 Let's Encrypt 等工具为域名配置 HTTPS。
- 定期备份:设置定期备份数据库和应用程序文件。
10. 测试
- 访问应用:通过浏览器访问你的域名,确保一切正常运行。
- 检查日志:查看 Web 服务器和应用程序日志,以排查潜在问题。
通过这些步骤,你应该能够成功部署一个 Laravel 8 应用程序。根据具体需求,可能还需要进行额外的配置和优化。