webh.pl

Aplikacje z katalogiem public/ (Laravel, Symfony) na hostingu

Jak uruchomić framework PHP, którego punkt wejścia jest w katalogu public/, na hostingu współdzielonym przy użyciu reguły w pliku .htaccess.

  • czytania
  • Zaktualizowano:
PHP Strony i aplikacje
Hosting

Nowoczesne frameworki PHP, takie jak Laravel, Symfony czy Zend, trzymają jedyny publiczny plik startowy w katalogu public/. Reszta kodu, konfiguracja i biblioteki leżą poziom wyżej i nie powinny być dostępne z internetu. Na hostingu współdzielonym nie zmieniasz konfiguracji serwera ręcznie, ale prostą regułą w pliku .htaccess sprawisz, żeby strona ruszyła z właściwego katalogu.

Przekierowanie ruchu do katalogu public/ przez .htaccess

W katalogu głównym domeny dodaj plik .htaccess, który przekieruje ruch do public/:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]

Pod adresem domeny serwowana jest wtedy zawartość katalogu public/. Pozostałe pliki aplikacji nadal fizycznie leżą w katalogu strony, dlatego wrażliwe dane (np. .env) warto dodatkowo zabezpieczyć regułami w .htaccess.

Na co jeszcze zwrócić uwagę

  • Wersja PHP: upewnij się, że dla strony jest ustawiona wersja zgodna z frameworkiem. Pokazujemy to w poradniku o wersjach PHP.
  • Dostęp do plików ponad katalogiem: aplikacja zwykle musi czytać pliki z katalogu nadrzędnego (poza public/). Działa to w obrębie Twojego konta; mechanizm open_basedir ogranicza dostęp tylko do cudzych katalogów. Więcej w artykule o technologiach i ograniczeniach.
  • Wgrywanie i uprawnienia: pliki najwygodniej wgrasz przez SSH lub SFTP, co opisujemy w poradniku o dostępie SSH i FTP.

Informacja

Hosting obsługuje aplikacje w PHP. Frameworki wymagające własnego, stale działającego procesu (np. Node.js) albo innego środowiska niż PHP nie uruchomią się na hostingu współdzielonym.