Laravel单域名部署多项目
前言
最近遇到一个困境,场景是这样的,只拥有一个域名,这个域名不能再解析为三级四级五级域名,但是需要部署多个laravel项目。之前做开发的时候都是一个域名对应一个laravel项目,谁他妈遇到有这样子的哦。终于在大佬请教下才得于解决。
解决方法
服务器环境:Nginx、PHP、MySQL
第一个项目默认像之前那样,把域名直接指向laravel项目public
文件夹,然后重写的方法就按照给的
location / {
try_files $uri $uri/ /index.php?$query_string;
}
对于第二个第三个第n个项目的方法:
location ^~ /second11 { #second11对应下面@second2中 second1
alias /secondproject/public/; #第二个项目的路径
try_files $uri $uri/ @second2; #重写@second2对应下面的@second2重写方法
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
location @second2 {
rewrite /second1/(.*)$ /second1/index.php?/$1 last;
}
通过上面的配置的话,你的项目访问链接变成:
# 第一个项目
https://xxxx.com
# 第二个项目
https://xxxx.com/second11/