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; mechanizmopen_basedirogranicza 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.