Weboldal keresés

A LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM és PhpMyAdmin) telepítése Gentoo Linux alatt


A Gentoo az egyik leggyorsabb Linux disztribúció a forrásorientáltsága miatt, és szoftverkezelő programja – Portage – bizonyos eszközöket biztosít, amelyek egy komplett webfejlesztői platform felépítéséhez szükségesek. nagyon gyorsan cselekszik és működik, emellett nagymértékben testreszabható.

Ez a témakör lépésről lépésre végigvezeti a telepítési folyamaton egy komplett webes környezeti platform felépítéséhez a LEMP segítségével (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin), valamint a segítségével. A Portage Package Management által biztosított >USE jelzőkek, amelyek egy sor csomagfunkciót kínálnak a fordítási folyamat során – a webes platformhoz szükséges modulok vagy beállítások nagymértékben módosítják a szerverkonfigurációt.

Követelmények

  1. Gentoo telepítés megerősített profillal internet felé néző szerverhez – Gentoo telepítési útmutató.
  2. A hálózat statikus IP-címmel van konfigurálva.

1. lépés: Telepítse az Nginx webszervert

1. Mielőtt megpróbálná folytatni az Nginx telepítését, győződjön meg arról, hogy a hálózati kártya statikus IP-címmel van konfigurálva, és győződjön meg arról, hogy a Portage források és a rendszer naprakészek.

sudo su -
emerge --sync
emerge --update --deep --with-bdeps=y @world

2. A frissítési folyamat befejezése után folytassa az Nginx telepítését az előnyben részesített beállítások és modulok kiválasztásával az Nginx USE jelzők visszaadásával a Portage make.conf fájlba. . Először listázza ki az Nginx alapértelmezett telepítési moduljait a következő parancs futtatásával.

emerge -pv nginx

A modulok részletes információiért (a csomagokhoz HASZNÁLATI jelzők) használja az equery parancsot.

equery uses nginx

Ezután telepítse az Nginx-et a következő paranccsal.

emerge --ask nginx

Ha az alapértelmezett modulokon kívül további modulokra (WebDAV, fancyindex, GeoIP stb.) van szüksége, amelyeket az Nginx le fog fordítani, fűzze őket egyetlen sorba a Portage make.conf fájljában a következővel: NGINX_MODULES_HTTP direktívát, majd fordítsa újra az Nginxet új modulokkal.

echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
emerge --ask nginx

3. Miután a Portage befejezte az Nginx fejlesztését, indítsa el a http démont, és ellenőrizze azt úgy, hogy a böngészőjét a http://localhost címre irányítja.

2. lépés: Telepítse a PHP-t

4. A PHP dinamikus webes programozási nyelvének az Nginx szerverrel való használatához telepítse a PHP-FastCGI Process Manager (FPM) alkalmazást az fpm< hozzáfűzésével. és más fontos PHP-bővítmények a Portage USE zászlókon, és győződjön meg róla, hogy eltávolította az Apache kiterjesztést.

emerge -pv php

equery uses php

echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use
emerge --ask php

5. A PHP-FPM elindítása előtt néhány változtatást alkalmazni kell a szolgáltatás konfigurációs fájljában. Nyissa meg a php-fpm konfigurációs fájlt, és hajtsa végre a következő módosításokat.

nano /etc/php/fpm-php5.5/php-fpm.conf

Keresse meg és törölje a megjegyzéseket a következő direktívákból, hogy így nézzenek ki.

error_log = /var/log/php-fpm.log
listen = 127.0.0.1:9000    ## Here you can use any HTTP socket (IP-PORT combination ) you want  ##
pm.start_servers = 20

6. A PHP-FPM konfigurációs fájl szerkesztése után módosítsa a PHP-FPM naplófájl engedélyeit, és indítsa el a szolgáltatást.

chmod 755 /var/log/php-fpm.log
/etc/init.d/php-fpm start

Még ha a PHP-FPM szolgáltatás elindul is, az Nginx nem tud kommunikálni a PHP átjáróval, ezért néhány változtatást végre kell hajtani az Nginx konfigurációs fájljain.

3. lépés: Szerkessze az Nginx konfigurációit

7. Az Nginx alapértelmezett sablonkonfigurációs fájlja csak egy alapvető HTTP socketet biztosít csak a localhost számára. A viselkedés megváltoztatásához és a Virtual Hosts engedélyezéséhez nyissa meg az /etc/nginx/ elérési úton található nginx.conf fájlt, és végezze el a következő konfigurációkat.

nano /etc/nginx/nginx.conf

Keresse meg az első szerver blokkot, amely megfelel a localhostnak, és a 127.0.0.1 IP-címet figyeli, és javasolja, hogy minden utasítása úgy nézzen ki, mint az alábbi képernyőképen.

Még ne zárja be a fájlt, menjen a legvégére, és adja hozzá a következő utasítást a legutóbbi göndör kapcsos zárójelek bezárása előtt: " } ".

Include /etc/nginx/sites-enabled/*.conf;

8. Ezután hozzon létre webhelyek-engedélyezett és elérhető webhelyek (nem használt virtuális gazdagépekhez) Nginx-könyvtárakat és konfigurációs fájlokat a localhost számára HTTP- és HTTPS-protokollokon .

mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled

Hozza létre a következő fájlkonfigurációt a localhost számára.

nano /etc/nginx/sites-available/localhost.conf

Adja hozzá a következő fájltartalmat.

server {
               listen 80;
               server_name localhost;

               access_log /var/log/nginx/localhost_access_log main;
               error_log /var/log/nginx/localhost_error_log info;

               root /var/www/localhost/htdocs;

                location / {
                index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;

                                }

                         location ~ \.php$ {
                       # Test for non-existent scripts or throw a 404 error
                       # Without this line, nginx will blindly send any request ending in .php to php-fpm
                       try_files $uri =404;
                        include /etc/nginx/fastcgi.conf;
                       fastcgi_pass 127.0.0.1:9000;  ## Make sure the socket corresponds with PHP-FPM conf file
                        }
                }

Az SSL-t használó localhost esetén hozza létre a következő konfigurációs fájlt.

nano /etc/nginx/sites-available/localhost-ssl.conf

Adja hozzá a következő fájltartalmat.

server {
               listen 443 ssl;
               server_name localhost;

            ssl on;
               ssl_certificate /etc/ssl/nginx/nginx.pem;
               ssl_certificate_key /etc/ssl/nginx/nginx.key;

               access_log /var/log/nginx/localhost.ssl_access_log main;
               error_log /var/log/nginx/localhost.ssl_error_log info;

               root /var/www/localhost/htdocs;

                                location / {
                index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
                                 }                                                

                      location ~ \.php$ {
                       # Test for non-existent scripts or throw a 404 error
                       # Without this line, nginx will blindly send any request ending in .php to php-fpm
                       try_files $uri =404;
                       include /etc/nginx/fastcgi.conf;
                       fastcgi_pass 127.0.0.1:9000;
                                }
                }

9. Most itt az ideje, hogy két szkriptet hozzon létre a rendszer végrehajtható útvonalán (` PATH shell változó), amelyek parancsként működnek az Nginx Virtual Hosts aktiválásához vagy letiltásához.

Hozza létre az első n2ensite nevű Bash-szkriptet, amely engedélyezi a Virtual Hosts konfigurációs fájljait azáltal, hogy szimbolikus linket hoz létre a megadott gazdagépek között az elérhető webhelyek és a webhelyek engedélyezése között. >.

nano /usr/local/bin/n2eniste

Adja hozzá a következő fájltartalmat.

#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi

avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Success!! Now restart nginx server: sudo /etc/init.d/ nginx restart"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

10. Ezután hozza létre az n2dissite nevű második szkriptet, amely törli a megadott aktív virtuális gazdagépeket a következő tartalommal rendelkező sites-enabled Nginx útvonalról.

nano /usr/local/bin/n2dissite

Adja hozzá a következő tartalmat.

#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Nginx: sudo /etc/init.d/nginx restart"
exit 0
fi
fi

11. A Bash-szkriptek szerkesztésének befejezése után fűzze hozzá a végrehajtási engedélyeket, és aktiválja a localhost Virtual Hosts szolgáltatást – használja a Virtual Host konfigurációs fájl nevét .conf kiterjesztés nélkül, majd indítsa újra az Nginx és a PHP-FPM szolgáltatásokat módosítások alkalmazásához.

chmod +x /usr/local/bin/n2dissite
chmod +x /usr/local/bin/n2ensite
n2ensite localhost
n2ensite localhost-ssl
service nginx restart
service php-fpm restart

12. A konfigurációk teszteléséhez hozzon létre egy PHP-információs fájlt a localhost alapértelmezett webfájlok gyökérútvonalán (/var/www/localhost/htdocs), és irányítsa át a böngészőt a következő helyre: https://localhost/info.php vagy http://localhost/info.php.

echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php

A localhost Virtual Hosts konfigurációs fájlok sablonként, valamint az Nginx n2enmod és n2dismod használatával könnyedén hozzáadhat annyi webhelyet, amennyit csak akar, de biztos lehet benne, hogy érvényes DNS-mutatókkal rendelkezik az internethez - webkiszolgáló felé nézzen, vagy helyileg használjon bejegyzéseket a rendszergazda fájlban.

4. lépés: Telepítse a MySQL/MariaDB + PhpMyAdmin programot

A MySQL adatbázis és a PhpMyAdmin webes felület MySQL-hez telepítéséhez kövesse a LAMP telepítése Gentoo-n című részben leírt eljárást.

13. Cserébe, ha a MariaDB-t, a MySQL beugró helyettesítőjét szeretné használni, használja a következő parancsokat a USE jelzők lekéréséhez és telepítéséhez.

emerge -pv mariadb
emerge --ask mariadb

Ha csomagütközésbe kerülne a MySQL-lel, adja hozzá a következő sorokat a Portage package.accept.keywords-hez.

echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords
echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords
emerge --ask mariadb

14. A MySQL adatbázis telepítése után indítsa el a szolgáltatást, és biztosítsa azt a mysql_secure_installation segítségével (változtassa meg a root jelszót, tiltsa le a root bejelentkezést a localhost-on kívül, távolítsa el a névtelen felhasználói/tesztadatbázist).

service mysql start
mysql_secure_installation

15. Lépjen be a MySQL adatbázisba a mysql -u root -p paranccsal, hogy tesztelje a működését, és hagyja ki az exit paranccsal.

mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16. Ha nem ismeri túl jól a MySQL parancssort. telepítse a PhpMyAdmin Web frontendet a következő parancsok végrehajtásával.

emerge -pv dev-db/phpmyadmin
echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
emerge  --ask dev-db/phpmyadmin

17. Miután a PhpMyAdmin befejezte a telepítést, hozzon létre egy konfigurációs fájlt a minta konfigurációs fájl alapján, módosítsa a blowfish_secret jelszót egy véletlenszerű karakterlánccal, majd hozzon létre egy szimbolikus hivatkozást a /usr fájlból. /share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ a Virtual Hosts dokumentum gyökérútvonalához, amelyhez hozzá szeretne férni a PhpMyAdmin webes felületéhez.

cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/
cp config.sample.inc.php  config.inc.php
nano config.inc.php

ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/  /var/www/localhost/htdocs/phpmyadmin

18. A MySQL adatbázis eléréséhez a PhpMyAdmin webes felületén keresztül nyissa meg a böngészőt, és használja a következő URL-címet: https://localhost/phpmyadmin.

19. Az utolsó lépés a szolgáltatások rendszerszintű engedélyezése, hogy az újraindítás után automatikusan elinduljanak.

rc-update add nginx default
rc-update add php-fpm default
rc-update add mysql default

Mostantól minimális környezetbeállításunk van a webtárhelyhez, és ha csak HTML, JavaScript és PHP dinamikus generált oldalakat használ, és nincs szüksége SSL-webhelyekre, akkor a fenti konfiguráció kielégítő lesz az Ön számára.