Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony3路由不使用web根目录配置_Php_Symfony_Symfony Routing - Fatal编程技术网

Php Symfony3路由不使用web根目录配置

Php Symfony3路由不使用web根目录配置,php,symfony,symfony-routing,Php,Symfony,Symfony Routing,我正在尝试将一些新的Symfony3应用程序集成到现有的web空间中。在我的webroot/html中,每个应用程序都有自己的目录。这些应用程序中的每一个都可以是任何东西——cakePHP、定制PHP等等。并且每个都可以通过类似localhost/appname的URL进行访问。这种结构是不灵活的,我不能再添加更多的URL模式到vHost或类似的东西 因此,我在/symfony安装了Symfony3,它是/html的同级目录。在/html的内部,我有一个用于我的Symfony应用程序的登录目录:

我正在尝试将一些新的Symfony3应用程序集成到现有的web空间中。在我的webroot/html中,每个应用程序都有自己的目录。这些应用程序中的每一个都可以是任何东西——cakePHP、定制PHP等等。并且每个都可以通过类似localhost/appname的URL进行访问。这种结构是不灵活的,我不能再添加更多的URL模式到vHost或类似的东西

因此,我在/symfony安装了Symfony3,它是/html的同级目录。在/html的内部,我有一个用于我的Symfony应用程序的登录目录:/html/symfonyapp

在/html/symfonyapp/index.php中,我只有一行代码:
require_onceDIR'/../symfony/web/app.php'

在我的Symfony设置中,我有一个名为SymfonyappBundle的包。我在src/SymfonyappBundle/Resources/config/routing.yml中配置了一个路由,用于将对/symfonyapp的调用重定向到这个特定的Bundle

路由无效。呼叫总是以“/”的路由结束,为什么?我觉得这与我的Symfony设置无关,而是与通过/html/Symfonyapp/index.php文件传入的请求有关

非常感谢您的帮助

编辑:我认为列出目录结构很有帮助,因此如下所示:


-/var/www/html我希望我做对了。您的目录结构如下所示:

- /var/www/html   <-- this is your (global) web root 
|- cake-app
|- custom-php-app
|- symfony    <-- the project root for you symfony-app
 |- app/
 |- vendor/
 |- src/
 |- web/          <-- the web root for your symfony-app
  |- .htaccess
  |- app.php      <-- the "boot"-script similar to index.php

-/var/www/html我找到的解决方案是为每个web应用程序添加一个自定义内核。因此,对于我的webroot
/var/www/html
下的每个文件夹,我在Symfony中添加了一个新内核。每个内核都有自己的路由和配置文件,解决了我的路由问题!我按照这个symfony文档设置内核:

App1:

  • webroot:
    /var/www/html/app1/index.php
    中包含典型的app.php代码,用于初始化app1内核:
    $Kernel=new-App1Kernel('dev',true)
  • symfony详细信息:在
    app/config
    中,我为每个内核添加了一个目录,因此这将是
    app/config/app1
    。我将所有配置、路由和服务文件复制到此目录中,并引用应用程序的自定义捆绑包
App2:

  • webroot:
    /var/www/html/app2/index.php
    中包含典型的app.php代码,用于初始化App1内核:
    $Kernel=new-App2Kernel('dev',true)
  • symfony详细信息:在
    app/config
    中,我为每个内核添加了一个目录,因此这将是
    app/config/app2
    。我将所有配置、路由和服务文件复制到此目录中,并引用应用程序的自定义捆绑包,并将对捆绑包的任何引用更改为相应的捆绑包

对于这个痛苦的评论过程,我深表歉意。我已经在原来的帖子中添加了dir结构。问题不是我找不到symfony目录。但我只能访问默认路由,不能访问任何自定义路由。所有内容都是通过symfony中的默认路径传输的。在这种情况下,请尝试将内容从web移动到symfonyapp。您可能需要在de app.php中调整一些路径,例如自动加载器的位置。在路径的开头添加另一个
。/
就足够了。如果htaccess不起作用,并且没有使用app.php代替索引。尝试将其内容复制到index.php(为了安全起见,请将.htaccess更新为指向index.php)。