Ubuntu下部署Laravel项目的完整步骤
sudo
权限;运行以下命令更新系统包列表及已安装的包,确保系统处于最新状态:
sudo apt update && sudo apt upgrade -y
Laravel需要Web服务器来处理HTTP请求,推荐使用Nginx(高性能、轻量级):
sudo apt install nginx -y # 启动Nginx并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx # 验证Nginx状态(显示“active (running)”即为成功) sudo systemctl status nginx
Laravel依赖PHP 8.1及以上版本,需安装PHP核心及常用扩展:
sudo apt install php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath -y # 验证PHP版本(需符合Laravel要求) php -v
编辑PHP-FPM池配置文件,确保与Nginx通信正常:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf # 找到“listen”行,确认值为“/run/php/php8.1-fpm.sock”(与Nginx配置一致) listen = /run/php/php8.1-fpm.sock # 保存退出后重启PHP-FPM sudo systemctl restart php8.1-fpm
为Laravel项目创建专属Nginx配置,替换yourdomain.com
为实际域名/IP:
sudo nano /etc/nginx/sites-available/yourdomain.com
粘贴以下配置(关键路径需调整):
server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/yourproject/public; # Laravel项目public目录 index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; # 路由转发到index.php } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 与PHP-FPM通信 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; # 禁止访问.htaccess文件 } }
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl restart nginx
Composer用于安装Laravel依赖,若未安装则运行:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer # 验证安装 composer -v
cd /var/www/ composer create-project --prefer-dist laravel/laravel yourproject
将本地项目上传至/var/www/yourproject
(通过SFTP/SCP工具),然后进入项目目录:
cd /var/www/yourproject
复制.env.example
为.env
(包含敏感配置),并编辑数据库等信息:
cp .env.example .env nano .env
修改以下关键配置(替换为实际值):
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app # 数据库名 DB_USERNAME=laravel_user # 数据库用户 DB_PASSWORD=strong_pass # 数据库密码 APP_KEY= # 生成密钥(下一步)
生成应用密钥(用于加密):
php artisan key:generate
sudo apt install mysql-server -y sudo mysql_secure_installation # 安全配置(设置root密码、移除匿名用户等)
登录MySQL:
sudo mysql -u root -p
执行以下SQL(替换strong_pass
为实际密码):
CREATE DATABASE laravel_app; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_pass'; GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
将数据库结构同步到MySQL:
php artisan migrate
确保Web服务器(www-data
)有权访问项目目录:
sudo chown -R www-data:www-data /var/www/yourproject sudo chmod -R 755 /var/www/yourproject sudo chmod -R 775 /var/www/yourproject/storage # 存储目录需可写 sudo chmod -R 775 /var/www/yourproject/bootstrap/cache # 缓存目录需可写
清理缓存并优化自动加载:
php artisan optimize
在浏览器输入http://yourdomain.com
,若看到Laravel欢迎页面,则部署成功!
使用Let’s Encrypt免费SSL证书,提升网站安全性:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # 按提示完成证书申请(自动配置Nginx重定向HTTP→HTTPS)
fastcgi_pass
路径是否正确)、PHP-FPM服务状态;www-data
用户有权访问);.env
中的数据库配置(用户名、密码、数据库名)及MySQL服务状态。