網站正式與測試資料庫與後台的規劃問題

假設一個網站有一個後台,假設是 test.com/admim
(test.com是我自己的個人網域,有設定必須有帳密才能登入,所以測試會有測試管理員帳號,正式會有正式管理員帳號),可以新增刪除資料等等後端操作,這個後台裡面都是測試(dev)的資料。
有一天這個網站要prod了,正式網站的域名叫做 abc.com,原本資料庫是讀 dev ,現在變成 prod

test.com/admin -> db:dev
abc.com -> db:prod

那我網址會以什麼入口當作後台?以及後台內如何判斷測試與正式?
因為不太可能用 abc.com/admin 來當正式資料管理後台吧~

我的做法是
無論是測試還正式,後台都是統一入口 test.com/admin
只是裡面可以選擇要撈正式資料還是測試資料,可能利用 $_GET 來判斷 (但用 GET表示每個網址後面都必須要加上這個值...)
我想問大神如果是你們會怎麼做?

阅读 2.8k
5 个回答

我看你的问题好像是因为两个域名都要映射到同一个服务器上的同一套代码,才会产生这些考虑。如果是这样的话,的确需要考虑如何辨别正式/测试环境:
我认为可以通过通过 host 来判断环境,test.com / abc.com,这是两个可以获取的值。
域名的话,测试可以用 test.com/admin,正式部署的话,如果 abc.com 是专门设置为后台域名则可以直接使用 abc.com,然后在 apache/nginx 中设置重写规则 / -> /admin(具体怎么设置,我也不太清楚 ... 尴尬),也可以统一加 /admin 后缀。

如果域名不是映射到同一套代码,正式部署建议直接用 abc.comapache/nginx 设置重写规则;数据库的话,配置文件里面改一下就好了。

是台湾同胞吗?

数据库配置都放到配置文件,配置文件不会提交到 git 仓库。部署时才修改配置,可以使用持续集成工具。

是正式库还是测试库,你可以把这个配置写在配置文件里面。在部署正式网站的时候修改一下配置文件使其读取正式库的数据不就哦了。

数据库配置都放到配置文件内,就ok了

是这样的,一般都是dev单独一个服务器,prod单独一个服务器
如果是只有一个服务器也是没问题的,可以在一台服务上准备两份代码,一份dev对应test.com,一份prod对应abc.com

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题