DirectAdmin
Wtyczka PHPRay do DirectAdmina daje każdemu kontu na serwerze własny widok wydajności w panelu, a administratorowi przegląd całego serwera. To panelowa część Host Edition; samo śledzenie zapewnia rozszerzenie i collector, które instalujesz najpierw (hosting współdzielony).
Stan: 0.1.6, wcześnie. Wtyczka chodziła na produkcyjnym serwerze CloudLinux z DirectAdminem i PHP 7.4 w panelu, przeciwko kolektorowi 0.15.2, i oba widoki pokazują prawdziwe dane. Przełącznik per konto był na tym serwerze sprawdzony: wyłączenie znika rozszerzenie z php -m, włączenie je przywraca, a skrypt odmawia każdego konta, którego DirectAdmin nie jest właścicielem. Nie przeszła jeszcze pełnego wdrożenia u klientów, więc traktuj ją jak pilota: włącz najpierw na własnym koncie.
Co widzi klient
Wydajność serwisu dla każdej z jego domen:
- żądania, błędy, opóźnienie p95 i żądania z N+1 dla ostatnich 24 godzin i 7 dni,
- najwolniejsze strony z liczbą żądań i p95,
- odciski wolnych zapytań SQL, podział na wtyczki i motywy, ostatnie błędy,
- diagnoza opisana po ludzku, z oceną kondycji,
- a switch to turn tracing off for that site, and "profile this URL prefix for
N minutes" — both written to the account's
.user.ini, nothing else, - on CloudLinux with CageFS, a switch that turns PHPRay itself on or off for the whole account: it writes the extension's ini into the account's own PHP scan directory inside its cage and recycles that account's PHP workers. An account where the extension is not loaded sees a card saying so with a button, instead of pages of zeros.
Co widzi administrator
Stan i wersję collectora, przegląd całego serwera z ostatniej doby, najwolniejsze domeny wg p95 i wg liczby żądań, najbardziej obciążone konta, aktywne alerty, wolne zapytania z całego serwera oraz używane wersje PHP. Widok administratora jest tylko do odczytu.
Wymagania
- DirectAdmin z menedżerem wtyczek (panel uruchamia strony własnym
/usr/local/bin/php, obecnie PHP 7.4 — pod to celuje wtyczka), phpray-collectorw wersji 0.15 lub nowszej działający na tym samym serwerze, z niepustym[auth] secretw/etc/phpray/collector.toml(wtyczka podpisuje nim krótkotrwałe tokeny JWT i ogranicza każdego klienta do jego własnych domen),- rozszerzenie zainstalowane dla wersji PHP używanych przez konta, ze śledzeniem wyłączonym domyślnie i włączanym per konto (
install.shrobi to na CloudLinuksie: zob. hosting współdzielony).
Instalacja
Pobierz archiwum wtyczki — jest na licencji Apache-2.0, jak reszta rdzenia:
cd /usr/local/directadmin/plugins
curl -fsSLO https://phpray.dev/dl/phpray-directadmin.tar.gz
tar xzf phpray-directadmin.tar.gz # unpacks into ./phpray/
/usr/local/directadmin/plugins/phpray/scripts/install.sh
To samo archiwum można wgrać w menedżerze wtyczek DirectAdmina; ma phpray/ na wierzchu, czyli w kształcie, którego menedżer oczekuje. Każde wydanie trzyma też kopię z numerem wersji pod phpray.dev/dl/.
Skrypt ustawia prawa i właścicieli plików, tworzy conf/phpray.conf z pliku przykładowego, kopiuje do niego [auth] secret collectora i instaluje regułę /etc/sudoers.d/phpray, która pozwala wyłącznie użytkownikowi diradmin uruchomić jeden skrypt edytujący .user.ini klienta (regułę sprawdza visudo przed instalacją). scripts/uninstall.sh cofa wszystko.
Potem sprawdź conf/phpray.conf:
collector_url=http://127.0.0.1:9191
jwt_secret=<the collector's [auth] secret>
profile_minutes=10
Bez jwt_secret widok klienta mówi o tym wprost, zamiast pokazywać puste karty.
Wnioski z pierwszego uruchomienia na produkcji
- Panel wykonuje strony własnym PHP DirectAdmina (dziś 7.4), a nie wersją PHP konta. Pamiętaj o tym, zmieniając kod wtyczki.
- API collectora przyjmuje okno czasu w minutach (
window=1440), nie w godzinach. - Długo żyjące procesy PHP trzymają rozszerzenie załadowane przy starcie: po instalacji lub aktualizacji rozszerzenia przeładuj procesy danego konta zamiast restartować cały serwer WWW.
- Enable the extension per account, never for a whole PHP version. A worker
that loads
phpray.soinstalls its hooks at module startup regardless ofphpray.enabled; usephpray.master_switch=0for anything server-wide. See shared hosting. phpray.enabledin.user.iniis not a way to install or remove the extension: PHP reads per-directory values long after module startup. The per-account switch writes the ini into/var/cagefs/<n>/<account>/etc/cl.php.d/alt-php<NN>/phpray.ini, which the cage mounts at/opt/alt/php<NN>/link/conf/, and then recycles that account'slsphpworkers. PHP Selector does not manage it: the selector only knows CloudLinux's own packaged extensions.
docs-site/docs/usage/directadmin.md · PHPRay 0.14Wersja polska jest tłumaczeniem angielskiego oryginału; parametry i przykłady kodu pozostają w oryginalnej składni.