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 ? 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)
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 .
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