Како да инсталирате Nginx, PHP и MySQL (LEMP Stack) на OpenSUSE Leap 42.1
LEMP или Linux, Engine-x, MySQL и PHP е колекција на софтвер инсталиран на оперативниот систем Linux за да ги активирате и стартувате вашите веб-апликации базирани на PHP на брзиот веб-сервер Nginx. Стакот LEMP обезбедува брза и сигурна основа за хостирање на веб-апликации. LEMP е збирка софтвер со отворен код кој има комплетна документација за да можете лесно да дознаете повеќе за различните апликации и начинот на кој тие се вклопуваат заедно.
Во ова упатство, ќе ви покажам како да инсталирате Nginx, MariaDB и PHP-FPM на openSUSE leap 42.1. Потоа ќе го конфигурирам заштитниот ѕид OpenSUSE со SuSEfirewall2 за да дозволи пристап до веб-серверот Nginx и да ви покажам како можете да додадете нова конфигурација на виртуелен домаќин на веб-серверот Nginx.
Конечно, ќе го инсталираме phpMyAdmin како лесна за употреба алатка за администрирање на базата на податоци и ќе ја обезбедиме со промена на веб-директориумот и овозможување HTTP автентикација за директориумот phpMyAdmin.
Предуслов
- OpenSUSE Leap 42.1.
- Привилегии на root.
- Разбирање на командата zypper.
Чекор 1 - Инсталирајте и конфигурирајте го SuSEfirewall2
SuSEfirewall2 е скрипта која генерира правила за iptables врз основа на конфигурациската датотека \/etc/sysconfig/SuSEfirewall2\. Ќе го инсталираме и конфигурираме за да спречиме мрежни напади на портата на серверот.
Инсталирајте го SuSEfirewall2 со ципер:
zypper in SuSEfirewall2
Кога ќе заврши инсталацијата, треба да отвориме некои порти за веб-апликациите и SSH. Ќе ја отвориме портата 22 за услугата ssh и портите 80 и 443 за http и https. Одете во директориумот \/etc/sysconfig/\ и уредете ја датотеката \SuSEfirewall2:
cd /etc/sysconfig/
vim SuSEfirewall2
Во редот 253, додадете ги броевите на портите на услугите, одделени со празно место:
FW_SERVICES_EXT_TCP="22 80 443"
Зачувајте ја датотеката и излезете.
Рестартирајте ги SuSEfirewall2 и услугата SSH, а потоа тестирајте ја конфигурацијата на портата со поврзување со телнет со серверот.
Рестартирајте ја услугата SuSEfirewall2 и SSH:
/sbin/rcSuSEfirewall2 restart
systemctl restart sshd
Тестирање ssh врска со телнет на порта 22:
telnet 192.168.1.101 22
Чекор 2 - Инсталирајте и конфигурирајте Nginx
Nginx или engine x е HTTP- и прокси-сервер со високи перформанси со мала потрошувачка на меморија. Се користи од веб-локации од големи размери како Netflix, Pinterest, CloudFlare, Github итн. Nginx има лесна за учење конфигурациска синтакса и може да делува и како балансирач на оптоварување со здравствени проверки и обратен прокси со функции за кеширање.
Во овој чекор, ќе инсталираме nginx и ќе го додадеме за да започне при подигање. Инсталирајте го со командата \zypper in\:
zypper in nginx
Стартувајте го nginx и овозможете го да се стартува при подигање:
systemctl start nginx
systemctl enable nginx
Nginx е стартуван сега, но ако се обидете да му пристапите преку веб-прелистувачот, ќе добиете 403 забранета грешка. Оваа грешка се јавува затоа што нема стандарден индексен документ во основната папка на веб. За да го решите овој проблем, креирајте нов индекс html во root веб директориумот \/srv/www/htdocs\. Одете во директориумот и креирајте ја датотеката index.html:
cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html
Отворете го вашиот веб-прелистувач и напишете IP на вашиот сервер и ќе ја добиете страницата со индекс:
Чекор 3 - Инсталирајте и конфигурирајте го MariaDB
MariaDB е RDBMS (Систем за управување со релациона база на податоци) со отворен код, чипкан од MySQL под лиценцата GNU GPL. Во ова упатство, ќе ја инсталираме MariaDB и ќе ја конфигурираме root лозинката за школка MariaDB.
Инсталирајте го MariaDB со командата zypper:
zypper in mariadb mariadb-client
Стартувајте го MariaDB/MySQL и додајте го за подигнување со командата systemctl подолу:
systemctl start mysql
systemctl enable mysql
Следно, конфигурирајте ја административната лозинка за MariaDBb/MySQL со командата mysqladmin. Друга опција што можете да ја користите за оваа намена е \mysql_secure_installation\. Во овој чекор, ќе користам mysqladmin:
/usr/bin/mysqladmin -u root password 'aqwe123'
Забелешка:
\aqwe123\ е новата лозинка за MariaDB/MySQL.
Потоа најавете се во школката mysql со кориснички корен и лозинка aqwe123:
mysql -u root -p
TYPE PASSWORD 'aqwe123'
Сега MariaDB/MySQL е инсталирана и конфигурирана со нашата нова лозинка.
Чекор 4 - Инсталирајте и конфигурирајте PHP-FPM
PHP-FPM или FastCGI Process Manager е алтернатива за постариот PHP FastCGI со обезбедува дополнителни функции и подобрувања на брзината. PHP-FPM е добро прилагоден за мали и големи страници базирани на програмскиот јазик PHP.
Во овој чекор, ќе инсталираме php5-fpm со некои дополнителни екстензии што ги бара phpMyAdmin. Инсталирајте php5-fom и екстензии со zypper:
zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring
Кога инсталацијата е завршена, одете во директориумот php5-fpm и копирајте ја конфигурациската датотека:
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
Уредете ја конфигурацијата со командата vim:
vim php-fpm.conf
Декоментирајте ја линијата 32 за да овозможите дневник php-fpm, стандардниот префикс е /var и ако имате било каков проблем со php5-fpm, можете да ја проверите датотеката за евиденција \/var/log/php-fpm.log\.
error_log = log/php-fpm.log
Во редот 148 ќе го конфигурираме сопственикот на процесот nginx на корисникот Nginx. Променете го корисникот и групата на процеси во nginx:
user = nginx
group = nginx
Линија 159: конфигурирајте php-fpm да работи под сокет-датотека, а не под портата. Променете ја таа линија вака:
listen = /var/run/php-fpm.sock
И на линијата 170, сменете ги дозволите за приклучокот Unix на корисникот nginx и групата со режим 0660.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Зачувајте ја датотеката и излезете од уредникот.
Следно, одете во директориумот PHP cli и уредете ја датотеката php.ini со vim:
cd /etc/php5/cli/
vim php.ini
Променете ја вредноста на cgi.fix_pathinfo на нула од безбедносни причини. линија 178:
cgi.fix_pathinfo=0
зачувај и излези.
Копирајте го php.ini во директориумот conf.d:
cp php.ini /etc/php5/conf.d/
Конфигурацијата PHP-FPM е направена во оваа фаза, но сепак треба да го конфигурираме Nginx. Мораме да го поставиме Nginx да работи со php-fpm.
Одете во директориумот за конфигурација nginx и направете резервна копија на конфигурациската датотека со командата cp:
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
Уредете го nginx.conf со vim:
vim nginx.conf
Додадете index.php на линијата 48:
index index.php index.html index.htm;
Додадете го новиот дел за конфигурација на php на линијата 68, ова е конфигурацијата за справување со барањата за датотеки .php.
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Зачувајте ја датотеката и излезете.
Следно, тестирајте ја синтаксата на конфигурациската датотека nginx за да се осигурате дека нема грешки. Потоа стартувајте го демонот php-fpm и рестартирајте го Nginx:
nginx -t
systemctl start php-fpm
systemctl restart nginx
За да се увериме дека php-fpm и nginx работат правилно, ќе додадеме нова датотека за тестирање php. Одете во директориумот DocumentRoot и креирајте датотека phpinfo со име info.php:
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Отворете го вашиот веб-прелистувач напишете го вашиот сервер ipaddress:
Nginx и php-fpm работат сега.
Чекор 5 - Конфигурирајте Nginx Virtualhost
Во овој чекор, ќе ви покажам како да додадете конфигурација на виртуелен домаќин за веб-локација. Ќе конфигурираме нов домен \www.example.com\ и директориумот webroot во \/srv/www/example/\. Ве молиме заменете го примерот и example.com со вашето сопствено име на домен.
GNginx nginx директориум и креирајте нов директориум за конфигурацијата на виртуелниот домаќин.
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Следно, креирајте нова датотека example.conf за името на доменот \example.com\ виртуелен хост.
vim example.conf
залепете ја конфигурацијата на виртуелниот домаќин подолу:
server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
root /srv/www/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Зачувајте ја датотеката и излезете.
Сега креирајте го директориумот за страницата \example.com\ во директориумот /srv/www/ и креирајте нова индексна датотека.
mkdir -p /srv/www/example/
cd /srv/www/example/
echo "<h1>This is www.example.com site.</h1>" > index.html
echo "<?php phpinfo(); ?>" > info.php
Сега отворете го вашиот веб-прелистувач и посетете го доменот:
пример.com
Ќе бидете пренасочени на доменот www и сега пристапете до датотеката php:
Чекор 6 - Инсталирајте и конфигурирајте phpMyAdmin
PhpMyAdmin е апликација базирана на PHP за управување со MySQL или MariaDB бази на податоци од веб-прелистувач. Во овој чекор, ќе го конфигурирам phpMyAdmin да работи под php-fpm и потоа ќе го направам PHPMyAdmin безбеден со ограничување на пристапот до страницата за најавување phpMyAdmin.
Инсталирајте phpMyAdmin со командата zypper:
zypper in phpMyAdmin
Командата ќе ги инсталира сите пакети потребни за phpMyAdmin, вклучувајќи ги и apache2-utils кои се потребни за креирање на датотеката со лозинка.
Сега имаме инсталирано phpMyAdmin на системот. Следно, ќе создадеме нова датотека htpasswd со командата htpasswd.
креирајте датотека со лозинка htpasswd:
htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi
Следно, треба да го конфигурираме Nginx да користи основна автентикација на HTTP за директориумот phpmyadmin. Ќе го ограничиме пристапот до страницата за најавување phpMyAdmin со auth_basic, а само корисниците што се во датотеката \htpasswd\ можат да се логираат на phpMyAdmin.
Одете во директориумот за конфигурација Nginx и уредете ја датотеката nginx.conf:
cd /etc/nginx/
vim nginx.conf
Дефинирајте го веб-основниот директориум внатре во делот на серверот со додавање нова линија под линијата 40 (име на серверот):
server_name localhost;
root /srv/www/htdocs; #newline config
Потоа додадете ја конфигурацијата phpMyAdmin за nginx на линијата 60:
location ~ ^/phpMyAdmin/.*\.php$ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Зачувајте ја датотеката и излезете од уредникот.
Тестирајте ја конфигурацијата на nginx и рестартирајте го nginx:
nginx -t
systemctl restart nginx
Следно, отворете го вашиот веб-прелистувач и посетете ја URL-то на phpMyAdmin, ќе ви биде побарано корисничко име и лозинка за страницата за најавување.
Потоа најавете се со вашето корисничко име и лозинка MySQL.
phpMyAdmin е успешно инсталиран и само корисникот во htpasswd може да се најави.