Uppsetning LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM og PhpMyAdmin) í Gentoo Linux


Gentoo er ein hraðskreiðasta Linux dreifingin vegna þess að hún er byggð frá heimildastefnu og býður upp á hugbúnaðarstjórnunarforritið sitt – Portage – ákveðin verkfæri sem þarf til að byggja upp fullkominn vefhönnuðarvettvang sem virkar og virkar mjög hratt og, einnig, hefur mikla customization.

Þetta efni mun leiða þig í gegnum skref fyrir skref uppsetningarferli til að byggja upp fullkomið vefumhverfisvettvang með LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin), og með hjálpinni á NOTA fána sem Portage Package Management býður upp á, sem býður upp á pakkavirkni í samantektarferli - einingar eða stillingar sem þarf fyrir vefpallur, munu mjög fínstilla stillingar netþjónsins.

  1. Gentoo uppsetning með hertu sniði fyrir netþjón sem snýr að internetinu – Gentoo uppsetningarleiðbeiningar.
  2. Netkerfi stillt með fastri IP tölu.

Skref 1: Settu upp Nginx vefþjón

1. Áður en þú reynir að halda áfram með Nginx uppsetningu skaltu ganga úr skugga um að NIC hafi verið stillt með Static IP Address og ganga úr skugga um að Portage heimildir og kerfið þitt sé uppfært.

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

2. Eftir að uppfærsluferlinu lýkur skaltu halda áfram með Nginx uppsetningu með því að velja æskilegar stillingar og einingar með því að enduróma Nginx USE fána í Portage make.conf skrá. Listaðu fyrst Nginx sjálfgefnar uppsetningareiningar með því að keyra eftirfarandi skipun.

# emerge -pv nginx

Notaðu equery skipunina fyrir nákvæmar upplýsingar um einingar (NOTA fána fyrir pakka).

# equery uses nginx

Settu síðan upp Nginx með eftirfarandi skipun.

# emerge --ask nginx

Ef þú þarft auka einingar (WebDAV, fancyindex, GeoIP o.s.frv.) fyrir utan sjálfgefnar, sem Nginx mun safna saman með, skaltu bæta þeim öllum við á einni línu á Portage make.conf skrá með NGINX_MODULES_HTTP tilskipun, settu síðan saman Nginx aftur með nýjum einingum.

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

3. Eftir að Portage lýkur við að koma Nginx á framfæri, byrjaðu http púkinn og staðfestu það með því að beina vafranum þínum á http://localhost.

Skref 2: Settu upp PHP

4. Til að nota PHP kraftmikið vefforritunarmál með Nginx netþjóni skaltu setja upp PHP-FastCGI Process Manager (FPM) með því að bæta við fpm og öðrum mikilvægum PHP Viðbætur á Portage NOTA fána og vertu viss um að fjarlægja Apache viðbótina.

# 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. Áður en PHP-FPM er byrjað þarf að beita nokkrum breytingum á þjónustustillingarskrá. Opnaðu php-fpm stillingarskrá og gerðu eftirfarandi breytingar.

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

Finndu og afskrifaðu eftirfarandi tilskipanir til að líta svona út.

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. Eftir að PHP-FPM stillingarskrá hefur verið breytt, breyttu PHP-FPM annálaskrárheimildum og ræstu þjónustuna.

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

Jafnvel þó að PHP-FPM þjónusta sé ræst, getur Nginx ekki átt samskipti við PHP gátt, svo það þarf að gera nokkrar breytingar á Nginx stillingarskrám.

Skref 3: Breyttu Nginx stillingum

7. Nginx sjálfgefna sniðmátsstillingarskrá veitir bara grunn HTTP fals fyrir localhost eingöngu. Til að breyta þessari hegðun og virkja sýndargestgjafa skaltu opna nginx.conf skrána sem staðsett er á /etc/nginx/ slóð og gera eftirfarandi stillingar.

# nano /etc/nginx/nginx.conf

Finndu fyrstu þjóna blokkina sem samsvarar localhost og hlustar á 127.0.0.1 IP tölu og mæli með að allar fullyrðingar hans líti út eins og á skjámyndinni hér að neðan.

Ekki loka skránni ennþá og farðu alveg neðst og bættu við eftirfarandi yfirlýsingu áður en þú lokar síðustu axlaböndum \ } \.

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

8. Næst skaltu búa til síður-virkar og síður-tiltækar (fyrir ónotaða sýndargestgjafa) Nginx möppur og stillingarskrár fyrir localhost á HTTP og HTTPS samskiptareglum.

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

Búðu til eftirfarandi skráarstillingu fyrir localhost.

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

Bættu við eftirfarandi skráarefni.

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

Fyrir localhost með SSL búðu til eftirfarandi stillingarskrá.

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

Bættu við eftirfarandi skráarefni.

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ú er kominn tími til að búa til tvær forskriftir á keyrsluslóð kerfis (PATH skel breyta), sem virkar sem skipanir til að virkja eða slökkva á Nginx Virtual Hosts.

Búðu til fyrstu Bash forskriftina sem heitir n2ensite sem mun virkja stillingarskrár sýndargestgjafa með því að búa til táknræna tengingu milli tilgreindra gestgjafa frá síður-tiltækar yfir í síður-virkar.

# nano /usr/local/bin/n2eniste

Bættu við eftirfarandi skráarefni.

#!/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. Búðu síðan til annað handritið sem kallast n2dissite, sem mun eyða tilgreindum virkum sýndarhýsingum af síðuvirkum Nginx slóð með eftirfarandi efni.

# nano /usr/local/bin/n2dissite

Bættu við eftirfarandi efni.

#!/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. Eftir að hafa lokið við að breyta Bash forskriftum skaltu bæta við framkvæmdarheimildum og virkja localhost Virtual Hosts – notaðu Virtual Host stillingarskráarheiti án .conf ending, endurræstu síðan Nginx og PHP-FPM þjónustu til að beita breytingum.

# 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. Til að prófa stillingar búðu til PHP upplýsingaskrá á localhost sjálfgefna rótarslóð fyrir vefskrár (/var/www/localhost/htdocs) og beina vafranum þínum á https://localhost/info .php eða http://localhost/info.php.

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

Með því að nota localhost Virtual Hosts stillingarskrár sem sniðmát og Nginx n2enmod og n2dismod geturðu auðveldlega bætt við eins mörgum vefsíðum og þú vilt, en tryggt að þú hafir gildar DNS-bendingar fyrir internet. -snýr vefþjóni eða notaðu færslur á staðnum á kerfishýsingarskrá.

Skref 4: Settu upp MySQL/MariaDB + PhpMyAdmin

Til að setja upp MySQL gagnagrunn og PhpMyAdmin vefviðmót fyrir MySQL, notaðu sömu aðferð og sýnd er þegar þú setur upp LAMP á Gentoo.

13. Í staðinn ef þú vilt nota MariaDB, drop-in skipti fyrir MySQL, notaðu eftirfarandi skipanir til að fá NOTA fána og setja það upp.

# emerge -pv mariadb
# emerge --ask mariadb

Ef þú færð pakkaátök við MySQL skaltu bæta eftirfarandi línum við 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. Eftir að MySQL gagnagrunnur hefur verið settur upp, byrjaðu þjónustuna og tryggðu hana með mysql_secure_installation (breyttu lykilorði fyrir rót, slökktu á innskráningu rótar utan localhost, fjarlægðu nafnlausan notanda/prófunargagnagrunn).

# service mysql start
# mysql_secure_installation

15. Sláðu inn MySQL gagnagrunn með mysql -u root -p skipuninni til að prófa virkni hans og skildu eftir skipunina exit.

# mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16. Ef þú ert ekki of góður með MySQL skipanalínuna. settu upp PhpMyAdmin vefframhlið með því að framkvæma eftirfarandi skipanir.

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

17. Eftir að PhpMyAdmin lýkur uppsetningu, búðu til stillingarskrá byggða á sýnishornsstillingarskrá, breyttu blowfish_secret lykilorði með handahófskenndum streng, búðu til táknrænan hlekk frá /usr/share/webapps/phpmyadmin/ phpmyadmin_version_number/htdocs/ að Virtual Hosts skjal rótarslóð sem þú vilt fá aðgang að PhpMyAdmin vefviðmótinu.

# 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. Til að fá aðgang að MySQL gagnagrunninum í gegnum PhpMyAdmin vefviðmótið skaltu opna vafra og nota eftirfarandi vefslóð https://localhost/phpmyadmin.

19. Lokaskrefið er að virkja þjónustu alls kerfis, til að byrja sjálfkrafa eftir endurræsingu.

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

Nú erum við með lágmarksumhverfisuppsetningu fyrir vefhýsingu, og ef þú notar aðeins HTML, JavaScript og PHP dynamic myndaðar síður og þú þarft ekki SSL vefsíður, ætti uppsetningin hér að ofan að vera fullnægjandi fyrir þig.