Si të instaloni Nginx, PHP dhe MySQL (LEMP Stack) në OpenSUSE Leap 42.1
LEMP ose Linux, Engine-x, MySQL dhe PHP është një koleksion softuerësh të instaluar në sistemin operativ Linux për të vënë në funksion aplikacionet tuaja të internetit të bazuara në PHP në serverin e shpejtë të internetit Nginx. Stacki LEMP ofron një bazë të shpejtë dhe të besueshme për pritjen e aplikacioneve në internet. LEMP është një koleksion softuerësh me burim të hapur i cili ka një grup të plotë dokumentacioni, në mënyrë që të mund të mësoni lehtësisht më shumë për aplikacionet e ndryshme dhe mënyrën se si ato përshtaten së bashku.
Në këtë tutorial, unë do t'ju tregoj se si të instaloni Nginx, MariaDB dhe PHP-FPM në openSUSE leap 42.1. Më pas do të konfiguroj murin e zjarrit OpenSUSE me SuSEfirewall2 për të lejuar hyrjen në serverin e uebit Nginx dhe do t'ju tregoj se si mund të shtoni një konfigurim të ri të hostit virtual në serverin e uebit Nginx.
Së fundi, ne do të instalojmë phpMyAdmin si një mjet të lehtë për t'u përdorur për administrimin e bazës së të dhënave dhe do ta sigurojmë atë duke ndryshuar drejtorinë e uebit dhe duke mundësuar vërtetimin HTTP për direktorinë phpMyAdmin.
Kusht paraprak
- OpenSUSE Leap 42.1.
- Privilegjet e rrënjës.
- Të kuptosh komandën zypper.
Hapi 1 - Instaloni dhe konfiguroni SuSEfirewall2
SuSEfirewall2 është një skript që gjeneron rregulla iptables bazuar në skedarin e konfigurimit \/etc/sysconfig/SuSEfirewall2\. Ne do ta instalojmë dhe konfigurojmë atë për të parandaluar sulmet e rrjetit në portën e serverit.
Instaloni SuSEfirewall2 me zypper:
zypper in SuSEfirewall2
Kur instalimi të ketë mbaruar, duhet të hapim disa porte për aplikacionet në internet dhe SSH. Do të hapim portin 22 për shërbimin ssh dhe portin 80 dhe 443 për http dhe https. Shkoni te drejtoria \/etc/sysconfig/\ dhe modifikoni skedarin \SuSEfirewall2\:
cd /etc/sysconfig/
vim SuSEfirewall2
Në rreshtin 253, shtoni numrat e portave të shërbimeve, të ndara me një hapësirë të bardhë:
FW_SERVICES_EXT_TCP="22 80 443"
Ruani skedarin dhe dilni.
Rinisni SuSEfirewall2 dhe shërbimin SSH, më pas provoni konfigurimin e portit duke u lidhur me telnet me serverin.
Rinisni shërbimin SuSEfirewall2 dhe SSH:
/sbin/rcSuSEfirewall2 restart
systemctl restart sshd
Testimi i lidhjes ssh me telnet në portën 22:
telnet 192.168.1.101 22
Hapi 2 - Instaloni dhe konfiguroni Nginx
Nginx ose engine x është një server HTTP dhe proxy me performancë të lartë me konsum të ulët të memories. Përdoret nga faqet e internetit në shkallë të gjerë si Netflix, Pinterest, CloudFlare, Github etj. Nginx ka një sintaksë konfigurimi të lehtë për t'u mësuar dhe mund të veprojë gjithashtu si një balancues i ngarkesës me kontrolle shëndetësore dhe përfaqësues të kundërt me veçoritë e memorizimit.
Në këtë hap, ne do të instalojmë nginx dhe do ta shtojmë atë për të filluar në kohën e nisjes. Instaloni atë me komandën \zypper in\:
zypper in nginx
Filloni nginx dhe aktivizoni që të fillojë në kohën e nisjes:
systemctl start nginx
systemctl enable nginx
Nginx është nisur tani, por nëse përpiqeni ta aksesoni atë përmes shfletuesit të internetit, do të merrni një gabim 403 të ndaluar. Ky gabim ndodh sepse nuk ka asnjë dokument standard të indeksit në dosjen rrënjësore të uebit. Për të zgjidhur këtë problem, krijoni një indeks të ri html në direktorinë rrënjësore të internetit \/srv/www/htdocs\. Shkoni te drejtoria dhe krijoni skedarin index.html:
cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html
Hapni shfletuesin tuaj të internetit dhe shkruani IP-në e serverit tuaj dhe do të merrni faqen e indeksit:
Hapi 3 - Instaloni dhe konfiguroni MariaDB
MariaDB është RDBMS me burim të hapur (Sistemi i menaxhimit të bazës së të dhënave Relacionale) i krijuar nga MySQL nën licencën GNU GPL. Në këtë tutorial, ne do të instalojmë MariaDB dhe do të konfigurojmë fjalëkalimin rrënjë për guaskën MariaDB.
Instaloni MariaDB me komandën zypper:
zypper in mariadb mariadb-client
Nisni MariaDB/MySQL dhe shtojeni atë në nisjen me komandën systemctl më poshtë:
systemctl start mysql
systemctl enable mysql
Më pas, konfiguroni fjalëkalimin e administratorit për MariaDBb/MySQL me komandën mysqladmin. Një tjetër opsion që mund të përdorni për këtë qëllim është \mysql_secure_installation\. Në këtë hap, unë do të përdor mysqladmin:
/usr/bin/mysqladmin -u root password 'aqwe123'
Shënim:
\aqwe123\ është fjalëkalimi i ri për MariaDB/MySQL.
Pastaj identifikohuni në guaskën mysql me rrënjën e përdoruesit dhe fjalëkalimin aqwe123:
mysql -u root -p
TYPE PASSWORD 'aqwe123'
Tani MariaDB/MySQL është instaluar dhe konfiguruar me fjalëkalimin tonë të ri.
Hapi 4 - Instaloni dhe konfiguroni PHP-FPM
PHP-FPM ose FastCGI Process Manager është një alternativë për PHP më të vjetër FastCGI me ofron veçori shtesë dhe përmirësime të shpejtësisë. PHP-FPM është i përshtatshëm për faqet e vogla dhe të mëdha të bazuara në gjuhën e programimit PHP.
Në këtë hap, ne do të instalojmë php5-fpm me disa shtesa shtesë të kërkuara nga phpMyAdmin. Instaloni php5-fom dhe shtesat me zypper:
zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring
Kur instalimi të ketë përfunduar, shkoni te drejtoria php5-fpm dhe kopjoni skedarin e konfigurimit:
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
Ndryshoni konfigurimin me komandën vim:
vim php-fpm.conf
Zhkomentoni rreshtin 32 për të aktivizuar regjistrin php-fpm, prefiksi i paracaktuar është /var dhe nëse keni ndonjë problem me php5-fpm, mund të kontrolloni skedarin e regjistrit \/var/log/php-fpm.log\.
error_log = log/php-fpm.log
Në rreshtin 148 ne do të konfigurojmë pronarin e procesit nginx tek përdoruesi Nginx. Ndryshoni përdoruesin dhe grupin e procesit në nginx:
user = nginx
group = nginx
Rreshti 159: konfiguro php-fpm që të ekzekutohet nën një skedar soket, jo në port. Ndrysho këtë linjë si kjo:
listen = /var/run/php-fpm.sock
Dhe në linjën 170, ndryshoni lejet për folenë unix në përdoruesin dhe grupin nginx me modalitetin 0660.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Ruani skedarin dhe dilni nga redaktori.
Më pas, shkoni në direktorinë cli PHP dhe modifikoni skedarin php.ini me vim:
cd /etc/php5/cli/
vim php.ini
Ndrysho vlerën e cgi.fix_pathinfo në zero për arsye sigurie. rreshti 178:
cgi.fix_pathinfo=0
Ruaje dhe dil.
Kopjoni php.ini në drejtorinë conf.d:
cp php.ini /etc/php5/conf.d/
Konfigurimi PHP-FPM është bërë në këtë fazë, por ne ende duhet të konfigurojmë Nginx. Duhet të konfigurojmë Nginx për të punuar me php-fpm.
Shkoni te drejtoria e konfigurimit nginx dhe bëni një kopje rezervë të skedarit të konfigurimit me komandën cp:
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
Ndrysho nginx.conf me vim:
vim nginx.conf
Shto index.php në rreshtin 48:
index index.php index.html index.htm;
Shtoni seksionin e ri të konfigurimit php në rreshtin 68, ky është konfigurimi për trajtimin e kërkesave të skedarëve .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;
}
Ruani skedarin dhe dilni.
Më pas, testoni sintaksën e skedarit të konfigurimit nginx për t'u siguruar që nuk ka gabime. Pastaj filloni demonin php-fpm dhe rinisni Nginx:
nginx -t
systemctl start php-fpm
systemctl restart nginx
Për t'u siguruar që php-fpm dhe nginx po funksionojnë siç duhet, ne do të shtojmë një skedar të ri testimi php. Shkoni në direktorinë DocumentRoot dhe krijoni një skedar phpinfo me emrin info.php:
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Hapni shfletuesin tuaj të internetit shkruani adresën ipad të serverit tuaj:
Nginx dhe php-fpm janë duke punuar tani.
Hapi 5 - Konfiguro një Nginx Virtualhost
Në këtë hap, unë do t'ju tregoj se si të shtoni një konfigurim të hostit virtual për një faqe interneti. Ne do të konfigurojmë një domen të ri \www.example.com\ dhe drejtorinë webroot në \/srv/www/example/\. Ju lutemi zëvendësoni shembullin dhe example.com me emrin tuaj të domenit.
Drejtoria GNginx nginx dhe krijoni një direktori të re për konfigurimin e hostit virtual.
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Më pas, krijoni skedar të ri example.conf për emrin e domain \example.com\ virtualhost.
vim example.conf
ngjitni konfigurimin e virtualhost më poshtë:
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;
}
}
Ruani skedarin dhe dilni.
Tani krijoni drejtorinë për sitin \example.com\ në drejtorinë /srv/www/ dhe krijoni një skedar të ri indeks.
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
Tani hapni shfletuesin tuaj të internetit dhe vizitoni domenin:
shembull.com
Do të ridrejtoheni në domenin www dhe tani hyni në skedarin php:
Hapi 6 - Instaloni dhe konfiguroni phpMyAdmin
PhpMyAdmin është një aplikacion i bazuar në PHP për të menaxhuar bazat e të dhënave MySQL ose MariaDB nga një shfletues ueb. Në këtë hap, unë do të konfiguroj phpMyAdmin që të funksionojë nën php-fpm dhe më pas do ta bëj PHPMyAdmin të sigurt duke kufizuar hyrjen në faqen e hyrjes në phpMyAdmin.
Instaloni phpMyAdmin me komandën zypper:
zypper in phpMyAdmin
Komanda do të instalojë të gjitha paketat e nevojshme nga phpMyAdmin, duke përfshirë apache2-utils që kërkohen për krijimin e skedarit të fjalëkalimit.
Tani ne kemi phpMyAdmin të instaluar në sistem. Më pas do të krijojmë një skedar të ri htpasswd me komandën htpasswd.
krijoni skedarin e fjalëkalimit htpasswd:
htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi
Më pas, duhet të konfigurojmë Nginx për të përdorur vërtetimin bazë HTTP për direktorinë phpmyadmin. Ne do të kufizojmë aksesin në faqen e identifikimit phpMyAdmin me auth_basic dhe vetëm përdoruesit që janë në skedarin \htpasswd\ mund të identifikohen në phpMyAdmin.
Shkoni te drejtoria e konfigurimit Nginx dhe modifikoni skedarin nginx.conf:
cd /etc/nginx/
vim nginx.conf
Përcaktoni direktorinë rrënjësore të uebit brenda seksionit të serverit duke shtuar një rresht të ri nën rreshtin 40 (emri i serverit):
server_name localhost;
root /srv/www/htdocs; #newline config
Pastaj shtoni konfigurimin phpMyAdmin për nginx në rreshtin 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;
}
Ruani skedarin dhe dilni nga redaktori.
Testoni konfigurimin e nginx dhe rinisni nginx:
nginx -t
systemctl restart nginx
Më pas, hapni shfletuesin tuaj të internetit dhe vizitoni URL-në phpMyAdmin, do t'ju kërkohet një emër përdoruesi dhe fjalëkalim për faqen e hyrjes.
Pastaj hyni me emrin e përdoruesit dhe fjalëkalimin tuaj MySQL.
phpMyAdmin është instaluar me sukses dhe vetëm përdoruesi në htpasswd mund të identifikohet.