環境資源
環境:阿里雲伺服器 CenterOS 7.5 ,寶塔皮膚 Apache + php7.2.31
概況
問題:單埠號,部署多個專案(小專案很多,不想用多個埠號)
主要目的:驗證一下,在二級目錄的下部署站點的可能性。記錄一下過程以及後續存在的問題。
目標結果:
域名 | 埠號 | 根目錄 | 二級目錄 | 訪問地址 |
---|---|---|---|---|
test.pj | 88 | /www/wwwroot/tests | pj1,pj2 | test.pj:88/t1, test.pj:88/t2 |
過程描述:
1. 在寶塔皮膚中新增一個站點(RootTest),確定好根目錄。
2.進入 RootTest -> 設定 -> 配置檔案,配置虛擬目錄
#PATH
<Directory "/www/wwwroot/tests">
Options FollowSymLinks
Order deny,allow
Deny from all
</Directory>
<Location / >
Require all denied
</Location>
<Location /t1 >
Require all granted
</Location>
<Location /t2 >
Require all granted
</Location>
Alias /t1 "/www/wwwroot/tests/pj1/public"
<Directory "/www/wwwroot/tests/pj1/public">
SetOutputFilter DEFLATE
Options FollowSymLinks
Allow from all
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm default.php default.html default.htm
</Directory>
Alias /t2 "/www/wwwroot/tests/pj2/public"
<Directory "/www/wwwroot/tests/pj2/public">
SetOutputFilter DEFLATE
Options FollowSymLinks
Allow from all
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm default.php default.html default.htm
</Directory>
3. 專案中的調整,暫時發現這些要調整的
// 都以 t1 來舉例
// public/.htaccess 中增加
RewriteBase /t1/
// AppServiceProvider.php@boot() 中增加
app('url')->forceRootUrl(config('app.url'));
// 呼叫 admin_base_url() 的地方,外層要包裹一層 url()
url(admin_base_url(xxx))
// laravel-admin 的後臺,若果使用了多後臺,session 關注一下;
// config('admin.route.middleware') 裡面
'multi-session:path,/t1/admin'
4. 沒關注到的點,還請多多提醒~
驗證結果
正常頁面都順利跑起來了。
可能會存在一些問題還沒發現,有沒關注到的點,還請多多提醒。
最後吧,多個小站點需要擠一擠的,大概可以用一用這個方法吧。
如果資源夠的話,還是不要這樣搞了,難免會遇到坑要爬~
本作品採用《CC 協議》,轉載必須註明作者和本文連結