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
~倉木麻衣~
請問您看過教學文件庫了嗎?
http://phpbb-tw.net/phpbb/viewtopic.php?t=28169

發表於 : 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檔即可

所以你把問題複雜化了
:-D

發表於 : 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