Jak skonfigurować PHP na nginx z przykładem FASTCGI (php-fpm)
1. Skonfiguruj: Błąd:. Nie znaleziono xml2-config, sprawdź instalację libxml2.
Czy Nginx ma php
Budowanie ze źródła nie jest łatwe, jeśli coś jest nieco inne, i miałem trudności z opcjami katalogu i konfiguracji. Rozpadłem się po Internecie, dopóki nie znalazłem tej strony, która przetłumaczyła się z chińskiego. Nikt inny nie miał rozwiązania. Nie mogłem zacząć PHP FPM, dopóki nie zmieniłem katalogu (punkt 2.Błąd: niezdolna do globalizacji). Miałem inne problemy, ale mogłem je rozwiązać. Nie usuwaj tego, to bardzo przydatne informacje.
Oryginalna strona (jest po chińsku, nie moja strona, ale chcę przyznać kredyt):
(Jest tam jeszcze trochę, możesz przejść na stronę)
1. Skonfiguruj: Błąd:. Nie znaleziono xml2-config, sprawdź instalację libxml2.
apt-get instaluj libxml2-dev
2.OSTRZEŻENIE: Deklaracja Pear_Installer :: Download () powinna być kompatybilna z & pear_downloader :: Download ($ params) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib.Phar /gruszka /instalator.PHP on line 43
OSTRZEŻENIE: Deklaracja PEAR_PACKAGEFILE_PARSER_V2 :: parse () powinien być kompatybilny z pear_xmlparser :: parse ($ data) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib.phar/ gruszka/ pakiet/ parser/ v2.PHP on line 113
[Grusz] archive_tar – już zainstalowany: 1.3.13
[Grusz] console_getopt – już zainstalowany: 1.3.1
[Grusz] struktures_graph- już zainstalowany: 1.0.4
OSTRZEŻENIE: Deklaracja PEAR_TASK_REPLACE :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / zamień.PHP online 31
[Grusz] xml_util – już zainstalowany: 1.2.3
OSTRZEŻENIE: Deklaracja PEAR_TASK_WINDOWSEOL :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / Windowseol.PHP on line 76
OSTRZEŻENIE: Deklaracja PEAR_TASK_UNIXEOL :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / unixeol.PHP on line 76
[Gruszka] – już zainstalowana: 1.9.5
1.Błąd: nie udało się otwierać pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.Conf ‘: brak takiego pliku lub katalogu (2)
Błąd: nie udało się załadować pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.conf ‘
Błąd: inicjalizacja FPM nie powiodła się
PHP-FPM.Confop Copy Files z pliku źródłowego do tej lokalizacji.
CP /root /php-7.0.0alpha1/sapi/fpm/php-fpm.conf/usr/local/etc/php-fpm.conf
2.Błąd: Nie można zglotazyzować ‘/usr/local/none/etc/php-fpm.D/*.conf ‘(ret = 2) od/usr/local/etc/php-fpm.Conf at line 125.
Błąd: nie udało się załadować pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.conf ‘
Błąd: inicjalizacja FPM nie powiodła się
Edytuj/usr/local/etc/php-fpm.Dokument CONF Wprowadzony * .Część conf, zmiana na prawidłową ścieżkę obejmuje = / usr / local / etc / php-fpm.D / *. Conf
Jeśli nie ma/usr/local/etc/php-fpm.D katalog, Utwórz katalog.
3.OSTRZEŻENIE: Nic nie pasuje do wzoru „/usr/local/etc/php-fpm.D/*.conf ‘od/usr/local/etc/php-fpm.Conf at line 125.
BŁĄD:. W pliku konfiguracyjnym nie zostanie określone co najmniej jedna sekcja puli
Błąd: nie udało się przetwarzać konfiguracji
Błąd: inicjalizacja FPM nie powiodła się
CP www.conf.Domyślnie www.conf
4.Błąd: [pula www] nie może dostać GID dla grupy „Nikt”
Błąd: inicjalizacja FPM nie powiodła się
Www.Conf Otwórz pliki, użytkowników i grupy w ustawieniach domyślnych Nginx, zwykle domyślnie to www-data.
1 rok temu
Aby zmaksymalizować wydajność serwera z najwyższą prędkością, przy najmniejszej liczbie zasobów, postanowiłem skompilować PHP 8 ręcznie z minimalnego systemu operacyjnego Linux/UNIX (moja Distro Linux to pakiety oparte na RPM)
Mój system z powodzeniem zasilał PHP 8.0.9 – Z włączonymi Opcache/JIT i innymi kilkoma modułami rozszerzenia PHP. Oto kilka doświadczeń, które mogą zaoszczędzić kilka godzin badań.
1. Przed krokiem (3) – Skonfiguruj i zbuduj php – aby upewnić się, że nie wystąpiły błędy, możesz odwołać się do mojej biblioteki wstępnej.
sudo dnf install \
GCC GCC-C ++ Make CMake Autoconfig \
Zlib Zlib-Devel PCRE PCRE-DEVEL \
libxml2-devel libxslt-devel \
bzip2-devel curl-devel libzip-devel \
sqlite-devel \
systemd-devel \
OpenSsl-Devel \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libxpm libxpm-devel \
freeType-Devel \
GMP-DEVEL \
libldb-devel \
libc-client libc-client-devel \
OpenlDap OpenlDap-Devel \
oniguruma oniiguruma-devel \
Net-SNMP-DEVEL READLINE-DEVEL Unixodbc-Devel \
UW-IMAP UW-IMAP-DEVEL UW-IMAP-STATIC UW-IMAP-UTILS \
libicu-devel \
enchant2 enchant2-devel \
gd gd-devel \
libsodium libsodium-devel \
libtidy libtidy-devel
Nie możesz otrzymać błędu podczas wydawania ./skonfiguruj, make && zrób instalację. Nawet gdy ręcznie budujesz swój pakiet rozszerzenia PHP.
2. W kroku 5 – przed zmodyfikowaniem PHP.INI – możesz dwukrotnie sprawdzić, czy obecny php czyta, który php.plik INI przez to polecenie
php -ini | GREP PHP.ini
# Mój wynik. Różni się od samouczka.
Plik konfiguracyjny (php.ini) ścieżka =>/usr/local/lib
Załadowany plik konfiguracyjny =>/usr/local/lib/php.ini
4 lata temu
Kiedy uruchamiam następujące polecenie, aby uruchomić PHP-FPM:
/usr/lokalny/bin/php-fpm
Mam następujące informacje o błędach:
Nie można globalizować ‘/usr/local/none/etc/php-fpm.D/*.conf ‘(ret = 2) od/usr/local/etc/php-fpm.Conf at line 143.
Aby naprawić ten błąd, zrób:
Zmień ST
Jak skonfigurować PHP na nginx z przykładem FASTCGI (php-fpm)
1. Skonfiguruj: Błąd:. Nie znaleziono xml2-config, sprawdź instalację libxml2.
Czy Nginx ma php
Budowanie ze źródła nie jest łatwe, jeśli coś jest nieco inne, i miałem trudności z opcjami katalogu i konfiguracji. Rozkliniałem się po Internecie, dopóki nie znalazłem tej strony, która przetłumaczyła się z chińskiego. Nikt inny nie miał rozwiązania. Nie mogłem zacząć PHP FPM, dopóki nie zmieniłem katalogu (punkt 2.Błąd: niezdolna do globalizacji). Miałem inne problemy, ale mogłem je rozwiązać. Nie usuwaj tego, to bardzo przydatne informacje.
Oryginalna strona (jest po chińsku, nie moja strona, ale chcę przyznać kredyt):
(Jest tam jeszcze trochę, możesz zdobyć stronę)
1. Skonfiguruj: Błąd:. Nie znaleziono xml2-config, sprawdź instalację libxml2.
apt-get instaluj libxml2-dev
2.OSTRZEŻENIE: Deklaracja Pear_Installer :: Download () powinna być kompatybilna z & pear_downloader :: Download ($ params) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib.Phar /gruszka /instalator.PHP on line 43
OSTRZEŻENIE: Deklaracja PEAR_PACKAGEFILE_PARSER_V2 :: parse () powinien być kompatybilny z pear_xmlparser :: parse ($ data) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib.phar/ gruszka/ pakiet/ parser/ v2.PHP on line 113
[Grusz] archive_tar – już zainstalowany: 1.3.13
[Grusz] console_getopt – już zainstalowany: 1.3.1
[Grusz] struktures_graph- już zainstalowany: 1.0.4
OSTRZEŻENIE: Deklaracja PEAR_TASK_REPLACE :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / zamień.PHP online 31
[Grusz] xml_util – już zainstalowany: 1.2.3
OSTRZEŻENIE: Deklaracja PEAR_TASK_WINDOWSEOL :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / Windowseol.PHP on line 76
OSTRZEŻENIE: Deklaracja PEAR_TASK_UNIXEOL :: init () powinna być kompatybilna z pear_task_common :: init ($ xml, $ fileAttributes, $ lastVersion) w Phar: /// root/php-7.0.0alpha1/gruszka/instalacja-pear-nozlib. phar / gruszka / zadanie / unixeol.PHP on line 76
[Gruszka] – już zainstalowana: 1.9.5
1.Błąd: nie udało się otwierać pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.Conf ‘: brak takiego pliku lub katalogu (2)
Błąd: nie udało się załadować pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.conf ‘
Błąd: inicjalizacja FPM nie powiodła się
PHP-FPM.Confop Copy Files z pliku źródłowego do tej lokalizacji.
CP /root /php-7.0.0alpha1/sapi/fpm/php-fpm.conf/usr/local/etc/php-fpm.conf
2.Błąd: Nie można zglotazyzować ‘/usr/local/none/etc/php-fpm.D/*.conf ‘(ret = 2) od/usr/local/etc/php-fpm.Conf at line 125.
Błąd: nie udało się załadować pliku konfiguracyjnego ‘/usr/local/etc/php-fpm.conf ‘
Błąd: inicjalizacja FPM nie powiodła się
Edytuj/usr/local/etc/php-fpm.Dokument CONF Wprowadzony * .Część conf, zmiana na prawidłową ścieżkę obejmuje = / usr / local / etc / php-fpm.D / *. Conf
Jeśli nie ma/usr/local/etc/php-fpm.D katalog, Utwórz katalog.
3.OSTRZEŻENIE: Nic nie pasuje do wzoru „/usr/local/etc/php-fpm.D/*.conf ‘od/usr/local/etc/php-fpm.Conf at line 125.
BŁĄD:. W pliku konfiguracyjnym nie zostanie określone co najmniej jedna sekcja puli
Błąd: nie udało się przetwarzać konfiguracji
Błąd: inicjalizacja FPM nie powiodła się
CP www.conf.Domyślnie www.conf
4.Błąd: [pula www] nie może dostać GID dla grupy „Nikt”
Błąd: inicjalizacja FPM nie powiodła się
Www.Conf Otwórz pliki, użytkowników i grupy w ustawieniach domyślnych Nginx, zwykle domyślnie to www-data.
1 rok temu
Aby zmaksymalizować wydajność serwera z najwyższą prędkością, przy najmniejszej liczbie zasobów, postanowiłem skompilować PHP 8 ręcznie z minimalnego systemu operacyjnego Linux/UNIX (moja dystrybucja Linux to pakiety oparte na RPM)
Mój system z powodzeniem zasilał PHP 8.0.9 – z włączonym opcache/JIT i innym modułem rozszerzonym PHP. Oto kilka doświadczeń, które może zaoszczędzić kilka godzin badań.
1. Przed krokiem (3) – Skonfiguruj i zbuduj PHP – aby upewnić się, że nie wystąpi błędy, możesz odwołać.
sudo dnf install \
GCC GCC-C ++ Make CMake Autoconfig \
Zlib Zlib-Devel PCRE PCRE-DEVEL \
libxml2-devel libxslt-devel \
bzip2-devel curl-devel libzip-devel \
sqlite-devel \
systemd-devel \
OpenSsl-Devel \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libxpm libxpm-devel \
freeType-Devel \
GMP-DEVEL \
libldb-devel \
libc-client libc-client-devel \
OpenlDap OpenlDap-Devel \
oniguruma oniiguruma-devel \
Net-SNMP-DEVEL READLINE-DEVEL Unixodbc-Devel \
UW-IMAP UW-IMAP-DEVEL UW-IMAP-STATIC UW-IMAP-UTILS \
libicu-devel \
enchant2 enchant2-devel \
gd gd-devel \
libsodium libsodium-devel \
libtidy libtidy-devel
Nie możesz otrzymywać błędu podczas wydawania ./skonfiguruj, make && zrób instalację. Nawet gdy ręcznie budujesz swój pakiet rozszerzenia PHP.
2. W kroku 5 – przed zmodyfikowaniem PHP.INI – możesz dwukrotnie sprawdzić, czy obecny php czyta, który php.plik INI przez to polecenie
php -ini | GREP PHP.ini
# Mój wynik. Różni się od samouczka.
Plik konfiguracyjny (php.ini) ścieżka =>/usr/local/lib
Załadowany plik konfiguracyjny =>/usr/local/lib/php.ini
4 lata temu
Kiedy uruchamiam następujące polecenie, aby uruchomić PHP-FPM:
/usr/lokalny/bin/php-fpm
Mam następujące informacje o błędach:
Nie można globalizować ‘/usr/local/none/etc/php-fpm.D/*.conf ‘(ret = 2) od/usr/local/etc/php-fpm.Conf at line 143.
Aby naprawić ten błąd, zrób:
Zmień ciąg „w tym none/etc/php-fpm.D/*.conf “do” obejmują = etc/php-fpm.D/*.conf “w pliku”/usr/local/etc/php-fpm.conf ”z edytorem tekstu.
Następnie próbuję ponownie uruchomić PHP-FPM i ponownie otrzymałem informacje o błędach:
Nic nie pasuje do wzoru ‘/usr/local/etc/php-fpm.D/*.conf ‘od/usr/local/etc/php-fpm.Conf at line 143.
Aby naprawić ten błąd, zrób:
CP/usr/local/etc/php-fpm.D/www.conf.Domyślne/usr/local/etc/php-fpm.D/www.conf
4 lata temu
CP PHP/PHP.PHP/lib/php opracowywanie ini.ini
CP PHP/ETC/PHP-FPM.conf.domyślne php/etc/php-fpm.conf
CP PHP/ETC/PHP-FPM.D/www.conf.domyślne php/etc/php-fpm.D/www.conf
3 lata temu
W systemie Linux, jeśli chcesz dodać usługę PHP-FPM do usługi systemowej; Łatwo to zrobić, ponieważ PHP oferuje skrypt powiązany:
Po wykonaniu i instalacji; wprowadź pakiet kodu źródłowego SAPI/FPM/init.D.php-fpm; Wpisz kod w systemie Linux.
CP SAPI/FPM/INIT.D.php-fpm /etc /init.D/PHP-FPM
Następnie możesz użyć „php-fpm
7 lat temu
Jeśli otrzymasz błąd „Nie znaleziono”, dodaj dyrektywę „root_dir_location” do bloku lokalizacji PHP i.mi. “Lokalizacja ~* \.php $ < >“, gdzie root_dir_location jest katalogiem root, jak”/usr/share/nginx/html ” .
7 lat temu
w kroku 3, po poleceniu „Sudo przygotuj instalację”
Jeśli występuje problem z gruszką.php.net (https). Musisz zmienić tę linię (z HTTPS na HTTP) w makefile
Pear_installer_url = http: // gruszka.php.NOT/instalacja-pear-nozlib.Phar
11 miesięcy temu
Wielki wysiłek na ten samouczek, dzięki tonowi, oto moje notatki, jeśli mogą pomóc każdemu, biorąc pod uwagę domyślną instalację na kontenerze WSL2
Uwaga: kompozytor dodany do frameworka Laravel.
Nie należy ich kopiować i wkleić, aby być selektywnym, ponieważ obok niektórych poleceń są adnotacje,
Również skomentowałem # niektóre z domyślnych napisanych przez oryginalnego redaktora ze względu na niedopasowanie do mojego obecnego środowiska.
SHA256Sum PHP-X.X.X.smoła.GZ => e847745fd66fc8c57fac993a609fefcded93fddccd225f0620a26bb5ae5753c3
TAR ZXF PHP-X.X.X
sudo apt instal instalacja kompilacji
sudo apt instal -y kompozytor nginx pkgconf libxml2-dev libsqlite3-dev zlib1g-dev
CD PHP-X.X.X
./Configure-enable-fpm–with-Mysqli Make Sudo Make Test Sudo Make Install Sudo CP PHP.INI-Development/USR/Local/LIB/PHP.ini
sudo cp/usr/local/etc/php-fpm.D/www.conf.Domyślne/usr/local/etc/php-fpm.D/www.conf
sudo cp sapi/fpm/php-fpm/usr/local/bin
sudo vim/usr/local/php/php.ini sudo vim/usr/local/etc/php-fpm.D/www.conf sudo vim sapi/fpm/php-fpm.conf sudo cp sapi/fpm/php-fpm.conf/usr/lokalny/itd
/usr/local/bin/php -v sudo/usr/local/bin/php-fpm sudo vim/etc/nginx/sites-dostępny/domyślny
lokalizacja / #root html;
INDEKS #INDEX.Wskaźnik PHP.Indeks HTML.HTM;
>
Lokalizacja ~* \.indeks php $ #fastcgi_index.php;
fastcgi_pass 127.0.0.1: 9000;
Dołącz fastcgi_params;
fastcgi_param script_filename $ dokument_root $ fastcgi_script_name;
fastcgi_param script_name $ fastcgi_script_name;
>
*Restartuj nginx (root/var/www/html) Jeśli ścieżka root nie istnieje, domyślnie jest:/usr/share/nginx/html
sudo nginx -t sudo service nginx
Sudo Service Nginx Stop
Sudo Service nginx start
PHP -FPM musi być w służbie lub zabijać ręcznie PS -AUX | GREP PHP-FPM; zabić
Czy Nginx ma php
- 4 Umiejętności architekta korporacyjnego, których nigdy nie należy przeoczyć, podczas gdy z pewnością jest wiele, które należy do bycia architektem korporacyjnym, jakie umiejętności są absolutne „konieczne”, aby pozostać.
- Falcor vs. GraphQL: Różnice, które mają znaczenie, podczas gdy oba zasadniczo reprezentują dwa podejścia do podobnego celu końcowego, istnieją pewne kluczowe różnice między GraphQL i Falcor .
- Szybkie spojrzenie na język programowania węglowego Carbon to eksperymentalny język programowania zbudowany tak, aby stać na ramionach C ++ – ale z nowym spojrzeniem na bezpieczeństwo pamięci.
- Google dokucza ekspansji generatywnej AI w ramach nowych funkcji generatywnych AI Google, w tym asystenta kodowania, były ściśle powiązane z GCP w wersjach demonstracyjnych w tym tygodniu, a .
- Jest lepszy do kodowania niż platformy niskiego kodu? Chatgpt może napisać kod, ale nie może zintegrować kodu ani tworzyć pomysłów na projekt. Ponadto stanowi ryzyko bezpieczeństwa i licencji. Na razie.
- Kilka prostych strategii zmniejszania redundancji testów oprogramowania Podczas gdy kompleksowe pokrycie testów jest koniecznością, zespoły oprogramowania muszą podjąć świadome wysiłki, aby powstrzymać apartamenty przed staniem się .
- Google podwaja generatywną sztuczną inteligencję z Google I/O 2023, Komentarze Paul Nashawaty Group Group Enterprise Group na temat ulepszeń AI do wyszukiwania Google, zdjęć, map i .
- Eksperci ds. Bezpieczeństwa udostępniają Audyt w chmurze Najlepsze praktyki Audyt w chmurze pozwala organizacjom ocenić wydajność dostawców w chmurze. Eksperci z audytu Shinesa Cambric i Michael Ratemo Talk .
- Wdrożenie aplikacji w Google Cloud Uruchom z Terraform za pomocą Terraform do wdrożenia aplikacji w Google Cloud Run, umożliwia skalowalny proces wdrażania i może zmniejszyć konfigurację .
- Crowdstrike ostrzega przed wzrostem ataków hiperwizora VMware ESXI w miarę wzrostu przyjęcia technologii wirtualizacji przedsiębiorstwa, Crowdstrike zaobserwował wzrost ataków ransomware na serwery .
- Bl00dy Ransomware Gang kieruje szkołami za pośrednictwem PaperCut Flaw Bl00dy Ransomware Gang jest skierowany do szkół poprzez krytyczną wadę wykonania zdalnego kodu obecnego w niezłomnych przypadkach .
- Eksperci kwestionują 1 USD San Bernardino.1m Płatność ransom, podczas gdy żadne usługi bezpieczeństwa publicznego nie zostały zagrożone w ataku ransomware na dział szeryfa hrabstwa San Bernardino, .
- AWS Control Tower ma na celu uproszczenie zarządzania wieloodowodem Wiele organizacji stara się zarządzać ich ogromnym zbiorem kont AWS, ale wieża kontrolna może pomóc. Usługa automatyzuje .
- Rozbij model cen Amazon EKS Istnieje kilka ważnych zmiennych w modelu cenowym Amazon EKS. Wdaj się w liczby, aby upewnić się, że wdrożenie usługi .
- Porównaj EKS vs. Samozwańcze Kubernetes Użytkownicy AWS AWS mają wybór podczas wdrażania Kubernetes: Uruchom go na EC2 lub pozwól Amazonowi zrobić ciężkie podnoszenie z EKS. Widzieć .
Jak zainstalować Linux, Nginx, MySQL, PHP (stos LEMP) w Ubuntu 16.04
Stos oprogramowania LEMP to grupa oprogramowania, której można użyć do obsługi dynamicznych stron internetowych i aplikacji internetowych. Jest to akronim opisujący system operacyjny Linux z serwerem WWW Nginx. Dane backend są przechowywane w bazie danych MySQL, a dynamiczne przetwarzanie jest obsługiwane przez PHP.
W tym przewodniku pokażemy, jak zainstalować stos LEMP na Ubuntu 16.04 Serwer. System operacyjny Ubuntu zajmuje się pierwszym wymogiem. Opiszmy, jak uruchomić resztę komponentów.
Wymagania wstępne
Przed zakończeniem tego samouczka powinieneś mieć na serwerze zwykłe konto użytkownika, z uprawnieniami sudo. Możesz nauczyć się skonfigurować ten typ konta, wypełniając nasz Ubuntu 16.04 Początkowa konfiguracja serwera.
Po uzyskaniu dostępności użytkownika zaloguj się do serwera za pomocą tej nazwy użytkownika. Jesteś teraz gotowy, aby rozpocząć kroki przedstawione w tym przewodniku.
Krok 1: Zainstaluj serwer WWW Nginx
Aby wyświetlić strony internetowe dla odwiedzających naszą witrynę, zastosujemy Nginx, nowoczesny, wydajny serwer WWW.
Wszystkie oprogramowanie, których będziemy używać do tej procedury, będzie pochodzić bezpośrednio z Ubuntu’S Domyślne repozytoria pakietów. Oznacza to, że możemy użyć pakietu zarządzania pakietami Apt, aby zakończyć instalację.
Ponieważ po raz pierwszy korzystamy z APT na tej sesji, powinniśmy zacząć od aktualizacji naszego indeksu pakietu lokalnego. Następnie możemy zainstalować serwer:
Na Ubuntu 16.04, Nginx jest skonfigurowany do uruchomienia podczas instalacji.
Jeśli masz uruchomioną zaporę UFW, jak opisano w naszym wstępnym przewodniku konfiguracji, musisz zezwolić na połączenia z Nginx. Nginx rejestruje się z UFW podczas instalacji, więc procedura jest raczej prosta.
Zaleca się włączenie najbardziej restrykcyjnego profilu, który nadal pozwoli na żądany ruch. Odkąd jużen’T Skonfigurowane SSL dla naszego serwera, w tym przewodniku, będziemy musieli umożliwić ruch w porcie 80.
Możesz to włączyć, wpisując:
Możesz zweryfikować zmianę, wpisując:
Należy zobaczyć ruch HTTP dozwolony w wyświetlanym wyjściu:
WyjścieStatus: Aktywne do działania od------- ---- OpenSSh Zezwalaj na dowolne miejsce nginx http zezwolić na dowolne miejsce openSsh (v6) Pozwól w dowolnym miejscu (v6) nginx http (v6) Pozwól na dowolne miejsce (v6)
Z dodaną nową regułą zapory możesz przetestować, czy serwer jest uruchomiony, uzyskując dostęp do serwera’S nazwa domeny lub publiczny adres IP w Twojej przeglądarce internetowej.
Jeśli nie masz nazwy domeny wskazanej na serwer i nie znasz swojego serwera’S publiczny adres IP, możesz go znaleźć, wpisując jeden z poniższych do terminalu:
To wydrukuje kilka adresów IP. Możesz wypróbować każdy z nich z kolei w przeglądarce internetowej.
Alternatywnie możesz sprawdzić, który adres IP jest dostępny zgodnie z innymi lokalizacjami w Internecie:
Wpisz jeden z adresów, które otrzymujesz w przeglądarce internetowej. Powinno to zabrać do Nginx’S Domyślna strona docelowa:
http: //server_domain_or_ip
Jeśli zobaczysz powyższą stronę, pomyślnie zainstalowałeś Nginx.
Krok 2: Zainstaluj MySQL, aby zarządzać danymi witryny
Teraz, gdy mamy serwer WWW, musimy zainstalować MySQL, system zarządzania bazą danych, aby przechowywać i zarządzać danymi dla naszej witryny.
Możesz to łatwo zainstalować, wpisując:
Zostaniesz poproszony o podanie hasła root (administracyjnego) do użytku w systemie MySQL.
Oprogramowanie bazy danych MySQL jest teraz zainstalowane, ale jego konfiguracja nie jest jeszcze kompletna.
Aby zabezpieczyć instalację, możemy uruchomić prosty skrypt bezpieczeństwa, który zapyta, czy chcemy zmodyfikować pewne niepewne wartości domyślne. Rozpocznij skrypt, wpisując:
Zostaniesz poproszony o wprowadzenie określonego hasła dla konta root MySQL. Następnie zostaniesz zapytany, czy chcesz skonfigurować wtyczkę Validate Hasło .
Ostrzeżenie: Włączenie tej funkcji jest czymś w rodzaju wezwania do osądu. Jeśli są włączone, hasła, które nie’t Dopasuj określone kryteria zostaną odrzucone przez MySQL z błędem. Spowoduje to problemy, jeśli użyjesz słabego hasła w połączeniu z oprogramowaniem, które automatycznie konfiguruje poświadczenia użytkownika MySQL, takie jak pakiety Ubuntu dla phpMyAdmin. Bezpieczne jest pozostawienie sprawdzania sprawdzania poprawności, ale zawsze powinieneś używać silnych, unikalnych haseł do poświadczeń bazy danych.
Odpowiedź y dla tak lub cokolwiek innego, aby kontynuować bez umożliwienia.
Wtyczka sprawdzania hasła może być używana do testowania haseł i poprawy bezpieczeństwa. Sprawdza siłę hasła i umożliwia użytkownikom ustawienie tylko tych haseł, które są wystarczająco bezpieczne. Czy chciałbyś skonfigurować wtyczkę sprawdzania poprawności hasła? Naciśnij y | y dla tak, każdy inny klucz dla nie:
Jeśli ty’VE Włączona walidacja, ty’LL zostanie poproszony o wybranie poziomu sprawdzania poprawności hasła. Pamiętaj, że jeśli wejdziesz 2, W przypadku najsilniejszego poziomu otrzymasz błędy podczas próby ustawienia dowolnego hasła, które nie zawiera liczb, górnych i małych liter oraz znaków specjalnych lub opartych na wspólnych słowach słownika.
Istnieją trzy poziomy zasad sprawdzania poprawności hasła: niską długość> = 8 Średnia długość> = 8, liczba, mieszana obudowa i znaki specjalne silna długość> = 8, liczba, mieszana obudowa, znaki specjalne i plik słownika Wprowadź 0 = niski, 1 = Medium i 2 = silny: 1
Jeśli włączyłeś sprawdzanie poprawności hasła, ty’Pokazano siłę hasła dla istniejącego hasła root i zapytasz, czy chcesz zmienić to hasło. Jeśli jesteś zadowolony ze swojego bieżącego hasła, wprowadź N Do “NIE” na podpowiedzi:
Korzystanie z istniejącego hasła dla root. Szacowana siła hasła: 100 Zmień hasło dla root ? ((Naciśnij Y | Y dla tak, każdy inny klucz dla nie): N
Przez resztę pytań powinieneś nacisnąć Y i uderz Wchodzić Klucz przy każdym podpowiedzi. To usunie niektórych anonimowych użytkowników i testową bazę danych, wyłączy zdalne loginy root i załaduje te nowe reguły, aby MySQL natychmiast szanuje wprowadzone zmiany.
W tym momencie system bazy danych jest teraz skonfigurowany i możemy przejść dalej.
Krok 3: Zainstaluj PHP do przetwarzania
Mamy teraz zainstalowane Nginx, aby obsługiwać nasze strony, a MySQL zainstalowane do przechowywania i zarządzania naszymi danymi. Jednak nadal nie’T mieć wszystko, co może generować dynamiczną zawartość. Możemy użyć do tego PHP.
Ponieważ Nginx nie zawiera natywnego przetwarzania PHP, jak niektóre inne serwery Web, będziemy musieli zainstalować php-fpm, co oznacza “FastCGI Process Manager”. Powiemy Nginx, aby przekazał żądania PHP do tego oprogramowania w celu przetworzenia.
Możemy zainstalować ten moduł, a także pobrać dodatkowy pakiet pomocniczy, który pozwoli PHP komunikować się z naszym zapleczem danych bazy danych. Instalacja przyciągnie niezbędne pliki rdzeniowe PHP. Zrób to, wpisując:
Skonfiguruj procesor PHP
Mamy teraz zainstalowane nasze komponenty PHP, ale musimy dokonać niewielkiej zmiany konfiguracji, aby nasza konfiguracja była bardziej bezpieczna.
Otwórz główny plik konfiguracyjny PHP-FPM z uprawnieniami root:
W tym pliku szukamy parametru, który ustawia CGI.fix_pathinfo . Zostanie to skomentowane za pomocą półkolonu (;) i ustawione na “1” domyślnie.
Jest to niezwykle niepewne ustawienie, ponieważ mówi PHP, aby próbował wykonać najbliższy plik, jaki może znaleźć, jeśli nie można znaleźć żądanego pliku PHP. Zasadniczo pozwoliłoby użytkownikom tworzyć żądania PHP w sposób, który pozwoliłby im wykonywać skrypty, które powinny’T.
Zmienimy oba te warunki, odkształcając linię i ustawiając ją “0” lubię to:
/etc/php/7.0/fpm/php.ini
CGI.fix_pathinfo = 0
Zapisz i zamknij plik po zakończeniu.
Teraz musimy tylko zrestartować nasz procesor PHP, wpisując:
To zaimplementuje zmianę, którą dokonaliśmy.
Krok 4: Skonfiguruj Nginx, aby użyć procesora PHP
Teraz mamy zainstalowane wszystkie wymagane komponenty. Jedyną zmianą konfiguracji, której nadal potrzebujemy, jest poinformowanie Nginx, aby użył naszego procesora PHP do treści dynamicznej.
Robimy to na poziomie bloku serwera (bloki serwerów są podobne do Apache’S wirtualne hosty). Otwórz domyślny plik konfiguracji bloku serwera Nginx, wpisując:
Obecnie, po usunięciu komentarzy, domyślny plik blokowy serwera Nginx wygląda tak:
/etc/nginx/witryny-dostępny/domyślny
serwer < listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / < try_files $uri $uri/ =404; >>
Musimy wprowadzić pewne zmiany w tym pliku dla naszej witryny.
- Najpierw musimy dodać indeks.PHP jako pierwsza wartość naszej dyrektywy indeksu, aby pliki nazwane indeks.PHP są obsługiwane, jeśli są dostępne, gdy żądanie katalogu.
- Możemy zmodyfikować dyrektywę Server_Name, aby wskazać nasz serwer’S nazwa domeny lub publiczny adres IP.
- W przypadku faktycznego przetwarzania PHP musimy po prostu porzucić segment pliku, który obsługuje żądania PHP, usuwając symbole funtów (#) z każdej linii. To będzie lokalizacja ~ \.PHP $ blok lokalizacji, dołączony fastcgi-php.conf fnippet i gniazdo związane z php-fpm .
- Będziemy również odczuwać blok lokalizacji zajmujący się .Pliki htaccess przy użyciu tej samej metody. Nginx nie’t Przetwarzaj te pliki. Jeśli którykolwiek z tych plików znalazł drogę do korzenia dokumentu, nie należy ich służyć odwiedzającym.
Zmiany, które musisz wprowadzić, są na czerwono w poniższym tekście:
/etc/nginx/witryny-dostępny/domyślny
serwer < listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index indeks.php indeks.Indeks HTML.Indeks HTM.Nginx-debian.html; Nazwa serwera server_domain_or_ip; Lokalizacja / < try_files $uri $uri/ =404; >Lokalizacja ~ \.php $ Uwzględnij fragmenty/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.skarpetka; > Lokalizacja ~ /\.ht zaprzeczać wszystkiemu; > >
Kiedy ty’Wprowadzono powyższe zmiany, możesz zapisać i zamknąć plik.
Przetestuj swój plik konfiguracyjny pod kątem błędów składniowych, wpisując:
Jeśli zgłoszono jakieś błędy, wróć i ponownie sprawdź swój plik przed kontynuowaniem.
Gdy będziesz gotowy, ponownie załaduj Nginx, aby wprowadzić niezbędne zmiany:
Krok 5: Utwórz plik PHP, aby przetestować konfigurację
Twój stos lemp powinien być teraz całkowicie skonfigurowany. Możemy go przetestować, aby potwierdzić, że Nginx może poprawnie ręcznie ręcznie .Plik PHP wyłącz nasz procesor PHP.
Możemy to zrobić, tworząc testowy plik PHP w naszym root dokumentu. Otwórz nowy plik o nazwie Info.PHP w ramach dokumentu w edytorze tekstu:
Wpisz lub wklej następujące wiersze do nowego pliku. Jest to prawidłowy kod PHP, który zwróci informacje o naszym serwerze:
/var/www/html/info.php
Po zakończeniu zapisz i zamknij plik.
Teraz możesz odwiedzić tę stronę w przeglądarce internetowej, odwiedzając swój serwer’S Nazwa domeny lub publiczny adres IP, a następnie /informacje.PHP:
http: //server_domain_or_ip/Informacje.php
Powinieneś zobaczyć stronę internetową wygenerowaną przez PHP z informacjami o twoim serwerze:
Jeśli widzisz stronę, która wygląda tak, ty’Umieszczaj przetwarzanie PHP z Nginx pomyślnie.
Po sprawdzeniu, że Nginx poprawnie renderuje stronę, to’Najlepiej usunąć utworzony plik, ponieważ może on faktycznie dać nieautoryzowanym użytkownikom kilka wskazówek na temat konfiguracji, które mogą pomóc im spróbować włamać się. Zawsze możesz zregenerować ten plik, jeśli potrzebujesz go później.
Na razie usuń plik, wpisując:
Wniosek
Powinieneś teraz skonfigurować stos LEMP na Ubuntu 16.04 Serwer. Daje to bardzo elastyczne podstawy do obsługi treści internetowych dla odwiedzających.
Dziękujemy za naukę ze społecznością Digitalocean. Sprawdź nasze oferty do obliczeń, pamięci, sieci i zarządzanych baz danych.