Инсталирање на Nginx со PHP (како PHP-FPM) и MariaDB (LEMP) на Debian 8

Инсталирање на Nginx со PHP (како PHP-FPM) и MariaDB (LEMP) на Debian 8

Ова упатство ќе ви ја прикаже инсталацијата на веб-серверот Nginx на Debian 8. Nginx (се изговара "мотор x") е бесплатен HTTP-сервер со високи перформанси со отворен код. Nginx е позната по својата стабилност, богата карактеристика, едноставна конфигурација и ниска потрошувачка на ресурси. Ова упатство покажува како можете да инсталирате Nginx со PHP поддршка (преку PHP-FPM) и MariaDB како замена за MySQL. Ова подесување често се нарекува LEMP = Linux + nginx (се изговара "моторот x") + MySQL + PHP).

Прелиминарна забелешка

Во ова упатство, го користам серверот hostname1.example.com со IP-адресата 192.168.1.100. Овие поставки може да се разликуваат за вас, така што ќе треба да ги замените каде што е соодветно. Треба да имате Debian 8 сервер, ќе го користам Дебиан минимален сервер како основен систем за овој туторијал.

Ажурирање на системот

Се препорачува да се ажурираат списоците на пакети и да се инсталираат сите ажурирања што чекаат пред да започнеме со подесувањето Nginx. Извршете ги следните команди за да ги инсталирате сите ажурирања што чекаат.

apt-get update
apt-get надградба -y

Потоа ќе го користам нано-уредникот подоцна за уредување на конфигурациските датотеки. Нано може да се инсталира со оваа команда:

apt-get -y инсталира нано

Инсталирање на MariaDB (како замена за MySQL)

Со цел да се инсталира MariaDB, трчаме:

apt-get -y инсталирај mariadb-server mariadb-client

Од вас ќе биде побарано да дадете лозинка за root root корисник на MariaDB - оваа лозинка е важечка за корисникот [е заштитена за е-пошта], како и [заштитена со е-пошта], па затоа ние не треба рачно да ја наведете root root лозинката Rootkit:

Нова лозинка за корисникот на "root" на MariaDB: <- yourrootsqlpassword
Повторете ја лозинката за корисникот на root "root" на MariaDB: <- yourrootsqlpassword

Внесете корисничка лозинка на root на Root.

Инсталирање на Nginx

Nginx е достапен како пакет за Debian Jessie кој може да го инсталираме на следниов начин:

apt-get -y инсталирај nginx

Започнете Nginx потоа:

systemctl започне nginx.service

Внесете ја IP адресата или името на вашиот веб сервер во прелистувачот (на пр. Http: // 192.168.1.100), и треба да ја видите следнава страница:

Дебиан Nginx почетната страница.

Стандардниот корнел на nginx документ на Debian 8 е / var / www / html.

Инсталирање на PHP

Можеме да направиме PHP5 да работи во nginx преку PHP-FPM (PHP-FPM (FastCGI Process Manager) е алтернатива PHP FastCGI имплементација со некои дополнителни функции корисни за сајтови од било која големина, особено за поголеми сајтови) што ги инсталираме на следниов начин:

apt-get -y инсталирај php5-fpm

PHP-FPM е процес на демон (со системската единица датотека php5-fpm.service) која работи на FastCGI-сервер на сокетот /var/run/php5-fpm.sock.

Конфигурирање на nginx

Конфигурацијата nginx е во /etc/nginx/nginx.conf која ја отвораме сега:

nano /etc/nginx/nginx.conf

Конфигурацијата е лесно да се разбере (можете да дознаете повеќе за тоа тука: http://wiki.nginx.org/NginxFullExample и тука: http://wiki.nginx.org/NginxFullExample2)

Прво поставете keepalive_timeout на разумна вредност како 2 секунди:

[...] keepalive_timeout 2; [...]

Виртуелните домаќини се дефинирани во серверот {} контејнери. Стандардниот vhost е дефиниран во датотеката / etc / nginx / sites-available / default - ајде да го модифицираме на следниов начин:

nano / etc / nginx / сајтови-достапни / стандардно

[...] сервер {слушај 80 default_server; слушај [::]: 80 default_server; # SSL конфигурација # # слушај 443 ssl default_server; # слушај [::]: 443 ssl default_server; # # Самопотпишани сертификати генерирани од пакетот ssl-cert # Не користете ги на производствен сервер! # # вклучуваат фрагменти / snakeoil.conf; root / var / www / html; # Додади index.php во листата ако користите PHP index index.html index.htm index.nginx-debian.html index.php; server_name _; локација / {# Прв обид да го послушате барањето како датотека, потоа # како директориум, потоа да се вратите на прикажување на 404. try_files $ uri $ uri / = 404; } # поминат скрипти на PHP на FastCGI сервер слушање на 127.0.0.1: 9000 # локација ~ .php $ (вклучуваат фрагменти / fastcgi-php.conf; # # Само со php5-cgi: # fastcgi_pass 127.0.0.1: 9000; # Со php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; } # отфрли пристап до. Htaccess датотеки, ако Apache-то коренот на документот # се согласува со nginx-овата # локација ~ /.ht {негираат сите; }} [...]

server_name _; го прави ова стандардно catchall vhost (се разбира, можете и да наведете име на хост тука како www.example.com).

Додадов index.php во индексната линија. root / var / www / html; значи дека коренот на документот е директориумот / var / www / html.

Важен дел за PHP е локацијата ~ .php $ {}. Откажете го како што е прикажано погоре за да го овозможите.

Сега зачувајте ја датотеката и повторно вчитајте ја Nginx:

системско преоптоварување nginx.service

Следно отворете /etc/php5/fpm/php.ini ...

nano /etc/php5/fpm/php.ini

... и постави cgi.fix_pathinfo = 0:

[...]; cgi.fix_pathinfo обезбедува * вистинска * PATH_INFO / PATH_TRANSLATED поддршка за CGI. PHP е; претходното однесување беше да се постави PATH_TRANSLATED во SCRIPT_FILENAME, и да не е гробот; што е PATH_INFO. За повеќе информации за PATH_INFO, видете ги спецификациите cgi. Поставување; ова до 1 ќе предизвика PHP CGI да ги поправи патеките за да одговара на спецификациите. А поставка; од нула предизвикува PHP да се однесува како порано. Стандардно е 1. Треба да ги поправите вашите скрипти; да користиш SCRIPT_FILENAME наместо PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo = 0 [...]

Вчитај го PHP-FPM:

системска оптоварување php5-fpm.service

Сега создади ја следнава PHP-датотека во коренот на документот / var / www / html /:

nano /var/www/html/info.php

<? php phpinfo (); ?>

Сега ја нарекуваме таа датотека во прелистувачот (на пр. Http: //192.168.1.100/info.php):

PHP информации.

Како што гледате, PHP5 работи и работи преку FPM / FastCGI, како што е прикажано во линијата за API на серверот. Ако скролувате понатаму, ќе ги видите сите модули кои веќе се овозможени во PHP5. MySQL не е наведен таму, што значи дека немаме MariaDB / MySQL поддршка во PHP уште.

Добивање поддршка за MySQL / MariaDB во PHP

За да добијам MySQL поддршка во PHP, можеме да го инсталираме php5-mysqlnd пакетот. Добра идеја е да инсталирате некои други PHP модули, како и да ви требаат за вашите апликации. Можете да пребарувате за достапните PHP модули вака:

apt-cache search php5

Изберете ги оние што ви се потребни и инсталирајте ги како вака:

apt-get -y инсталирај php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-intl php5-pspell php5-recode php5-snmp php5-sqlite php5- уредно php5-xmlrpc php5-xsl

APCu е бесплатен и отворен PHP општ cacher за кеширање и оптимизирање на PHP среден код кој ја проширува PHP opcache. Таа го заменува кешот на APC. и тоа е слично на другите PHP opcode cachers, како што се eAccelerator и Xcache. Се препорачува да имате инсталирано еден од овие уреди за да ја забрзате вашата PHP страница.

APCu може да се инсталира на следниов начин:

apt-get инсталирај php5-apcu

Сега повторно вчитај PHP-FPM:

системска оптоварување php5-fpm.service

Сега вчитајте го http: //192.168.1.100/info.php во вашиот прелистувач и скролувајте надолу до делот модули повторно. Сега треба да најдете многу нови модули таму, вклучувајќи го и модулот MySQL:

PHP информации со MySQL.

Изработка на PHP-FPM користи TCP конекција (опционално)

Стандардно, PHP-FPM слуша на сокетот /var/run/php5-fpm.sock. Исто така е можно да се направи PHP-FPM да користи TCP-врска. За да го направите ова, отворете /etc/php5/fpm/pool.d/www.conf ...

nano /etc/php5/fpm/pool.d/www.conf

... и направете ја слушачката линија да изгледа како што следува:

[...]; слушам = /var/run/php5-fpm.sock слушам = 127.0.0.1: 9000 [...]

Ова ќе го направи PHP-FPM слуша на портата 9000 на IP 127.0.0.1 (localhost). Осигурајте се дека користите порта што не е во употреба на вашиот систем.

Потоа повторно вчитај PHP-FPM:

системска оптоварување php5-fpm.service

Следно појдете низ вашата конфигурација Nginx и сите ваши хостови и ја промените линијата fastcgi_pass unix: /var/run/php5-fpm.sock; да fastcgi_pass 127.0.0.1: 9000 ;, пр. вака:

nano / etc / nginx / сајтови-достапни / стандардно

[...] локација ~ .php $ (вклучуваат фрагменти / fastcgi-php.conf; # # Само со php5-cgi: # fastcgi_pass 127.0.0.1: 9000; # # Со php5-fpm: # fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_pass 127.0.0.1: 9000; } [...]

Конечно, превчитајте Nginx:

системско преоптоварување nginx.service

Виртуелна машина слика

Ова упатство е достапно како подготвена за користење виртуелна машина во OVA / OVF формат за претплатници како Howtoforge. VM формат е компатибилен со VMWare и Virtualbox, веројатно некои други алатки кои можат да го увезуваат овој формат. Линкот за преземање можете да го најдете во десното мени на врвот. Кликнете на името на датотеката за да започнете со преземањето.

Деталите за најавување на В.М. се:

SSH Најави

Корисничко име: root
Лозинка: howtoforge

MariaDB Login

Корисничко име: root
Лозинка: howtoforge

Променете ги лозинките по првата подигање.

VM е конфигуриран за статички IP 192.168.1.100, IP адресата може да се смени во датотеката / etc / network / interfaces.

линкови

Оставете Одговор

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени *

Оваа страница користи Akismet за намалување на спам. Научете како се обработува вашиот коментар.