Я пытаюсь развернуть веб-приложение Symfony на сервере, который предоставляет доступ только к ftp, без возможностей ssh, и я могу поместить файлы только в две корневые папки: /data и /html. Я пытаюсь поместить файлы Symfony в папку html, но htaccess, который создает apache webpack, не работает, работает только локально, и я получаю сообщение об ошибке 500 на экране. Журнал тоже не помогает, только общие сообщения 404.
есть идеи? Я пытаюсь следовать инструкциям из других сообщений, подобных этому, от @runawaycoin, но безуспешно: https://medium.com/@runawaycoin/deploying-symfony-4-application-to-shared-hosting-with-just-ftp-access-e65d2c5e0e3d
Я поместил .htaccess, который пакет Apache Symfony генерирует локально в папку /html, должен быть единственной конфигурацией.
Это код из .htaccess:
# Использовать фронт-контроллер в качестве индексного файла. Он служит запасным решением, когда
# каждая вторая перезаписи/перенаправления терпит неудачу (например, в среде с псевдонимом без
# мод_переписать). Кроме того, это сокращает процесс сопоставления для
# стартовая страница (путь "/"), иначе Apache применит правила перезаписи
# к каждому сконфигурированному файлу DirectoryIndex (например, index.php, index.html, index.pl).
DirectoryIndex index.php
`
# По умолчанию Apache не оценивает символические ссылки, если вы не включили это
# функция в конфигурации вашего сервера. Раскомментируйте следующую строку, если вы
# установите активы как символические ссылки или если у вас возникли проблемы, связанные с символическими ссылками
# при компиляции ресурсов LESS/Sass/CoffeScript.
# Опции +FollowSymlinks
# Отключение MultiViews предотвращает нежелательное согласование, т.е. "/index" не должен разрешаться
# во фронт-контроллер "/index.php", но переписать его в "/index.php/index".
<IfModule mod_negotiation.c>
Параметры - Мультивиды
</ЕслиМодуль>
<IfModule mod_rewrite.c>
RewriteEngine включен
# Определите RewriteBase автоматически и установите его как переменную среды.
# Если вы используете псевдонимы Apache для массового виртуального хостинга или установили
# проект в подкаталоге, перед ним будет стоять базовый путь, чтобы обеспечить правильное
# разрешение файла index.php и перенаправление на правильный URI. Будет
# работать в средах без префикса пути, обеспечивая безопасный, единый размер
# подходит для всех решений. Но так как вам это не нужно в данном случае, вы можете прокомментировать
# следующие 2 строки, чтобы исключить накладные расходы.
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
Правило перезаписи .* - [E=BASE:%1]
# Устанавливает заголовок HTTP_AUTHORIZATION, удаляемый Apache
RewriteCond %{HTTP:Авторизация} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
# Перенаправление на URI без фронт-контроллера для предотвращения дублирования контента
# (с и без `/index.php`). Выполняйте это перенаправление только на начальном
# перезаписать Apache, а не в последующих циклах. В противном случае мы получили бы
# бесконечный цикл перенаправления (запрос -> перезапись во фронт-контроллер ->
# перенаправление -> запрос -> ...).
# Таким образом, если вы получаете сообщение об ошибке "слишком много перенаправлений" или вас всегда перенаправляют
# на стартовую страницу, потому что ваш Apache не показывает REDIRECT_STATUS
# переменная среды, у вас есть 2 варианта:
# - отключить эту функцию, закомментировав следующие 2 строки или
# - используйте Apache >= 2.3.9 и замените все флаги L на флаги END и удалите
# после RewriteCond (лучшее решение)
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
# Если запрошенное имя файла существует, просто укажите его.
# Мы хотим, чтобы Apache обслуживал только файлы, а не каталоги.
# Переписать все остальные запросы во фронт-контроллер.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</ЕслиМодуль>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# Когда mod_rewrite недоступен, мы указываем временное перенаправление
# стартовая страница на фронт-контроллер явным образом, чтобы веб-сайт
# и сгенерированные ссылки все еще можно использовать.
RedirectMatch 307 ^/$ /index.php/
# Вместо этого нельзя использовать RedirectTemp
</ЕслиМодуль>
</ЕслиМодуль>
Теперь я пытаюсь поставить простой index.php с «привет» на не работает :(
Люди из поддержки только сказали мне, что у нас есть только папка /html и папка /data для работы.
Спасибо!