第 1 頁 (共 2 頁)
請問有沒有辦法兩台phpBB吃同一份資料庫
發表於 : 2006-03-28 08:40
由 koach
因為在php_config裡有cookie_domain和 server_name的限制
不曉得有沒有人有經驗可以讓兩台不同的主機(內含phpbb程式但本機沒有資料庫),去吃同一台的資料庫
發表於 : 2006-03-28 09:23
由 akimasa
沒問題!
phpbb程式碼 及 資料庫不一定要在同一台機器上!
發表於 : 2006-03-28 13:06
由 appleboy
修改跟目錄底下的config.php檔
這樣就可以 然後mysql 設定外部可以連接到資料庫就好 權限問題
發表於 : 2006-03-29 04:53
由 jwxie
最重要是你不要把 舊的資料庫食掉....
備份你的 config.php
發表於 : 2006-03-29 14:43
由 koach
我想我可能沒把問題說清楚
我知道資料庫和phpbb不一定要在同一台,只要在config.php中設定資料庫主機的位址就可以完成
我的問題是,在phpbb_config裡面有有一些設定,會去記錄phpbb的”網址”(cookie_domain和 server_name)
所以即使我的資料庫已經連上其它台電腦,問題是當在phpbb登入後,仍會被導到資料庫中所設定的server_name,如果把server_name清空,在登入、出時又會出現問題(有一些時候會出現找不到網頁)
以上
也就是要把資料庫存在 A主機,且在 B主機和C主機均有phpBB程式,同步吃A主機資料庫的
發表於 : 2006-03-29 16:48
由 ckmarkhsu
呵呵,我想會這樣做的目的一定是 load balance 或是 mirror 吧:)
我之前想到的解決辦法是
在 global.php (我不知道 phpBB 有沒有此檔:P)
下一個判斷
代碼: 選擇全部
if($_SERVER['SERVER_ADDR']=="xxx.xxx.xxx.xxx") //如果是某台主機
{
//將網址前面加上 subdomain => serv1.domain.com
$url = "serv1." . $url;
}
else //若是另一台主機
{
//將網址前面加上 subdomain => serv2.domain.com
$url = "serv2." . $url;
}
當然以上只是 sudo code:)
發表於 : 2006-03-30 00:44
由 koach
這方法似乎行不通的
因為在phpbb的程式碼當中(我大概看了一下下,也許有誤)
有些程式檔的server_name 是直接去抓 database裡面的,而不是存在類似環境變數或常數中
若是如此似乎就是只能去一個一個code改了..
發表於 : 2006-03-30 02:11
由 ckmarkhsu
koach 寫:這方法似乎行不通的
因為在phpbb的程式碼當中(我大概看了一下下,也許有誤)
有些程式檔的server_name 是直接去抓 database裡面的,而不是存在類似環境變數或常數中
若是如此似乎就是只能去一個一個code改了..
不需要一個一個改阿!
你找到他 query 的下一行,直接判斷就好了,應該是放在 global.php 這種檔案中
改一次,全區通用:P
發表於 : 2006-03-30 11:09
由 ~倉木麻衣~
發表於 : 2006-03-30 19:44
由 ckmarkhsu
這篇教學跟這沒關係吧:P
發表於 : 2006-03-30 19:52
由 ~倉木麻衣~
為何沒關係?
原提問者不就是要在不同主機共用同一個資料庫
那篇教學文件雖然是共用會員資料庫, 但原理是一樣的
只是將config資料表多弄一份, 再到includes/constants.php裡去改一下CONFIG_TABLE所指向的資料表名稱就好了
要懂的變通呀
發表於 : 2006-03-30 20:21
由 ckmarkhsu
~倉木麻衣~ 寫:為何沒關係?
原提問者不就是要在不同主機共用同一個資料庫
那篇教學文件雖然是共用會員資料庫, 但原理是一樣的
只是將config資料表多弄一份, 再到includes/constants.php裡去改一下CONFIG_TABLE所指向的資料表名稱就好了
要懂的變通呀
Orz....看來您沒有把前面的討論看完Orz....
對不起我不懂得變通Orz...
發表於 : 2006-03-30 20:43
由 appleboy
~倉木麻衣~ 寫:為何沒關係?
原提問者不就是要在不同主機共用同一個資料庫
那篇教學文件雖然是共用會員資料庫, 但原理是一樣的
只是將config資料表多弄一份, 再到includes/constants.php裡去改一下CONFIG_TABLE所指向的資料表名稱就好了
要懂的變通呀
那篇教學根本與本篇無關
增加自己困擾 把問題複雜化了
他說2台機器想共用資料庫 那是很簡單的事情
只要改config檔即可
所以你把問題複雜化了
發表於 : 2006-03-30 20:44
由 ~倉木麻衣~
沒看完?
我可是很清楚的知道原提問者這麼說了
我知道資料庫和phpbb不一定要在同一台,只要在config.php中設定資料庫主機的位址就可以完成
既然他知道在config.php裡設定資料庫主機的位址, 那表示他有基本的了解
雖然那篇教學文件是在同一台主機上有二個不同的phpbb論壇
但本篇主角已知道可利用外連資料庫的方式讓位於二台不同主機的phpbb去讀同一個資料庫
只是他遇到了phpbb_config資料表裡server_name的問題, 會造成他登入後等有重導向動作會不正確的問題
這個問題其實只要仿教學文件再建立一個phpbb_config資料表並改名成另一個名稱, 例如host2_config
然後在另一台phpbb主機上(假設是host2)將它的includes/constants.php裡的這行
代碼: 選擇全部
define('CONFIG_TABLE', $table_prefix.'config');
改成
代碼: 選擇全部
define('CONFIG_TABLE', 'host2_config');
最後再將host2_config裡的server_name等相關設定做修改就可以讓解決他的問
這樣有不相關嗎?
這樣不是依照教學文件變通一下就解決的事了嗎?
發表於 : 2006-03-30 20:52
由 ckmarkhsu
喔,這樣弄當然是可以阿,可是誠如樓上上的網友說的
這樣弄有點把問題複雜化了:P
只要單純用我的方式,把 url 做個判斷即可
沒必要多弄個 table 出來:P