将Laravel应用程序部署到生产环境涉及多个步骤,包括设置服务器、配置Web服务器、安装依赖项、优化性能等。以下是一个基本的指南,帮助你将Laravel应用程序部署到生产环境:
确保你有一个运行Linux的服务器,并且已经安装了必要的软件,如Nginx或Apache、PHP和MySQL。
sudo apt update
sudo apt install nginx
sudo apt install php-fpm php-mysql php-curl php-xml php-gd php-mbstring php-zip
sudo apt install mysql-server
创建一个新的Nginx配置文件,例如 /etc/nginx/sites-available/yourdomain.com:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com/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;
}
}
启用配置文件:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
将你的Laravel项目克隆到服务器上:
cd /var/www
git clone https://github.com/yourusername/your-laravel-project.git
cd your-laravel-project
composer install --no-dev --optimize-autoloader
确保Laravel的存储和缓存目录可写:
sudo chown -R www-data:www-data /var/www/yourdomain.com/storage
sudo chown -R www-data:www-data /var/www/yourdomain.com/bootstrap/cache
复制 .env.example 文件并编辑 .env 文件:
cp .env.example .env
nano .env
设置数据库连接、邮件驱动等配置。
生成应用密钥:
php artisan key:generate
运行数据库迁移和种子(如果需要):
php artisan migrate
php artisan db:seed
确保PHP的OPcache已启用。编辑 /etc/php/7.4/fpm/php.ini 或 /etc/php/7.4/cli/php.ini:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
配置Laravel队列以处理后台任务:
php artisan queue:work
启动Nginx和PHP-FPM服务:
sudo systemctl start nginx
sudo systemctl start php7.4-fpm
确保防火墙允许HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
使用Let’s Encrypt或其他证书颁发机构配置SSL证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
配置日志记录和监控工具,如Monit、New Relic或ELK Stack,以监控应用程序的性能和健康状况。
通过以上步骤,你应该能够成功地将Laravel应用程序部署到生产环境。根据具体需求,可能还需要进行其他配置和优化。