LEMP-i (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM ja PhpMyAdmin) installimine Gentoo Linuxi


Gentoo on üks kiirematest Linuxi levitamistest, lähtudes allikatele orienteeritusest, ja pakub tarkvarahaldusprogrammi Portage abil teatud tööriistu, mis on vajalikud täieliku veebiarendaja platvormi loomiseks, mis toimib ja töötab väga kiiresti samuti on sellel kõrge kohandamisaste.

See teema viib teid samm-sammult läbi installimisprotsessi täieliku veebikeskkonna platvormi loomiseks koos LEMP -iga (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) ja abiga saidil USE lipud , mille pakub Portage Package Management, mis pakub kompileerimisprotsessis paketi funktsionaalsust - veebiplatvormi jaoks vajalikud moodulid või sätted, muudavad serveri konfiguratsioone tugevasti.

  1. Gentoo installimine Interneti-suunalise serveri karastatud profiiliga - Gentoo installijuhend.
  2. Staatilise IP-aadressiga konfigureeritud võrk.

1. samm: installige Nginxi veebiserver

1. Enne Nginxi installimise jätkamist veenduge, et teie võrguvõrgul oleks konfigureeritud staatiline IP-aadress ja veenduge, et Portage'i allikad ja teie süsteem oleksid ajakohased.

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

2. Kui värskendusprotsess on lõppenud, jätkake Nginxi installimist, valides eelistatud sätted ja moodulid, kajastades Nginx USE lipud faili Portage make.conf . Esmalt loetlege Nginxi vaikimisi installimoodulid, käivitades järgmise käsu.

# emerge -pv nginx

Moodulite üksikasjaliku teabe saamiseks (pakettide USE lipud) kasutage käsku equery .

# equery uses nginx

Seejärel installige Nginx järgmise käsuga.

# emerge --ask nginx

Kui vajate lisaks vaikemoodulitele täiendavaid mooduleid (WebDAV, fancyindex, GeoIP jne), siis selle Nginxi abil kompileeritakse, lisage need kõik ühel real real faili Portage make.conf failiga NGINX_MODULES_HTTP direktiiv, seejärel kompileeri Nginx uuesti uute moodulitega.

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

3. Kui Portage on Nginxi esilekutsumise lõpetanud, käivitage http-deemon ja kontrollige seda, suunates oma brauseri saidile http:// localhost .

2. samm: installige PHP

4. PHP dünaamilise veebi programmeerimiskeele kasutamiseks Nginxi serveriga installige PHP-FastCGI protsessihaldur ( FPM ), lisades sellele fpm ja muu olulise PHP Laiendused Portage USE lippudel ja eemaldage kindlasti Apache laiendus.

# 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. Enne PHP-FPM-i käivitamist tuleb teenuse konfiguratsioonifailis teha mõned muudatused. Avage konfiguratsioonifail php-fpm ja tehke järgmised muudatused.

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

Selliseks nägemiseks leidke järgmised direktiivid ja kommenteerige neid.

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. Pärast PHP-FPM-i konfiguratsioonifaili redigeerimist muutke PHP-FPM-i logifaili õigusi ja käivitage teenus.

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

Isegi kui PHP-FPM-teenust käivitatakse, ei saa Nginx PHP-lüüsiga suhelda, seega tuleb Nginxi konfiguratsioonifailides teha mõned muudatused.

3. samm: muutke Nginxi konfiguratsioone

7. Nginxi vaikemalli konfiguratsioonifail pakub põhilise HTTP-sokli ainult localhostile. Selle käitumise muutmiseks ja virtuaalsete hostide lubamiseks avage fail nginx.conf , mis asub teel /etc/nginx/ ja tehke järgmised konfiguratsioonid.

# nano /etc/nginx/nginx.conf

Leidke esimene server -blokk, mis vastab localhostile ja kuulab 127.0.0.1 IP-aadressi, ja kiidake kõiki selle avaldusi välja nägema alloleval ekraanipildil.

Ärge sulgege veel faili, liikuge kõige põhja ja lisage järgmine lause enne viimast lokkisulgude sulgemist \"} \" .

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

8. Järgmisena looge saidid lubatud ja saidid saadaval (kasutamata virtuaalsetele hostidele) Nginxi kataloogid ja konfiguratsioonifailid localhostile HTTP ja HTTPS protokollides.

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

Looge localhosti jaoks järgmine failikonfiguratsioon.

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

Lisage järgmine faili sisu.

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
                        }
                }

SSL-iga kohaliku hosti jaoks looge järgmine konfiguratsioonifail.

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

Lisage järgmine faili sisu.

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. Nüüd on aeg luua kaks skripti süsteemi käivitatavale teele (shellimuutuja $PATH), mis toimivad Nginxi virtuaalsete hostide aktiveerimiseks või keelamiseks.

Looge esimene Bashi skript nimega n2ensite , mis lubab virtuaalsete hostide konfiguratsioonifailid, luues sümboolse lingi määratud hostide vahel saidid saadaval kuni saidid lubatud .

# nano /usr/local/bin/n2eniste

Lisage järgmine faili sisu.

#!/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. Seejärel looge teine skript nimega n2dissite , mis kustutab määratletud aktiivsed virtuaalsed hostid järgmise saidiga saidil lubatud Nginxi teelt.

# nano /usr/local/bin/n2dissite

Lisage järgmine sisu.

#!/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. Pärast Bashi skriptide redigeerimise lõpetamist lisage täitmisõigused ja aktiveerige localhosti virtuaalsed hostid - kasutage virtuaalhosti konfiguratsioonifaili nime ilma laiendita .conf , seejärel taaskäivitage muudatuste rakendamiseks Nginxi ja PHP-FPM-i teenused.

# 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. Konfiguratsioonide testimiseks looge veebifailide localhosti vaiketeateel PHP infofail (/var/www/localhost/htdocs ) ja suunake oma brauser saidile https:/localhost/info .php või http://localhost/info.php .

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

Kasutades localhosti virtuaalhostide konfiguratsioonifaile mallidena ja Nginxi n2enmod ja n2dismod , saate nüüd hõlpsalt lisada nii palju veebisaite kui soovite, kuid veenduge, et teil on Interneti jaoks kehtivad DNS-i osutajad - veebiserveri avamine või kirjete kasutamine lokaalselt süsteemi hostifailis.

4. samm: installige MySQL/MariaDB + PhpMyAdmin

MySQL-i andmebaasi ja MySQL-i veebiliidese PhpMyAdmin installimiseks kasutage sama protseduuri, mis on esitatud LAMP-i installimisel Gentoo.

13. Vastutasuks, kui soovite kasutada MariaDB-d, MySQL-i drop-in asendust, kasutage järgmisi käske KASUTA lippude hankimiseks ja installimiseks.

# emerge -pv mariadb
# emerge --ask mariadb

Kui teil tekib MySQL-iga paketikonflikt, lisage järgmised read saidile Portage package.accept.keywords .

# 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. Pärast MySQL-i andmebaasi installimist käivitage teenus ja turvaline see, kasutades rakendust mysql_secure_installation (muutke juurparooli, keelake juur-sisselogimine väljaspool localhost-i, eemaldage anonüümne kasutaja/testi andmebaas).

# service mysql start
# mysql_secure_installation

15. Sisestage MySQL andmebaas, kasutades käsku mysql -u root -p , et testida selle funktsionaalsust ja jätke see käsuga exit .

# mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16. Kui te pole MySQL-i käsureaga liiga hea. installige PhpMyAdmini veebi frontend, käivitades järgmised käsud.

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

17. Kui PhpMyAdmin on installimise lõpetanud, looge konfiguratsioonifail, mis põhineb konfiguratsioonifailil, muutke blowfish_secret parooli juhusliku stringiga ja seejärel looge sümboolne link saidilt /usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ virtuaalsete hostide dokumendi juurteele, millele soovite juurde pääseda PhpMyAdmini veebiliidesele.

# 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. MySQL-i andmebaasile pääsemiseks PhpMyAdmini veebiliidese kaudu avage brauser ja kasutage järgmist URL-i aadressi https:/localhost/phpmyadmin .

19. Viimane samm on võimaldada teenuseid kogu süsteemis käivitada automaatselt pärast taaskäivitamist.

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

Nüüd on meil veebimajutuse jaoks minimaalne keskkonna seadistus ja kui kasutate ainult HTML-, JavaScripti ja PHP dünaamiliselt loodud lehti ja te ei vaja SSL-i veebisaite, peaks ülaltoodud konfiguratsioon teie jaoks rahuldav olema.