2016-11-20 77 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“);

  • 相关问题