我维护了一个客户网站 - PHP - 今天,当我从共享服务器迁移到VPS时......我需要配置 coldfusion 从头开始。
Obs。:我从未在生活中使用过ColdFusion
但我收到此错误:变量DSNNAME未定义。而且我没有配置它。
The web site you are accessing has experienced an unexpected error.
Please contact the website administrator.
The following information is meant for the website developer for debugging purposes.
Error Occurred While Processing Request
Variable DSNNAME is undefined.
The error occurred in /home/project/public_html/projectname/integracao/register/members_body.cfm: line 303
Called from /home/project/public_html/projectname/integracao/register/frame.cfm: line 45
Called from /home/project/public_html/projectname/integracao/register/members.cfm: line 5
301 : <td>
302 : <div align="right">
303 : <cfquery name="Qry_location" datasource="#dsnname#">
304 : SELECT * FROM location
305 : WHERE location_active = '1'
Resources:
Check the ColdFusion documentation to verify that you are using the correct syntax.
Search the Knowledge Base to find a solution to your problem.
Browser Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36
Remote Address 189.15.195.13
Referrer http://projectname/site/index.php?option=com_content&view=article&id=53&Itemid=12
Date/Time 27-Oct-14 07:17 PM
Stack Trace
at cfmembers_body2ecfm207100474.runPage(/home/project/public_html/projectname/integracao/register/members_body.cfm:303) at cfframe2ecfm1139106636.runPage(/home/project/public_html/projectname/integracao/register/frame.cfm:45) at cfmembers2ecfm1994964255.runPage(/home/project/public_html/projectname/integracao/register/members.cfm:5)
coldfusion.runtime.UndefinedVariableException: Variable DSNNAME is undefined.
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:388)
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:350)
我的结构是:
/home/project/public_html/projectname/application.cfm
/home/project/public_html/projectname/integracao/register/members_body.cfm
我需要那个members.cfm文件,读取文件Application.cfm 。我怎样才能做到这一点?
答案 0 :(得分:1)
就像你说的那样,你必须从头开始配置它。如果你之前从未与CF合作过,那就指出一点。
要在CF代码中运行查询,您需要将它们与数据库连接。这是通过CFQUERY的数据源属性完成的。
作为一般做法,开发人员通常将darasource名称存储在持久变量中,并将其保存在Application.cfm或Application.cfc中。在您的情况下,此持久变量的名称为DSNNAME。
ColdFusion需要与数据库建立连接。这是通过在CF管理员屏幕中通过您发布的链接创建连接来完成的。
那说,你就是这样做的:假设你有一个SQL Server数据库,点击Data Sources并从那里添加数据源。这很容易。创建数据源后,将该数据源分配给Application.cfm或Application.cfc中的DSNNAME
变量。
答案 1 :(得分:1)
<cfinclude template="/application.cfm"/>
你在* nix吗?如果是,application file names are case sensitive。您的文件名为Application.cfm
吗?注意第一个字母是大写&#34; A&#34;。如果没有,这可以解释为什么它不会发射。 CF正在寻找Application.cfm
,而不是application.cfm
。所以后者会被忽略。
答案 2 :(得分:0)
不知何故,应用程序所需的ColdFusion配置文件无法正确读取。它可能没有被包含在您给出的.cfm文件中,因为这种文件通常是特定于服务器的,并且放在源代码管理忽略列表上。
如果文件存在但未被调用,您可以通过搜索dsnname=
dsnname =
等字符串来找到它。
您在问题中粘贴的是CF管理员控制台,它可能无法帮助解决此问题。但是,您必须确保数据库已正确配置并命名,以匹配#dsnname #valuates to。
您最好的选择可能是联系任何人编写代码并询问是否遗漏了配置/设置文件。
答案 3 :(得分:0)
我解决了这个问题,包括每页中的application.cfm
。
是的,这很疯狂,但是唯一的解决方案是有效的。
<cfinclude template="/application.cfm"/>
但我想要的是每个.cfm
文件自动包含 application.cfm
,作为旧的共享托管。