【问题标题】:symfony apache configuration error, controller not getting calledsymfony apache配置错误,控制器没有被调用
【发布时间】:2012-02-05 17:38:16
【问题描述】:

我按照getting started 教程中的说明配置了我的/etc/apache/httpd.conf

# Be sure to only have this line once in your configuration
NameVirtualHost 127.0.0.1:8080

# This is the configuration for your project
Listen 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
  DocumentRoot "/var/www/innobo/web"
  DirectoryIndex index.php
  <Directory "/var/www/innobo/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /var/www/symfony/data/web/sf
  <Directory "/var/www/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
 Alias /uploads /var/www/innobo/web/uploads
  <Directory "/var/www/innobo/web/uploads">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

我在网络浏览器中打开localhost:8080,它工作正常。但是当我尝试打开像 localhost:8080/poster 这样的其他东西时,它会抛出一个 404。这不是 symfony 重定向的 404,而是 apache 生成的默认 404!这意味着 apache 没有将请求发送到我的控制器,即/var/www/innobo/web/index.php。我在另一台电脑上试过,效果很好。那里的请求到达控制器,一切都按预期工作。错在哪里?

【问题讨论】:

    标签: php apache symfony1 httpd.conf


    【解决方案1】:

    如果 app.php/poster 正常工作,这可能取决于settings.yml 中的设置(猜测您在后端使用安全模式):

    prod:
      .settings:
        no_script_name:         false
    

    如果这是问题所在,则必须将no_script_name 参数更改为true

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      听起来 mod_rewrite 没有打开/工作。试试localhost:8080/app.php/poster

      您还应该运行 symfony 检查脚本。默认情况下,您可以在 /web/config.php 中找到它,因此您应该可以通过在浏览器中输入 localhost:8080/config.php 来访问它

      【讨论】:

      • 那么肯定是mod_rewrite。查找如何为您使用的任何类型的服务器安装/启用它。
      猜你喜欢
      • 2016-12-03
      • 2013-06-28
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多