零基础教程:手把手教你Linux云服务器部署Laravel全攻略
在当今云计算时代,将Laravel项目部署到Linux云服务器已成为开发者的必备技能。本文将通过7个详细步骤,带你完成从零开始的Laravel部署全过程,特别针对阿里云/腾讯云等主流云服务商环境优化配置。
一、服务器环境准备(耗时约15分钟)
1. 连接服务器:使用SSH客户端(如PuTTY或终端)连接
ssh root@your_server_ip
2. 系统更新:执行基础环境配置
sudo apt update && sudo apt upgrade -y
3. 安装必备工具:
sudo apt install -y git curl unzip
二、LAMP/LEMP环境搭建(核心环节)
方案A:传统LAMP栈安装
- 安装Apache:
sudo apt install apache2 -y - 安装MySQL:
sudo apt install mysql-server -y - 安全配置MySQL:
sudo mysql_secure_installation - 安装PHP 8.2+:
sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-zip -y
方案B:高性能LEMP栈(推荐)
- 安装Nginx:
sudo apt install nginx -y - MySQL安装同方案A
- 安装PHP-FPM:
sudo apt install php-fpm php-mysql php-mbstring php-xml php-zip -y - 验证PHP:
php -v
三、Composer安装与Laravel部署(关键步骤)
1. 安装Composer:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer
2. 创建Laravel项目:
cd /var/www sudo composer create-project laravel/laravel your-project-name sudo chown -R www-data:www-data /var/www/your-project-name sudo chmod -R 775 /var/www/your-project-name/storage
四、数据库配置与.env设置
1. 登录MySQL创建数据库:
mysql -u root -p CREATE DATABASE laravel_db; GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; EXIT;
2. 配置.env文件:
cd /var/www/your-project-name cp .env.example .env nano .env
修改关键参数:
DB_DATABASE=laravel_db DB_USERNAME=laravel_user DB_PASSWORD=your_password
五、Web服务器配置(Nginx示例)
sudo nano /etc/nginx/sites-available/your-project-name
粘贴以下配置:
server {
listen 80;
server_name your_domain.com;
root /var/www/your-project-name/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/your-project-name /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
六、最终优化与安全设置
- 生成应用密钥:
php artisan key:generate - 目录权限设置:
sudo chmod -R 775 storage bootstrap/cache - 配置防火墙:
sudo ufw allow 80/tcp && sudo ufw allow 22/tcp - 设置任务调度(Crontab):
* * * * * cd /var/www/your-project-name && php artisan schedule:run >> /dev/null 2>&1
常见问题解决指南
问题1:502 Bad Gateway错误
解决方案:检查PHP-FPM运行状态 systemctl status php8.2-fpm
问题2:目录权限问题
解决方案:递归修改所有权 sudo chown -R www-data:www-data /var/www/your-project-name
问题3:Composer内存不足
解决方案:增加内存限制 COMPOSER_MEMORY_LIMIT=-1 composer update
通过以上步骤,你的Laravel应用已成功部署到Linux云服务器。建议后续:
- 配置HTTPS证书(Let's Encrypt)
- 设置自动化部署流程
- 启用Redis缓存提升性能
如需更高级的部署方案,可考虑使用Laravel Forge或Envoyer等专业工具。
