Hosting PHP

Wersja PHP od 5.6 do 8.5 osobno dla każdej domeny, cron, baza MariaDB i Redis - dla Laravela, Symfony i własnych aplikacji PHP.

Hosting PHP to serwer, który wykonuje skrypty PHP i udostępnia im bazę danych. Przy aplikacjach we frameworkach, takich jak Laravel czy Symfony, liczy się więcej niż sama obsługa PHP: wybór wersji interpretera, obsługa reguł przepisywania adresów w .htaccess, zadania cron, dostęp do bazy danych i możliwość zmiany limitów, na przykład pamięci czy czasu wykonania skryptu.

Nasz hosting działa na serwerze OpenLiteSpeed z dyskami NVMe. Wersję PHP wybierasz osobno dla każdej domeny - od 5.6 do 8.5, domyślnie 8.3. Baza MariaDB jest dostępna przez localhost, zadania cron ustawisz w panelu DirectAdmin we wszystkich pakietach, a Redis jako cache działa dla PHP do 8.4. Limity z php.ini zmieniasz samodzielnie w panelu.

Uczciwie o granicach: hosting współdzielony dobrze obsługuje aplikacje, które odpowiadają na żądania HTTP i wykonują zadania z crona. Jeśli Twoja aplikacja potrzebuje stale działających procesów w tle, własnych usług albo niestandardowej konfiguracji serwera, lepszym wyborem będzie serwer VPS - piszemy o tym niżej.

Który pakiet wybrać?

Hosting 20GB (20 GB, 99 zł netto za 1. rok, odnowienie 119 zł netto) - Aplikacja we frameworku potrzebuje więcej niż prosta strona: katalog vendor z tysiącami plików, cache, logi, bazę danych, a przy większym ruchu więcej jednoczesnych procesów PHP. Pakiet 20 GB ma wyższy limit plików, więcej procesów PHP i więcej mocy procesora niż pakiety do 10 GB, a kopie zapasowe plików i baz danych powstają w nim co 12 godzin z 45-dniową historią. Cena za pierwszy rok obowiązuje przy pierwszym hostingu na koncie. Mniejszy projekt, na przykład prosty panel dla kilku osób albo aplikacja w fazie testów, zmieści się w pakiecie Hosting 10 GB (36 zł netto za 1. rok, odnowienie 79 zł netto). Przy kilku aplikacjach albo większym ruchu wybierz Hosting 50 GB (199 zł netto za 1. rok, odnowienie 239 zł netto). Jeśli aplikacja potrzebuje własnych usług, stale działających workerów kolejek albo pełnej kontroli nad konfiguracją, wybierz serwer VPS.

Ile kosztuje hosting PHP? Pakiety i limity

Ceny netto za rok, do których doliczamy 23% VAT. Promocyjna cena pierwszego roku obowiązuje przy pierwszym hostingu na koncie. Dla aplikacji PHP poza miejscem na dysku warto porównać liczbę procesów PHP, pamięć dla procesu, limit plików i liczbę baz danych - te parametry decydują, czy framework działa płynnie.

Ile kosztuje hosting PHP? Pakiety i limity
PakietHosting 10 GBHosting 20 GBHosting 50 GBHosting 100 GB
Cena za 1. rok (netto)36 zł99 zł199 zł299 zł
Odnowienie za rok (netto)79 zł119 zł239 zł399 zł
Wersje PHP5.6 - 8.55.6 - 8.55.6 - 8.55.6 - 8.5
Redis Cache (PHP do 8.4)taktaktaktak
Miejsce na dysku10 GB NVMe20 GB NVMe50 GB NVMe100 GB NVMe
Bazy danych MySQL102050bez limitu
Liczba domen2050bez limitubez limitu
Liczba rdzeni procesora1234
Liczba jednoczesnych procesów PHP/CRON2050100150
Maksymalne użycie pamięci przez proces PHP1 GB1 GB1 GB1 GB
Limit ilości plików na koncie500 0001 000 0001 000 0002 000 000
Odczyt z dysku I/O100 MB/s100 MB/s150 MB/s150 MB/s
Ilość odczytów z dysku IOPS2048/s2048/s5120/s5120/s
Maksymalny czas wykonywania zapytania SQL120s120s120s120s
Kopie zapasoweco 24hco 12hco 12hco 6h
Przechowywanie kopii zapasowych30 dni45 dni45 dni60 dni

Redis działa dla PHP od 5.6 do 8.4 - w PHP 8.5 rozszerzenie Redis jeszcze się nie ładuje.

Jakie wersje PHP są dostępne na hostingu?

Na hostingu dostępne są wersje PHP 5.6, 7.2, 7.3, 7.4, 8.1, 8.2, 8.3, 8.4 i 8.5, a domyślnie ustawiona jest 8.3. Wersję wybierasz osobno dla każdej domeny w panelu DirectAdmin, w zaawansowanych funkcjach, w opcji „Wersja PHP (per domena)”. Dzięki temu nowa aplikacja może działać na PHP 8.4, a stary system na tym samym koncie - na wersji, której wymaga. Pamiętaj, że wersje do 8.1 włącznie nie otrzymują już poprawek bezpieczeństwa od twórców PHP, dlatego zostawiaj je tylko dla aplikacji, których nie da się szybko zaktualizować.

Jak uruchomić Laravel na hostingu z katalogiem public_html?

Laravel oczekuje, że katalogiem głównym strony będzie jego folder public, a na hostingu katalogiem głównym domeny jest domains/twojadomena.pl/public_html. Standardowe i bezpieczne rozwiązanie wygląda tak: cały projekt wgrywasz do osobnego katalogu obok public_html, na przykład domains/twojadomena.pl/laravel, a do public_html kopiujesz tylko zawartość folderu public (index.php, .htaccess, pliki CSS, JS i obrazy). Następnie w public_html/index.php poprawiasz ścieżki zaczynające się od __DIR__.'/../' tak, żeby wskazywały katalog projektu, na przykład __DIR__.'/../laravel/vendor/autoload.php' i __DIR__.'/../laravel/bootstrap/app.php'. Dzięki temu plik .env, kod aplikacji i katalog storage nie są dostępne z przeglądarki.

Jak ustawić Symfony i inne aplikacje z front controllerem?

Symfony i większość nowoczesnych frameworków PHP działa według tego samego wzorca: wszystkie żądania trafiają do jednego pliku index.php w katalogu public, czyli tak zwanego front controllera. W Symfony postępujesz jak w Laravelu - zawartość public trafia do public_html, a w index.php poprawiasz ścieżkę do pliku vendor/autoload_runtime.php w katalogu projektu. Przekierowanie wszystkich adresów do index.php realizują reguły .htaccess: RewriteEngine On, warunki RewriteCond %{REQUEST_FILENAME} !-f oraz !-d i reguła RewriteRule ^ index.php [L]. Serwer OpenLiteSpeed wykonuje reguły RewriteEngine, RewriteCond, RewriteRule i Redirect z pliku .htaccess, więc standardowe pliki .htaccess dostarczane z frameworkami działają.

Czego nie obsługuje .htaccess na OpenLiteSpeed?

OpenLiteSpeed nie wykonuje dyrektyw Require, Deny from i Allow from ani zabezpieczenia hasłem z pliku .htaccess. To ważne przy aplikacjach PHP: nie chroń plików konfiguracyjnych, logów ani kopii bazy regułą Deny w .htaccess, bo taka reguła nie zadziała. Wrażliwe pliki trzymaj poza public_html - dokładnie tak, jak opisaliśmy przy Laravelu. Przekierowanie na HTTPS i wybór adresu z www lub bez www ustawisz w ustawieniach domeny w DirectAdmin. Listowanie zawartości katalogów jest na serwerze wyłączone.

Jak połączyć aplikację PHP z bazą danych MariaDB?

Bazę danych tworzysz w DirectAdmin w sekcji „MySQL Management” przyciskiem „Create new Database”. Panel dodaje do nazwy bazy przedrostek z nazwą konta, na przykład konto_aplikacja, i od razu tworzy użytkownika z uprawnieniami. Serwerem baz danych jest MariaDB, zgodna z MySQL, więc w Laravelu ustawiasz w pliku .env DB_CONNECTION=mysql i DB_HOST=localhost, a w Symfony adres DATABASE_URL z hostem localhost. Zdalne połączenia z bazą z zewnątrz są domyślnie zamknięte ze względów bezpieczeństwa. Do przeglądania tabel i importu danych służy phpMyAdmin, który otworzysz z panelu przyciskiem przy bazie.

Jak ustawić cron dla Laravela i innych aplikacji PHP?

Zadania cykliczne ustawiasz w DirectAdmin w zaawansowanych funkcjach, w sekcji „Cron Jobs” - cron jest dostępny we wszystkich pakietach. Harmonogram Laravela wymaga jednego zadania uruchamianego co minutę, które wywołuje polecenie php z plikiem artisan i argumentem schedule:run, na przykład php /home/nazwakonta/domains/twojadomena.pl/laravel/artisan schedule:run. Pamiętaj, że cron uruchamia PHP z wiersza poleceń, którego wersja nie musi być taka sama jak wersja ustawiona dla domeny - jeśli aplikacja wymaga konkretnej wersji, zapytaj nas o właściwą ścieżkę do PHP. Zadania cron wliczają się do limitu jednoczesnych procesów PHP i CRON w pakiecie.

Jak zmienić limity PHP i włączyć Redis?

Najczęściej zmieniane ustawienia z php.ini, czyli limit pamięci (memory_limit), maksymalny rozmiar wgrywanego pliku (upload_max_filesize i post_max_size) oraz czas wykonania skryptu (max_execution_time), zmienisz samodzielnie w panelu, bez kontaktu z nami. Górne granice wynikają z limitów pakietu, które znajdziesz w tabeli na stronie hostingu WWW. Redis jako cache i magazyn sesji jest dostępny we wszystkich pakietach dla PHP do 8.4 - w PHP 8.5 rozszerzenie Redis jeszcze się nie ładuje. Listę załadowanych rozszerzeń PHP sprawdzisz funkcją phpinfo(); jeśli czegoś brakuje albo chcesz włączyć Redis, napisz do nas.

Kiedy aplikacja PHP potrzebuje serwera VPS zamiast hostingu?

Serwer VPS jest lepszy, gdy aplikacja potrzebuje procesów działających bez przerwy, na przykład workerów kolejek uruchamianych przez supervisora, serwera WebSocket, własnej wersji bazy danych, niestandardowych rozszerzeń PHP albo pełnego dostępu administratora. Na hostingu kolejki Laravela obsłużysz z crona poleceniem queue:work z opcją --stop-when-empty, co wystarcza przy umiarkowanej liczbie zadań. Przy większej skali sprawdź serwery VPS - serwer możemy też administrować za Ciebie. Jeśli Twoim projektem jest WordPress, zobacz hosting WordPress.

Co dostajesz

  • PHP 5.6, 7.2, 7.3, 7.4, 8.1, 8.2, 8.3, 8.4 i 8.5 - osobno dla każdej domeny (domyślnie 8.3)
  • Serwer OpenLiteSpeed wykonujący reguły RewriteRule i Redirect z .htaccess
  • Baza MariaDB zgodna z MySQL, połączenie przez localhost, phpMyAdmin w panelu
  • Zadania cron w panelu DirectAdmin we wszystkich pakietach
  • Redis jako cache (PHP do 8.4)
  • Limity php.ini (pamięć, czas wykonania, rozmiar wgrywanych plików) zmieniane w panelu
  • Dyski NVMe i izolacja kont CloudLinux CageFS
  • FTP z szyfrowaniem TLS
  • Automatyczne kopie zapasowe plików i baz danych co 24, 12 lub 6 godzin, zależnie od pakietu

Najczęstsze pytania

Jaką wersję PHP ustawić dla Laravela lub Symfony?

Ustaw wersję wymaganą przez wydanie frameworka, którego używasz - minimalną wersję PHP podaje dokumentacja Laravela i Symfony dla każdego wydania. Nowsze wydania frameworków wymagają PHP z gałęzi 8.x, dlatego w praktyce wybierasz 8.3 (domyślną na naszym hostingu) albo 8.4. Wersję zmieniasz samodzielnie w DirectAdmin, osobno dla każdej domeny.

Czy mogę mieć różne wersje PHP dla różnych domen?

Tak. Wersję PHP ustawiasz osobno dla każdej domeny w panelu DirectAdmin, w opcji „Wersja PHP (per domena)”. Na jednym koncie możesz więc uruchomić nową aplikację na PHP 8.4 i starszy system na PHP 7.4.

Jak ustawić katalog public jako główny katalog strony?

Katalogiem głównym domeny na hostingu jest public_html. Projekt wgraj do osobnego katalogu obok public_html, a do public_html skopiuj zawartość folderu public i popraw w index.php ścieżki do katalogu projektu. Pliki aplikacji, w tym .env, pozostają wtedy niedostępne z przeglądarki.

Jak wgrać aplikację PHP z katalogiem vendor?

Przygotuj aplikację z zależnościami na swoim komputerze, spakuj ją do archiwum ZIP i wgraj przez menedżer plików w DirectAdmin albo przez FTP z szyfrowaniem TLS, a potem rozpakuj na serwerze. Katalog vendor zawiera wiele plików, dlatego przy dużych projektach sprawdź limit liczby plików pakietu w tabeli na stronie hostingu WWW. Jeśli przenosisz działającą aplikację od innego dostawcy, możesz skorzystać z bezpłatnej migracji.

Czy .htaccess z Laravela i Symfony działa na OpenLiteSpeed?

Tak, w zakresie przepisywania adresów - serwer wykonuje reguły RewriteEngine, RewriteCond, RewriteRule i Redirect. Nie działają natomiast dyrektywy Require, Deny from, Allow from ani hasła z .htaccess, dlatego pliki, których nie chcesz udostępniać, trzymaj poza public_html.

Czy mogę połączyć się z bazą danych z zewnątrz?

Zdalne połączenia z bazą danych są domyślnie zamknięte ze względów bezpieczeństwa. Aplikacja na hostingu łączy się z bazą przez localhost, a dane przeglądasz i importujesz w phpMyAdmin, który otworzysz z panelu DirectAdmin.

Czy na hostingu uruchomię kolejki Laravela (queue:work)?

Tak, ale nie jako proces działający bez przerwy. Ustaw zadanie cron, które co minutę uruchamia queue:work z opcją --stop-when-empty - worker przetworzy oczekujące zadania i zakończy działanie. Jeśli kolejka musi działać stale albo zadań jest bardzo dużo, wybierz serwer VPS.

Czy Redis działa w PHP 8.5?

Jeszcze nie - rozszerzenie Redis ładuje się w PHP od 5.6 do 8.4, a w PHP 8.5 jeszcze nie działa. Jeśli aplikacja korzysta z Redisa jako cache albo magazynu sesji, ustaw dla domeny PHP 8.4 lub 8.3.

Poradniki z naszego bloga

Zobacz również