2016-11-20 94 views
-1

我的網站的前端運行在PHP上。它託管在由Verio運行的共享主機平臺上。後端是一個MS SQL數據庫,它也託管在Verio的平臺上。連接到託管的MS SQL數據庫與PHP

最近剛被耐力國際集團控股公司(EIG)收購的Verio。我的網站文件被自動遷移到EIG的服務器。發生這種情況時,與MS SQL數據庫的連接就會中斷。

我的網站上的一個文件是一個settings.php文件。在Verio遷移到Endurance的服務器之前,我在settings.php文件中用於'DB_SERVER'全局變量的連接字符串是'198.170.241.132,1433 \ SQLExpress1'該框即將離線,我的網站已遷移,所以我需要連接到新服務器上的數據庫。

我已經能夠通過他們的門戶網站在Endurance的服務器上創建MS SQL數據庫。但是Endurance支持告訴我他們不能爲數據庫託管的服務器提供IP地址。我試圖弄清楚如何連接到沒有IP地址的服務器。

我的網站上的settings.php文件包含連接信息,我嘗試更新以下內容(即通過新門戶網站設置的數據庫的詳細信息),以查看它是否可行。它沒有工作:

$GLOBALS['DB_DATABASE']='mydbnamegoeshere'; 
$GLOBALS['DB_SERVER']='VCNSQL102'; 
$GLOBALS['DB_USERNAME']='myusernamegoeshere'; 
$GLOBALS['DB_PASSWORD']='mypasswordgoeshere'; 
$GLOBALS['DB_VENDOR']='MSSQL'; 

上有Verio的站點討論如何連接到服務器的知識庫文章,但它是爲ASP.NET網站,而不是PHP的網站寫的。此外,它沒有指定MS SQL數據庫託管的服務器的IP地址。知識庫文章在這裏:http://www.verio.com/knowledgebase/beta/article.bml?ArticleID=1829

任何關於正確設置使用(以及放置它們的位置)的建議將是非常受歡迎的。

+1

「無法發出IP地址」?那麼 - 要麼他們給你一個DNS名稱,要麼你應該尋找另一個主機,因爲無能。無論哪種方式,這是一個話題,你必須*完全*處理你的主機,而不是*編碼*社區。 –

+0

謝謝弗朗茨。下一個有類似問題的人現在知道他需要一個IP地址或DNS名稱,因爲您的評論的第一部分。不共享信息編碼社區是關於什麼?第二部分是必要的嗎? – casperso

+0

是的 - 但分享*相關的*信息。 * one *託管服務的怪癖太專門化,不適合多人使用,正如我所說 - 這是一個最適合託管服務商的主題,而不是程序員。除非你的問題是關於代碼託管的代碼*,否則恐怕它是脫離主題的,所以請求* configure *而不是* debug *代碼。特別是如果必要的證書是,而且應該只有你才知道。 –

回答

0

一位自由職業者幫助我實現了這個目標,雖然我並不認爲自己是專家,但我不想成爲DenverCoder9(或Franz),所以我會分享我所知道的情況,以防萬一500萬個+ EIG的客戶也有類似的問題(或者其他人有蹩腳的支持,不要給他們的託管MS SQL DB的IP類似共享主機平臺):

  1. 的.htaccess中所需要的根文件夾要使用指向相關站點的根文件夾的子文件夾進行重寫。對於使用MS SQL數據庫的網站的相關代碼(該代碼是在我的網站的根目錄下的子文件夾,因爲它會作爲一個子域)是:

RewriteEngine敘述上

### subdomain redirect v3 ### 
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ 
RewriteCond %{REQUEST_URI} !^/subdomainfoldername/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /subdomainfoldername/$1 
RewriteCond %{HTTP_HOST} ^(www.)?subdomainurl.com$ 
RewriteRule ^(/)?$ subdomainfoldername/$1 [L] 
  • 包含連接設置被修改,以添加的PHP文件

    定義( 'DF', '\ subdomainfolder'); //這裏的子域文件夾被定義爲追加到$ _SERVER ['DOCUMENT_ROOT'],用於路徑構建到文件夾,其中原始站點爲 $ GLOBALS ['APPLICATION_DIR'] = $ _ SERVER ['DOCUMENT_ROOT']。 $ GLOBALS ['APPLICATION_CLASSES_DIR'] = $ GLOBALS ['APPLICATION_DIR']。'\ classes \'; $ GLOBALS ['APPLICATION_FORMS_DIR'] = $ GLOBALS ['APPLICATION_DIR']。'\ forms \'; $ GLOBALS ['APPLICATION_SKINS_DIR'] = $ GLOBALS ['APPLICATION_DIR']。'\ skins \'; $ GLOBALS ['APPLICATION_USER_FILES_DIR'] = $ GLOBALS ['APPLICATION_DIR']。'\ userFiles \'; $ GLOBALS ['APPLICATION_HELP_FILES_DIR'] = $ GLOBALS ['APPLICATION_DIR']。'\幫助文檔\';

  • 已添加以下用於連接數據庫(新會話目錄設置) session_save_path($ GLOBALS ['APPLICATION_DIR']。'\ session \');

    $ GLOBALS ['DB_DATABASE'] ='mydbnamegoeshere'; $ GLOBALS ['DB_SERVER'] ='VCNSQL102,1433 \ I102'; //服務器,數據庫的端口號和實例。請注意,沒有IP需要這是我在我原來的問題 $ GLOBALS ['DB_USERNAME'] ='mydbusernamegoeshere'; $ GLOBALS ['DB_PASSWORD'] ='mydbpasswordgoeshere!'; $ GLOBALS ['DB_VENDOR'] ='MSSQL';

  • 這條線用戶時,他們訪問的網站被註釋掉土地index.php文件(因爲保存路徑設置在上述第3項中添加新的代碼):

    session_save_path(「/家庭/用戶/網絡/ b1234/apo.username/cgi-bin目錄的/ tmp「);

  • 相關問題