Renaming a Symfony 2 Web Directory

I have a Symfony 2 project and I cannot rename the web directory for some reason. I am trying to rename it to the public.

According to the manual, I can change the .json composer and make sure the links in app.php and app_dev.php are correct.

But when I run the application / console server: run, it shows

The given document root directory "C:/xampp/htdocs/xxx/app/../web" does nto exists. 

I changed the composer. json, started installing the composer and updating the composer, but still no luck. Here is my composer.json, as you can see, I already added "symfony-web-dir": "public" to the file.

If I rename my shared folder to the network, then everything will be fine, but for some reason I can not do this.

 { "name": "symfony/framework-standard-edition", "license": "MIT", "type": "project", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "require": { "php": ">=5.3.3", "symfony/symfony": "~2.4", "doctrine/orm": "~2.2,>=2.2.3", "doctrine/doctrine-bundle": "~1.2", "twig/extensions": "~1.0", "symfony/assetic-bundle": "~2.3", "symfony/swiftmailer-bundle": "~2.3", "symfony/monolog-bundle": "~2.4", "sensio/distribution-bundle": "~2.3", "sensio/framework-extra-bundle": "~3.0", "sensio/generator-bundle": "~2.3", "incenteev/composer-parameter-handler": "~2.0", "richsage/rms-push-notifications-bundle": "dev-master", "friendsofsymfony/user-bundle": "~1.3", "ircmaxell/password-compat": "~1.0.3" }, "scripts": { "post-install-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ], "post-update-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ] }, "config": { "bin-dir": "bin" }, "extra": { "symfony-app-dir": "app", "symfony-web-dir": "public", "incenteev-parameters": { "file": "app/config/parameters.yml" }, "branch-alias": { "dev-master": "2.4-dev" } } 

}

+6
source share
1 answer

You can really change the directory name to "web", but the server:run command does not expect this. As you can see in the ServerRunCommand source code ( on line 77 ), the "web" directory is hardcoded there.

However, you should solve this problem by simply providing the --docroot option when executing the command:

 bin/console server:run --docroot=C:/xampp/htdocs/xxx/public 

(replace bin/console with the bin/console location, which could be app/console if you are using a Symfony 2 framework)

+14
source

Source: https://habr.com/ru/post/980626/


All Articles