LNMP环境下如何部署Laravel
在LNMP环境中部署Laravel应用,需依次安装Nginx、MySQL、PHP及必要扩展。关键步骤包括配置PHP-FPM与Nginx服务器块,上传项目代码并设置文件权限。随后创建数据库,配置Laravel的.env文件,运行数据库迁移并安装Composer依赖。最后可选用Let'sEncrypt配置SSL证书以启用HTTPS。
在LNMP(Linux, Nginx, MySQL, PHP)这套经典的技术栈上部署Lara vel应用,是许多开发者从本地开发转向生产环境的必经之路。这个过程看似步骤繁多,但只要理清脉络,按部就班地操作,就能顺利完成。下面,我们就来梳理一下整个部署流程的核心步骤。

1. 安装Nginx
首先,确保你的服务器上已经安装了Nginx。如果还没有,可以通过以下命令快速安装:
sudo apt update
sudo apt install nginx
2. 安装MySQL
接下来,安装MySQL数据库服务器,为Lara vel准备好数据存储的后端:
sudo apt update
sudo apt install mysql-server
3. 安装PHP
Lara vel的核心是PHP,因此需要安装PHP及其一系列必要的扩展,以确保框架的所有功能都能正常运行:
sudo apt update
sudo apt install php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
4. 配置PHP-FPM
为了让Nginx能够正确处理PHP请求,需要配置PHP-FPM。编辑其配置文件,确保监听方式正确:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
找到下面这行,并进行修改:
;listen = /run/php/php7.4-fpm.sock
listen = /tmp/php-cgi.sock
修改完成后,别忘了重启PHP-FPM服务让配置生效:
sudo systemctl restart php7.4-fpm
5. 配置Nginx
这是关键的一步,需要为你的Lara vel应用创建一个Nginx服务器块(相当于虚拟主机)。创建一个新的配置文件:
sudo nano /etc/nginx/sites-a vailable/yourdomain.com
将以下配置内容粘贴进去,记得把`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:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
然后,启用这个配置文件并测试Nginx配置是否正确:
sudo ln -s /etc/nginx/sites-a vailable/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
6. 部署Lara vel应用程序
现在,将你的Lara vel项目代码上传到服务器上预先设定好的目录,比如`/var/www/yourdomain.com`。使用FTP、SCP或者Git等方式都可以。
7. 设置文件权限
正确的文件权限对于Web应用的安全和运行至关重要。运行以下命令,将网站目录的所有权交给Web服务器用户(通常是www-data),并设置合理的文件权限:
sudo chown -R www-data:www-data /var/www/yourdomain.com
sudo find /var/www/yourdomain.com -type f -exec chmod 644 {} \;
sudo find /var/www/yourdomain.com -type d -exec chmod 755 {} \;
8. 配置数据库
登录MySQL,为Lara vel应用创建一个专用的数据库和用户,并授予权限:
CREATE DATABASE lara vel_db;
CREATE USER 'lara vel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON lara vel_db.* TO 'lara vel_user'@'localhost';
FLUSH PRIVILEGES;
9. 配置Lara vel
进入你的Lara vel项目目录,编辑`.env`文件,填入刚刚创建的数据库连接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lara vel_db
DB_USERNAME=lara vel_user
DB_PASSWORD=your_password
10. 运行Lara vel迁移
如果项目使用了数据库迁移,现在可以运行它们来创建数据表结构:
cd /var/www/yourdomain.com
sudo -u www-data php artisan migrate
11. 安装Composer依赖
在服务器上安装项目所需的所有PHP依赖包:
sudo -u www-data composer install --no-interaction --prefer-dist --optimize-autoloader
12. 设置文件权限(再次)
Lara vel的`storage`和`bootstrap/cache`目录需要可写权限,以便框架能够存储日志、缓存文件等:
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
13. 配置SSL(可选)
为了网站安全,强烈建议启用HTTPS。使用Let’s Encrypt可以免费获取SSL证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
根据Certbot的提示完成证书的申请和Nginx配置的自动更新。
走完以上所有步骤,你的Lara vel应用程序就应该已经在LNMP环境中稳稳当当地运行起来了。整个过程其实就是搭建环境、配置服务、部署代码、初始化数据的组合拳,每一步都踩实了,访问你的域名时就能看到期待已久的应用界面了。


































