Przejdź do głównej zawartości

Instalowanie php-fpm i nginx w Debianie 8



Od stabilnego i szybkiego serwera zależy od losu strony. Jego powolna praca i częste spadki mogą odstraszyć zarówno odwiedzających, jak i wyszukiwarki. Ten ostatni obniży także ocenę miejsca hamowania w wynikach wyszukiwania i nie znajdzie się w pierwszej dziesiątce, ale, powiedzmy, w pierwszej 100 dla wszystkich zapytań.

Używanie mnóstwa nginx i php-fpm do konserwacji strony pozwala zwiększyć szybkość ich pracy, a także stabilność systemu jako całości. Ponadto, odmawiając użycia Apache, upraszczamy nieco system, a nawet go chronimy. W końcu, jeśli nie ma apache, to atakujący nie będzie mógł użyć na przykład pliku .htaccess do własnych celów.



Pakiet nginx + php-fpm jest dość łatwy do skonfigurowania i jest obsługiwany przez wiele popularnych CMSów: WordPress, MODX, DLE, różne frameworki. Wszystko to może działać bez dużego apache.

Instalując serwer WWW, nie obywa się bez tworzenia użytkowników. Najlepiej byłoby utworzyć osobnego użytkownika dla każdej witryny. Możemy więc chronić inne witryny, jeśli jeden z użytkowników zostanie zhackowany. Przykłady w tym artykule zostały napisane z uwzględnieniem faktu, że użytkownik utworzył użytkowników zgodnie z instrukcjami .



Najpierw zainstaluj podstawowe moduły: php-fpm, mysql, curl, GD. Cała reszta jest indywidualną koniecznością.

  # aptitude install nginx php5-fpm php5-mysqlnd php5-curl php5-gd 

Pliki konfiguracyjne znajdują się w katalogu / etc / php5 / fpm / .

Treść artykułu:

Konfigurujemy pulę php do obsługi żądań

Początkowo php-fpm ma tylko jedną pulę o nazwie www. Wykorzystamy go jako podstawę dla innych pul.



Otwórz plik konfiguracyjny /etc/php5/fpm/pool.d/www.conf , rozważ kilka zmiennych i wybierz dla nich wartości.

Pierwsza zmienna to nazwa puli. Jest on ujęty w nawiasy kwadratowe i nie może pokrywać się z nazwą żadnego użytkownika istniejącego w systemie.

[www]

Następnie podajemy nazwę użytkownika i jego grupę, w której katalogu domowym znajduje się strona.

  użytkownik = nazwa użytkownika
 group = www-data 

Określ, że pula powinna działać jako gniazdo uniksowe. Zmienna pula $ zostanie zastąpiona nazwą.

listen = /var/run/php-$pool.sock

Określamy użycie trybu statycznego, w którym określona liczba procesów puli jest tworzona podczas uruchamiania fpm. Obsługują wszystkie przychodzące żądania.

pm = static

Dlaczego taki wybór? :) Jest to najbardziej ekonomiczna opcja. Każdy proces puli będzie zajmował ilość pamięci RAM przydzielonej zmiennej memory_limit plus kilka megabajtów na każdy podłączony moduł, pamięć podręczną itp. W wersji statycznej wszystkie żądania będą przetwarzane tylko przez utworzone procesy, a nowe nie będą generowane (i zajmą cenną pamięć). W rezultacie uzyskujemy stałe zużycie pamięci.

Określ wymaganą liczbę procesów obsługujących żądania. Jest wybierany w zależności od obciążenia.

pm.max_children = 3

Zalecam dodanie następujących parametrów na końcu pliku konfiguracyjnego puli.

Katalog do umieszczania plików tymczasowych:

  php_admin_value [upload_tmp_dir] = "/ var / www / username / tmp" 

Katalog do przechowywania plików sesji:

  php_admin_value [session.save_path] = "/ var / www / username / sessions" 

Ze względów bezpieczeństwa dostęp do tych katalogów powinien być dostępny tylko dla użytkownika, z uprawnieniami, od których uruchamiana jest pula php-fpm. Ponadto nie używaj tego samego katalogu do przechowywania plików sesji i plików tymczasowych.

Limit pamięci dla uruchamiania skryptów powinien być wybrany na podstawie wymagań strony. Aby rozpocząć:

  php_admin_value [memory_limit] = 50M 

Określ wymagany parametr, który eliminuje lukę :

  php_admin_value [cgi.fix_pathinfo] = 0 

Zmienne sendmail_path i open_basedir nie są specjalnie wskazane. Zostaną przekazane jako parametry fast-cgi w pliku konfiguracyjnym nginx. W związku z tym dla każdej konkretnej witryny można zdefiniować własne ustawienia. :)

Po określeniu wszystkich niezbędnych parametrów należy ponownie załadować konfigurację php-fpm za pomocą polecenia:

  # ponowne uruchomienie usługi php5-fpm 

Przetwarzanie skryptów php za pomocą nginx

Pozostaje skonfigurować nginx do pracy z php-fpm. Gotowa konfiguracja

  serwer {
  nazwa_serwera example.com ;
  słuchaj 80;
  access_log / var / log / nginx / example.com .access.log;
  error_log / var / log / nginx / example.com .error.log;
  charset utf-8;
  index index.php;
  root / var / www
  location / {
   try_files $ uri $ uri / /index.php$args;
  }
  location ~ \ .php $ {
   try_files $ uri = 404;
   fastcgi_pass unix: /run/php-www.sock;
   fastcgi_index index.php;
   to fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $ katalog_dokumentu $ fastcgi_script_name;
   fastcgi_param PHP_VALUE "sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com";
   fastcgi_param PHP_ADMIN_VALUE "open_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /";
  }
 } 

example.com zamień na swoją domenę.

Opis parametrów :

try_files $uri =404; wyświetli błąd 404 w przeglądarce użytkownika, zamiast komunikatu, podanego w pliku wejściowym , na wypadek wystąpienia tego błędu.

fastcgi_pass - ścieżka do gniazda php-fpm.

  fastcgi_pass unix: /run/php-www.sock; 

Poniższa zmienna ustawia ścieżkę do sendmaila i parametr określający adres e-mail administratora witryny. Zamień mail@example.com na własny .

  fastcgi_param PHP_VALUE "sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com"; 

Lista katalogów dla open_basedir: katalog z witryną, katalog do zapisywania plików tymczasowych, katalog plików sesji.

  fastcgi_param PHP_ADMIN_VALUE "open_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /"; 

Jeśli potrzebujesz przekazać kilka parametrów, powinieneś zrobić to w ten sposób:

  fastcgi_param PHP_ADMIN_VALUE "sendmail_path = / usr / sbin / sendmail -t -i -fmail@example.com \ nopen_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /"; 

Jak widać, parametry są oddzielone podziałem wierszy: \ n .

Zapisujemy wszystkie wprowadzone przez nas zmiany i ponownie uruchamiamy nginx.

  # przeładowanie usługi nginx 


Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 8 ocen, średnia: 2.63 z 5)
Ładowanie ...

” 4 komentarzy " Instalacja php-fpm i nginx na Debianie 8 "

  1. Dzień dobry Dyrektywa root w konfiguracji httpd ze średnikiem powinna prawdopodobnie zostać zamknięta ... a sama konfiguracja powinna być umieszczona w / etc / nginx / sites-enabled z nazwą adresu strony.

  2. Po co tworzyć użytkowników dla każdej witryny osobno?
    Co to znaczy, że jeden użytkownik został zhackowany, a inne witryny będą bezpieczne?

    Czy muszę tworzyć różnych użytkowników, jeśli pracuję w systemie tylko jeden, zaloguj się do systemu przez SSH za pośrednictwem certyfikatu.
    DB również nie wygląda w Internecie.

    Dziękuję.

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.