驗證方案,將 Laravel-admin 站點部署到 Apache 二級目錄下

水米發表於2020-05-24

環境資源

環境:阿里雲伺服器 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 協議》,轉載必須註明作者和本文連結

相關文章