Hosting PHP i MySQL: 7 wymagań własnej aplikacji
Hosting PHP i MySQL wybierz na podstawie wymagań konkretnej aplikacji: wersji interpretera dla WWW i terminala, rozszerzeń, silnika bazy oraz sposobu uruchamiania zadań. Sam napis „PHP i nielimitowane bazy” nie potwierdza zgodności. Własna aplikacja może potrzebować Composera, zmiany katalogu publicznego lub procesów, których zwykły pakiet nie pozwala utrzymywać.
Porównaj usługi
Najpierw przygotuj krótką specyfikację z wykonawcą, potem porównuj dostawców. Poniżej przechodzimy przez tę czynność na przykładzie niewielkiego systemu obsługi zapytań. Nie jest to kolejny poradnik wyboru WordPressa: liczą się zależności Twojego kodu i sposób wdrożenia.

W tym poradniku
- Hosting PHP: 7 sprawdzalnych wymagań aplikacji
- Przykład: panel zapytań, eksport CSV i codzienny raport
- Dlaczego PHP w przeglądarce może być inne niż w terminalu?
- Praktyczny przykład: WWW działa, a Composer zgłasza brak zgodności
- MySQL i MariaDB: podobieństwo nazwy nie zastępuje próby
- Hosting PHP: Composer, katalog public i aktualizacje
- Cron to nie stale działająca kolejka
- Jak zakończyć ocenę oferty bez zgadywania?
Hosting PHP: 7 sprawdzalnych wymagań aplikacji
Poproś wykonawcę o pliki composer.json i composer.lock, instrukcję uruchomienia, wymagania bazy oraz listę zadań w tle. Plik lock zapisuje wybrane wersje pakietów; nie wystarczy sama informacja, że program „korzysta z Composera”. Zapisz także obsługiwaną wersję aplikacji i termin jej aktualizacji.
| Warstwa | Co potwierdzić | Przykład odpowiedzi, która pomaga |
|---|---|---|
| PHP WWW | Zakres wersji i rozszerzenia | Wymagana gałąź z pliku projektu oraz PDO MySQL i mbstring |
| PHP CLI | Wersja i ścieżka interpretera dla poleceń | Osobna komenda wskazana przez operatora, zgodna z projektem |
| Baza | Silnik, wersja, kodowanie, uprawnienia | MySQL 8.4 lub odrębnie przetestowana wersja MariaDB |
| Wdrożenie | SSH, Composer lub gotowy pakiet z zależnościami | Udokumentowana metoda aktualizacji z pliku lock |
| Katalog WWW | Możliwość wskazania katalogu publicznego | Domena udostępnia tylko folder public aplikacji |
| Zadania | Cron lub stały proces | Eksport uruchamiany okresowo; nie bezterminowy worker |
| Odtworzenie | Pliki, baza i sposób przywrócenia | Spójny komplet oraz osoba odpowiedzialna za kontrolę wyniku |
Wersja „od 5.6 do 8.5” w ofercie nie oznacza, że wszystkie gałęzie mają ten sam stan wsparcia. Z oficjalnego kalendarza PHP odczytanego 30.10.2026 wynika m.in. wsparcie bezpieczeństwa PHP 8.3 do końca 2027 r. i PHP 8.4 do końca 2028 r. Wybieraj gałąź obsługiwaną przez aplikację i producenta, a nie najstarszą wersję, na której kod udało się kiedyś uruchomić.
Przykład: panel zapytań, eksport CSV i codzienny raport
Modelowa aplikacja przechowuje zapytania klientów, zapisuje załączniki i raz dziennie przygotowuje raport. Jej wykonawca określił PHP 8.3 lub nowszą zgodną wersję z gałęzi 8, PDO MySQL i mbstring. Używa MySQL 8.4, kodowania utf8mb4 oraz jednego krótkiego zadania uruchamianego przez cron. To jawny przykład wymagań, nie opis wdrożonego systemu klienta.
Fragment composer.json może wyglądać tak:
{
"require": {
"php": "^8.3",
"ext-pdo": "*",
"ext-pdo_mysql": "*",
"ext-mbstring": "*"
}
}Nie dopisuj rozszerzeń na podstawie nazwy aplikacji. Wymagania generatora PDF, pracy z obrazami albo integracji mogą być inne. Jeśli projekt wymaga programu systemowego, którego nie da się zainstalować na koncie, ogólna zgodność PHP nie rozwiązuje problemu. Uzyskaj nazwę, wersję i sposób uruchamiania tej zależności przed wyborem planu.
Dla tak określonego projektu gotowy hosting PHP może wystarczyć, jeśli obsługuje cały zestaw, zadanie mieści się w jego ograniczeniach, a dane mają bezpieczny katalog. Jeśli potrzebny jest stale działający worker, niestandardowy serwis lub uprawnienia systemowe, sprawdź odpowiednią usługę aplikacyjną albo VPS. Rozdzielenie hostingu i VPS pomaga przypisać także obowiązek administracji.
Dlaczego PHP w przeglądarce może być inne niż w terminalu?
Panel może zmieniać interpreter dla jednej domeny, natomiast komenda php w SSH może wskazywać inną instalację i konfigurację. Cron również może używać innej ścieżki. Nie uznawaj poprawnego ekranu startowego aplikacji za sprawdzenie Composera i zadań okresowych.
Na własnym koncie testowym wykonawca może zacząć od odczytowych poleceń:
php -v
php -m
composer check-platform-reqs --lock --no-devPierwsze dwa pokazują wersję i moduły CLI. Ostatnie sprawdza wymagania zapisane w pliku lock; polecenie uruchamiaj w katalogu właściwego projektu. Jeżeli operator wymaga innej komendy PHP lub uruchomienia composer.phar wskazanym interpreterem, użyj dokładnie jego ścieżki. Nie zgaduj jej po przykładzie z innej firmy. Pierwsze połączenie i sprawdzenie narzędzi opisuje instrukcja wyboru hostingu z SSH.
Wynik CLI trzeba zestawić z konfiguracją WWW. Poproś o potwierdzenie wersji i rozszerzeń domeny albo sprawdź ograniczony raport diagnostyczny w chronionej kopii testowej. Nie zostawiaj publicznego phpinfo(): potrafi ujawnić dużo więcej konfiguracji, niż potrzeba do wyboru hostingu. Po kontroli usuń plik diagnostyczny.
Brakującego rozszerzenia nie naprawiaj przez --ignore-platform-reqs. Taka opcja pomija wymagania podczas instalowania pakietów; nie dodaje modułu do serwera i nie dowodzi, że aplikacja będzie działać. Potrzebne jest udostępnienie zależności, zmiana zgodnej konfiguracji lub wybór innej usługi.

Praktyczny przykład: WWW działa, a Composer zgłasza brak zgodności
W opisanym panelu zapytań aplikacja wymaga PHP z zakresu ^8.3, PDO MySQL i mbstring. Załóżmy, że domena działa na PHP 8.4, natomiast domyślna konsola używa PHP 8.1 bez mbstring. Strona startowa może się otworzyć, a kontrola Composera uruchomiona w powłoce słusznie odrzuci środowisko. Nie jest to sprzeczny wynik testu tej samej konfiguracji: sprawdzasz dwa różne procesy.
Na odizolowanej kopii wykonawca może utworzyć krótki plik diag-wymagania.php w katalogu obsługiwanym przez testową domenę. Najpierw ogranicza dostęp do całej kopii, np. autoryzacją lub właściwą listą adresów. Niepublikowany adres ani nietypowa nazwa pliku nie są zabezpieczeniem. Jeżeli host nie pozwala bezpiecznie ograniczyć raportu, poproś o potwierdzenie tych wartości przez pomoc zamiast wystawiać diagnostykę publicznie.
<?php
header('Content-Type: application/json; charset=utf-8');
echo json_encode([
'php' => PHP_VERSION,
'sapi' => PHP_SAPI,
'pdo_mysql' => extension_loaded('pdo_mysql'),
'mbstring' => extension_loaded('mbstring'),
], JSON_PRETTY_PRINT);
Otwórz chroniony adres przez przeglądarkę i zapisz cztery wskazane wyniki. Ten skrypt nie pokazuje haseł, zmiennych środowiska ani pełnego phpinfo(), lecz informację o wersji nadal należy chronić. Następnie w katalogu właściwego projektu porównaj je z php -v, php -m oraz kontrolą composer check-platform-reqs --lock --no-dev.
| Kontrola w przykładzie | WWW | Domyślne CLI |
|---|---|---|
| Wersja PHP | 8.4 | 8.1 |
| PDO MySQL | obecne | obecne |
| mbstring | obecne | brak |
| Czy spełnia opisany zestaw? | te trzy warunki tak | nie: wersja i mbstring |
Przekaż operatorowi konkretną rozbieżność i nazwę pakietu. Ustal wspieraną ścieżkę PHP dla Composera i crona oraz możliwość dołączenia brakującego modułu. Potem powtórz sprawdzenie i pojedynczy raport aplikacji na testowych danych. Nie zmieniaj globalnego PHP innych witryn i nie obchodź kontroli zależności. Po rozpoznaniu usuń plik diagnostyczny; wersje i metodę odczytu zachowaj w prywatnej dokumentacji projektu.
MySQL i MariaDB: podobieństwo nazwy nie zastępuje próby
W ofercie „baza MySQL” może oznaczać różne wersje lub kompatybilny silnik MariaDB. Potwierdź dokładny produkt i wersję. Własny kod może korzystać z konkretnej składni, funkcji, kolacji, indeksów lub trybu SQL. Nie zamieniaj tych środowisk w ciemno na podstawie deklaracji ogólnej zgodności.
PDO jest interfejsem dostępu do baz, ale wymaga sterownika właściwego dla silnika. Obecność samego PDO bez PDO MySQL nie rozstrzyga, czy program połączy się z bazą. Analogicznie dostępność sterownika nie potwierdza poprawności schematu i zapytań aplikacji.
W testowej bazie można odczytać wersję i tryb SQL:
SELECT VERSION(), @@sql_mode;Próbę importu wykonuj do nowej, oddzielnej bazy z osobnym użytkownikiem. Zanim uruchomisz kopię aplikacji, ustaw jej docelowe połączenie i odetnij produkcyjne integracje. Zgodność potwierdź zapisem, odczytem, sortowaniem i wyszukiwaniem reprezentatywnych danych, w tym polskich znaków. Sam poprawny import nie wykryje każdego problemu zapytania.
Do porównania dopisz maksymalny rozmiar pojedynczej bazy, liczbę połączeń i uprawnienia potrzebne do aktualizacji schematu. Dziesięć baz po 1 GB nie daje jednej bazy 10 GB. Jeśli import lub raport jest ciężki, sprawdź także granice czasu i pamięci. Ich znaczenie wyjaśnia poradnik limitów konta i PHP.
Hosting PHP: Composer, katalog public i aktualizacje
Właściwe pytanie do wykonawcy brzmi: „Jak przygotujesz i wdrożysz powtarzalny pakiet aplikacji?”. Można używać Composera na serwerze, jeżeli hosting daje potrzebny dostęp, pamięć i czas. Można też budować artefakt poza hostingiem w zgodnym środowisku i wgrywać komplet zależności. Druga metoda wymaga potwierdzenia zgodności platformy i procedury aktualizacji; samo FTP jej nie zapewnia.
Przy istniejącym pliku lock polecenie composer install służy do instalowania zapisanych wersji zależności. composer update może zmienić wybrane wersje i plik lock, dlatego nie powinno być przypadkowym krokiem każdej aktualizacji na działającej produkcji. Nowe zależności przygotuj i sprawdź przed wdrożeniem.
Jeżeli aplikacja ma katalog public, potwierdź możliwość ustawienia go jako katalogu dokumentów domeny. Pliki konfiguracyjne, logi, repozytorium i kopie nie powinny stawać się publiczne tylko dlatego, że cały projekt wgrano pod adres WWW. Nie zastępuj poprawnego katalogu sztuczką przekierowującą użytkownika, która pozostawi inne pliki dostępne po bezpośrednim URL.
Cron to nie stale działająca kolejka
Cron uruchamia komendę według harmonogramu. Do raportu raz dziennie może być wystarczający, ale trzeba potwierdzić minimalny interwał, limit czasu i nakładanie zadań. Zadanie powinno zapisywać wynik i błąd w bezpiecznym miejscu oraz nie uruchamiać drugiej kopii tej samej długiej pracy bez kontroli.
Stale działający worker kolejki, WebSocket lub inny proces nadzorowany to inne wymaganie. Dostęp SSH i obecność crona nie gwarantują prawa do pozostawienia takiego procesu na zawsze. Zapytaj, kto go uruchomi po restarcie, jak będzie monitorowany i czy model jest zgodny z warunkami usługi. Nie maskuj problemu nieskończoną pętlą w skrypcie uruchamianym co minutę.
Jak zakończyć ocenę oferty bez zgadywania?
- Zapisz wersję aplikacji, wymagania z plików projektu i rzeczywisty silnik bazy.
- Uzyskaj odpowiedzi operatora dla WWW, CLI, rozszerzeń, katalogu public i zadań.
- Przygotuj chronioną, odseparowaną próbę z osobną bazą i testowymi integracjami.
- Sprawdź wymagania platformy, import, logowanie, zapis rekordu, załącznik i pojedyncze zadanie raportu.
- Zapisz wynik każdej czynności oraz plan wycofania aktualizacji plików i bazy. Kopia bez instrukcji odtworzenia jest niepełnym planem utrzymania.
- Porównaj cenę wyłącznie ofert, które przeszły niezbędne wymagania. Element niepotwierdzony pozostaje pytaniem, nie domyślnym „tak”.
Gdy masz gotową kartę zgodności, wykorzystaj ranking WebBay do porównania kandydatów na hosting WWW. Obecność operatora w rankingu nie gwarantuje zgodności każdego planu z Twoim kodem. Potwierdzona funkcja i odtwarzalny sposób utrzymania są ważniejsze niż etykieta „hosting dla programisty”.
Źródła i data weryfikacji
Dokumentacja odczytana 30.10.2026. Fragment projektu jest przykładem WebBay; polecenia opisują kontrolę własnego środowiska, a nie wykonany test konkretnego operatora.
- PHP — aktualny kalendarz wspieranych gałęzi.
- PHP — interpreter wiersza poleceń.
- PHP — sterowniki PDO.
- Composer — install, update i sprawdzanie rzeczywistej platformy.
- MySQL — kodowanie utf8mb4.
- cPanel — zadania cron i unikanie nakładających się wywołań.
- PHP — sprawdzenie obecności pojedynczego rozszerzenia.
- PHP — znaczenie PHP_VERSION i PHP_SAPI.



