Есть ли у кого-нибудь опыт работы с Symfony на общем хосте (Linux). Я использую Symfony на своем локальном хосте, он отлично работает. Я также установил пакет Apache.
Когда я хочу открыть веб-сайт на веб-сервере, я должен написать www.mywebsite.com/public, чтобы увидеть свой веб-сайт. Я попытался добавить эту строку DocumentRoot /var/www/project/public в файл .htaccess (файл находится внутри общей папки), но это не меняет. Не знаю, как заставить его работать, как на localhost. Проект на сервере - это клон проекта на localhost.
Я попытался скопировать код из документации https://symfony.com/doc/current/setup/web_server_configuration.html в свой файл .htaccess, но это не сработало.
Я также попытался переместить файл .htaccess из общей папки в корень. Но затем я получаю предупреждающее сообщение, что мне нужно связаться с администратором.
Это мой файл .htaccess:
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
@DanCostinel Вы имеете в виду, что я должен назначить свой домен не корневой папке Symfony, а общей папке. Так просто?
Хм, тестировал. Это не работает...
Очевидно, что в папку public, а не в корневую папку Symfony. К вашему приложению обращается app.php (расположенный в каталоге public), когда ваше приложение находится в сети. И да, работает. Если нет, значит, вы делаете что-то еще неправильно.
Если мой домен назначен корневой папке symfony, я могу открыть www.mypage.com/public и увидеть свой веб-сайт. Но когда я назначаю свой домен общедоступной папке, я вижу только пустую страницу. Что могло быть причиной этого?
Это потому, что я использую поддомен? На самом деле мое доменное имя - project.mypage.com
Чтобы понять, в чем проблема, вы должны проверить файл var/logs/prod.log.





Я думаю, вам не следует изменять какое-либо содержимое файла
.htaccessдля установки по умолчанию. Если ваша общая учетная запись может иметь только один домен, и если веб-сайт за доменом является приложением Symfony, то обращайтесь к нему без/public. Но если у вас есть поддомен, только тогда используйте/public. И вы должны заглянуть в файл.composer.json, чтобы увидеть, чтоsymfony_web_dirтакже являетсяpublic. Если нет, измените его наpublic, а затем наcomposer dump-autoload -o, чтобы сообщить об этом композитору.