我用PHP开发了一个应用程序(使用Symfony框架)。
我的Apache错误日志文件充满了这些错误:
[Mon Feb 13 20:08:08 2012] [error] [client 60.169.75.168] Empty module and/or action after parsing the URL "/." (/)., referer: http://www.mywebsite.com/account.php
[Mon Feb 13 20:08:10 2012] [error] [client 60.169.75.168] Empty module and/or action after parsing the URL "/." (/)., referer: http://www.mywebsite.com/services
无论如何,我可以让Apache日志显示堆栈跟踪,以便我可以追踪问题吗?
也许我应该告诉Symfony(这是向日志写一些错误消息的人)写更多内容(错误跟踪)。可以吗?
更新:生产时出现问题,因此我无法使用xdebug。
谢谢,
丹
答案 0 :(得分:2)
尝试在apps / YOUR_APP / config / settings.yml中为您的产品环境更改settings.yml配置文件:
prod:
.settings:
logging_enabled: true
在apps / YOUR_APP / config / factories.yml中的factories.yml配置文件中:
prod:
logger:
class: sfAggregateLogger
param:
level: debug
请记得清除缓存。
php symfony cc
Symfony将在其自己的日志文件中编写更完整的每个请求日志(通常在SYMFONY_DIR / log / YOUR_APP_prod.log中)
答案 1 :(得分:1)
有一个名为xDebug的PHP扩展,我相信它会做你想要的,它不会将堆栈跟踪放在apache日志中,你需要指定存储它们的位置。
答案 2 :(得分:0)
to show a stack trace
你不需要它。此消息由Symfony框架生成,它只是告诉您它对模块account.php
或services
一无所知。这些模块由显示的URL请求:
http://www.symfony-project.org/book/1_2/04-The-Basics-of-Page-Creation
网址是回复的一部分
Symfony包含一个允许您拥有完整版的路由系统 实际操作名称和URL形式之间的分隔 需要打电话给它。这允许自定义URL的格式,就像 这是回应的一部分。您不再受该文件的限制 结构也不是要求参数;动作的URL可以 看起来像你想要的短语。例如,对索引的调用 名为article的模块的动作通常如下所示: http://localhost/frontend_dev.php/article/index?id=123
此网址 从数据库中检索给定的文章。在这个例子中,它 检索欧洲部分中的文章(id = 123) 专门讨论法国的金融问题。但是可以写入URL 以完全不同的方式对routing.yml进行简单的更改 配置文件: http://localhost/articles/europe/france/finance.html
不仅是 由此产生的URL搜索引擎友好,它也很重要 用户,然后可以使用地址栏作为伪命令行来执行 自定义查询,如下所示: http://localhost/articles/tagged/finance+france+euro
Symfony知道如何 解析并为用户生成智能URL。路由系统 自动从智能URL中剥离请求参数并进行 他们可以采取行动。它还格式化包含的超链接 在回应中让他们看起来“聪明”。您将了解更多信息 第9章中的这个功能。总的来说,这意味着你的名字 应用程序的操作不应受到方式的影响 用于调用它们的URL应该看起来,但是通过动作的功能 在申请中。动作名称解释了动作的实际内容 是的,它通常是一个不定式的动词(如节目,列表, 编辑,等等)。动作名称可以完全不可见 最终用户,所以不要犹豫使用明确的动作名称(如 listByName或showWithComments)。您将节省代码注释 解释你的动作功能,加上代码会容易得多 读取。