【问题标题】:500 Internal Server Error?500内部服务器错误?
【发布时间】:2010-11-15 16:09:06
【问题描述】:

最近,我把我的项目 php+smarty+mysql 放在了我的 httpd 服务器中。但是我遇到了一个错误,上面写着:

500 Internal Server Error

我的操作系统是archlinux,httpd服务器和php是这样安装的:

sudo pacman -S apache php

如果我使用包含以下内容的测试原生 php 文件:

  <html>
    <head>
    <title>PHP Test Page</title>
    </head>
    <body>
    This is Arch Linux, running PHP.
    <?php
      phpinfo();
    ?>
    </body>
    </html>

它运行正常。它告诉我 php 可以正常工作。但是为什么我的 smarty 项目不起作用?有没有人遇到过这个问题?

【问题讨论】:

  • 你创建了目录结构吗?
  • 如果这是一道物理选择题,我会选择“细节不足”。
  • “创建目录结构”是什么意思
  • 你能找到你的 apache error_log(试试 /var/log/httpd)吗?如果是这样,那里可能有一些线索,如果您仍然不知所措,请尝试在问题中发布日志的最后几行。

标签: php mysql smarty apache


【解决方案1】:

你提供的信息很难说。

发生错误 500 是因为您在应该生成页面的代码中出现了一些错误,或者代码生成了一些未处理的异常。 我的建议是访问显示 500 错误的页面,然后尝试注释掉所有代码。看看问题是否仍然存在。如果不是,请取消注释代码,直到找到导致错误的关键部分。可能是任何东西,错字,找不到文件,逻辑错误,任何东西。

此外,请检查网络服务器日志,如果您可以阅读它们。

【讨论】:

  • 该页面是smarty的tpl文件,没有任何显示。 firebug 工具捕获到错误消息“500 Internal Server Error”。
  • firebug 会捕获服务器生成的任何内容。 500 由您的服务器返回。检查您的模板文件或 php/smarty 替换过程中是否有错误。
【解决方案2】:

查看您的 Apache 错误日志(通常可在 /var/log/httpd/error_log 找到,尽管差异很大)。它将包含有关服务器错误的更多信息。

【讨论】:

  • 其他 error_log 文件不包含任何关于该错误的错误消息。
  • 这很不寻常。我建议您确保查看正确的文件;虚拟主机可以有自己的错误日志等。
【解决方案3】:

检查以确保所有 .htaccess 文件都是正确的(语法方面)。

【讨论】:

    【解决方案4】:

    刚好发生在我身上,想写下解决方案。

    配置的 Smarty 缓存目录 (/var/cache/Smarty) 配置了错误的权限,apache 进程需要在该目录中创建文件。

    这是您使用 compile_dir 指令设置的目录。

    顺便说一句,error_log 文件没有显示任何有关此错误的信息,Firebug 显示 500 内部服务器错误。

    【讨论】:

      【解决方案5】:

      我可以通过检查里面的error.log文件来获取错误详细信息

      /var/log/apache2

      在 ubuntu 16.04 中

      【讨论】:

        猜你喜欢
        • 2019-01-17
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        • 2018-01-06
        相关资源
        最近更新 更多