Развертывание Symfony на сервере Apache

#php #apache #.htaccess #symfony

Вопрос:

Шаги, которые я сделал, как я понял:

  1. добавьте symfony/apache-пакет, который создает файл .htaccess в общей папке.
  2. Добавьте среду Prod и очистите кэш. Также заменил базу данных по мере необходимости.
  3. Затем я поместил файл .htaccess в корневую папку xampp.

Я использую linux, и путь к symfony-htdocs/suite

Файл htdocs находился в папке suite/public, и я переместил его в папку suite. Я сопоставил его с документами официальной страницы symfony

https://symfony.com/doc/current/setup/web_server_configuration.html#adding-rewrite-rules

Мой .htaccess папки suite-это:

 <VirtualHost *:80>
    # ...
    DocumentRoot /opt/lampp/htdocs/suite/public

    <Directory /opt/lampp/htdocs/suite/public>
        AllowOverride None

DirectoryIndex index.php

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$0 ^(/. )/(.*)::2$
    RewriteRule .* - [E=BASE:%1]

    # Sets the HTTP_AUTHORIZATION header removed by Apache
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]


    RewriteCond %{ENV:REDIRECT_STATUS} =""
    RewriteRule ^index.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]


    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 307 ^/$ /index.php/
        # RedirectTemp cannot be used instead
    </IfModule>
</IfModule>

    </Directory>
</VirtualHost>
 

Теперь Он говорит:

Ошибка сервера!

Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо произошла ошибка в CGI-скрипте.

Если вы считаете, что это ошибка сервера, пожалуйста, свяжитесь с веб-мастером. Ошибка 500 локальный хост Apache/2.4.51 (Unix) OpenSSL/1.1.1 l PHP/8.0.11 mod_perl/2.0.11 Perl/v5.32.1

Комментарии:

1. Вы можете проверить /var/log/apache2/error.log (может быть расположено по-другому в зависимости от вашей настройки)

2. Не знаю, связано ли это. Но проверьте отступы на вкладке с содержимым, которое вы скопировали из .htaccess файла. Также убедитесь, что, поскольку вы скопировали содержимое с виртуального .htaccess хоста, вы удалили .htaccess файл. Это быстрее, так как конфигурация уже загружена в виртуальный хост

3. Так что же мне теперь делать, пожалуйста? Я хотел развернуть приложение symfony, но оно показывает ошибку сервера.

4. «Затем я поместил файл .htaccess в корневую папку xampp». .htaccess, созданный apache-pack?

5. ДА. Это работает. Я использовал symfony 5.3, но . htaccess не работал в xampp, но он работает на моем хост-сервере. Спасибо вам за вашу помощь.