Jak wdrożyć Symfony2 na współdzielonym hostingu?

Chcę uzyskać dostęp do mojej aplikacji symfony w production env ( http://www.sample.com/amateur1/web/app.php) z tego adresu url http://www.sample.com/amateur1 .

Aby to zrobić przeniosłem .plik htacces do http://www.sample.com/amateur1/.htaccess z tą zawartością:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /web/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

Ale kiedy idę do http://www.sample.com/amateur1 pokazuje błąd 404 i prod.log nie jest zapisany.

Ja tez uzywalem RewriteBase /amateur1/web/ Bo Nie wiem czy RewriteBase ścieżka jest względna do DocumentRoot serwera, lub od ścieżki, gdzie .plik htaccess znajduje się. Wypróbowałem również /amateur1 i /amateur1/ jako RewriteBase z powodu tej odpowiedzi Symfony2: jak wdrożyć w podkatalogu (Apache)

Przy trzech próbach strona wyjątków jest nieczytelna i nie wczytywana. Ale potem dostaję następujący błąd w prod.plik dziennika:

[2013-02-15 02:06:47] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []
Co robię źle ?
Author: Community, 2013-02-15

2 answers

W Twojej konfiguracji apache używa public_html jako głównego dokumentu

Jeśli Symfony2 jest zainstalowany w katalogu /home/u105859802/public_html/amateur1, publiczny katalog Symfony do serwowania to /home/u105859802/public_html/amateur1/web/

Należy użyć

RewriteBase /amateur1/web/

Ale uważaj, to nie jest bezpieczne
musisz chronić swoje katalogi symfony! (konfiguracja jest dostępna)

Dlaczego nie spróbujesz przenieść plików symfony do swojej prywatnej przestrzeni ?
Możesz zmienić nazwę katalogu Symfony na public_html

Zobacz Jak to zrobić w dokumentacji

Więc moja struktura rekomendacji wygląda następująco:

  • /Strona główna / u105859802/
    • sprzedawca
    • src
    • app
    • bin
    • public_html (domyślnie web w symfony2)
 24
Author: Julien Rollin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-23 08:48:32

W większości współdzielonego hostingu nie można zastąpić ustawień Apache w takim przypadku może być konieczne wprowadzenie reguły przekierowania.plik htaccess

Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]

To zasada, której użyłem w moim projekcie . Może być konieczne podanie pełnych ścieżek do zasobów w inny sposób, w jaki nie zostaną one załadowane .

 0
Author: kiran Mohan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-12 05:55:36