Рейтинг:0

Развертывание приложения Symfony 5 на виртуальном хостинге с доступом только по FTP

флаг ru

Я пытаюсь развернуть веб-приложение 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 для работы.

Спасибо!

флаг kz
«Я получаю сообщение об ошибке 500 на экране. Журнал тоже не помогает, только общие сообщения 404». - Подробную информацию об ошибке 500 необходимо посмотреть в «журнале ошибок». «Сообщения 404» обычно регистрируются в «журнале доступа», а не в «журнале ошибок».
MartynW avatar
флаг de
Вы продвинулись дальше с этим.Я пытаюсь заставить файл .htaccess работать с https на хост-сервере.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.