0

我有一些用户想要在他们的主目录下运行他们自己的 Symfony 项目,但我无法让 Symfony 正常工作。在我的 Apache2 配置文件中,我将 userdir 设置为:

用户目录 sfproject/web

但是 DocumentRoot 必须是:

/var/www/sfproject/web

有这个要求是因为当我们将代码部署到生产环境时,我们不想更改 Apache 配置文件。一切都将在该目录下。

问题是当我们进入一个用户目录时:dev.server.com/~asdf

Symfony 在解析 URL “/index.php” (/) 后给出 404 错误:空模块和/或操作。

我不明白出了什么问题。我们希望他们在他们的主目录中看到他们的个人项目。我查看了其他一些人在共享主机环境中设置 Symfony,但这不是共享主机环境。这是一个专用服务器,我有根。感谢您的帮助。这是我的 Apache 配置的相关部分:

UserDir sfproject/web 

<Directory "/usr/share/php/data/symfony/web/sf">
   AllowOverride All
   Allow from All
</Directory>

<VirtualHost *>
   DocumentRoot "/var/www/sfproject/web"
   DirectoryIndex index.php

<Directory "/var/www/sfproject/web">
   AllowOverride All
   Allow from All
</Directory>

  Alias /sf /usr/share/php/data/symfony/web/sf
  <Directory "/usr/data/symfony/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>
4

1 回答 1

0

我认为类似以下的内容更接近解决方案。

<VirtualHost *>

  DocumentRoot "/var/www/sfproject/web"
  DirectoryIndex index.php

  <Directory "/var/www/sfproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  # or is the dir /usr/share/php/data/symfony/data/web/sf  ?
  Alias /sf /usr/share/php/data/symfony/lib/vendor/symfony/data/web/sf
  <Directory "/usr/share/php/data/symfony/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>

</VirtualHost>

我猜你摘录的路径看起来不太好。试试看,让我们知道它是否有效。

于 2011-08-02T05:21:10.013 回答