LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM un PhpMyAdmin) instalēšana Gentoo Linux


Gentoo ir viens no ātrākajiem Linux izplatīšanas veidiem, ņemot vērā orientāciju uz avotiem, un programmatūras pārvaldības programma Portage nodrošina dažus rīkus, kas nepieciešami, lai izveidotu pilnīgu tīmekļa izstrādātāju platformu, kas darbojas un darbojas ļoti ātri un, ir arī augsta līmeņa pielāgošana.

Šī tēma palīdzēs jums veikt soli pa solim pilnīgas tīmekļa vides platformas izveidi ar LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) un ar palīdzību USE karodziņi , ko nodrošina Portage Package Management, kas kompilācijas procesā piedāvā pakotņu funkcionalitātes komplektu - tīmekļa platformai nepieciešamos moduļus vai iestatījumus, ļoti kniebinās servera konfigurācijas.

  1. Gentoo instalēšana ar rūdītu profilu serverim, kas vērsts uz internetu - Gentoo instalēšanas rokasgrāmata.
  2. Tīkls konfigurēts ar statisku IP adresi.

1. darbība: instalējiet Nginx tīmekļa serveri

1. Pirms mēģināt turpināt Nginx instalēšanu, pārliecinieties, ka jūsu NIC ir konfigurēts ar statisko IP adresi, un pārliecinieties, vai Portage avoti un jūsu sistēma ir atjaunināti.

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

2. Pēc atjaunināšanas procesa beigām turpiniet Nginx instalēšanu, izvēloties vēlamos iestatījumus un moduļus, atbalsojot Nginx USE karodziņus uz Portage make.conf failu. Vispirms uzskaitiet Nginx noklusējuma instalācijas moduļus, izpildot šādu komandu.

# emerge -pv nginx

Lai iegūtu detalizētu informāciju par moduļiem (USE karodziņi paketēm), izmantojiet komandu equery .

# equery uses nginx

Pēc tam instalējiet Nginx ar šādu komandu.

# emerge --ask nginx

Ja jums ir nepieciešami papildus moduļi (WebDAV, fancyindex, GeoIP utt.), Ar kuriem Nginx apkopos, pievienojiet tos visus vienā rindiņā Portage failā make.conf ar NGINX_MODULES_HTTP direktīva, pēc tam atkārtoti apkopojiet Nginx ar jauniem moduļiem.

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

3. Kad Portage ir pabeidzis parādīties Nginx, sāciet http dēmonu un pārbaudiet to, novirzot pārlūkprogrammu uz http:// localhost .

2. darbība: instalējiet PHP

4. Lai izmantotu PHP dinamisko tīmekļa programmēšanas valodu ar Nginx serveri, instalējiet PHP-FastCGI procesu pārvaldnieku ( FPM ), pievienojot fpm un citu svarīgu PHP Paplašinājumi uz Portage USE karodziņiem un noteikti noņemiet Apache paplašinājumu.

# 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. Pirms PHP-FPM palaišanas ir jāveic dažas izmaiņas pakalpojuma konfigurācijas failā. Atveriet konfigurācijas failu php-fpm un veiciet šādas izmaiņas.

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

Atrodiet un atceliet šīs direktīvas, lai izskatītos šādi.

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ēc PHP-FPM konfigurācijas faila rediģēšanas mainiet PHP-FPM žurnāla faila atļaujas un sāciet pakalpojumu.

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

Pat ja tiek palaists PHP-FPM pakalpojums, Nginx nevar sazināties ar PHP vārteju, tāpēc Nginx konfigurācijas failos ir jāveic dažas izmaiņas.

3. darbība: rediģējiet Nginx konfigurācijas

7. Nginx noklusējuma veidnes konfigurācijas fails tikai nodrošina pamata HTTP ligzdu tikai localhost. Lai mainītu šo darbību un iespējotu virtuālos saimniekus, atveriet failu nginx.conf , kas atrodas ceļā /etc/nginx/, un veiciet šādas konfigurācijas.

# nano /etc/nginx/nginx.conf

Atrodiet pirmo servera bloku, kas atbilst localhost un klausās 127.0.0.1 IP adresi, un iesakiet visiem tā paziņojumiem izskatīties zemāk redzamajā ekrānuzņēmumā.

Vēl neaizveriet failu un pārvietojieties pašā apakšā un pievienojiet šo paziņojumu pirms pēdējās cirtaino lencīšu aizvēršanas “}“ .

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

8. Pēc tam izveidojiet vietnēm iespējotas un pieejamās vietnes (neizmantotajiem virtuālajiem mitinātājiem) Nginx direktorijus un konfigurācijas failus vietējam serverim HTTP un HTTPS protokolos.

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

Vietējam hostam izveidojiet šādu faila konfigurāciju.

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

Pievienojiet šādu faila saturu.

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

Vietējam hostam ar SSL izveidojiet šādu konfigurācijas failu.

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

Pievienojiet šādu faila saturu.

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. Tagad ir pienācis laiks izveidot divus skriptus uz sistēmas izpildāmā ceļa (čaulas mainīgais $PATH), kas darbojas kā komandas, lai aktivizētu vai atspējotu Nginx Virtual Hosts.

Izveidojiet pirmo Bash skriptu ar nosaukumu n2ensite , kas iespējos virtuālo saimnieku konfigurācijas failus, izveidojot simbolisku saiti starp norādītajiem resursdatoriem no vietnes pieejamas uz vietnēm iespējotas .

# nano /usr/local/bin/n2eniste

Pievienojiet šādu faila saturu.

#!/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. Pēc tam izveidojiet otro skriptu ar nosaukumu n2dissite , kas izdzēsīs norādītos aktīvos virtuālos uzņēmējus no vietnēm iespējota Nginx ceļa ar šādu saturu.

# nano /usr/local/bin/n2dissite

Pievienojiet šo saturu.

#!/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ēc Bash skriptu rediģēšanas pabeigšanas pievienojiet izpildes atļaujas un aktivizējiet localhost Virtual Hosts - izmantojiet virtuālā resursdatora konfigurācijas faila nosaukumu bez paplašinājuma .conf , pēc tam restartējiet Nginx un PHP-FPM pakalpojumus, lai piemērotu izmaiņas.

# 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. Lai pārbaudītu konfigurācijas, izveidojiet PHP informācijas failu vietējā host noklusējuma saknes ceļā tīmekļa failiem (/var/www/localhost/htdocs ) un novirziet pārlūku vietnē https:/localhost/info .php vai http://localhost/info.php .

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

Izmantojot localhost virtuālo saimnieku konfigurācijas failus kā veidnes un Nginx n2enmod un n2dismod , jūs tagad varat viegli pievienot tik daudz vietņu, cik vēlaties, taču pārliecinieties, ka jums ir derīgas DNS norādes internetam -apskatīt tīmekļa serveri vai lokāli izmantot ierakstus sistēmas resursdatora failā.

4. darbība: instalējiet MySQL/MariaDB + PhpMyAdmin

Lai instalētu MySQL datu bāzi un MySQL tīmekļa saskarni PhpMyAdmin, izmantojiet to pašu procedūru, kas aprakstīta sadaļā LAMP instalēšana Gentoo.

13. Ja vēlaties izmantot MariaDB, MySQL nomaiņas aizstājēju, izmantojiet šīs komandas, lai iegūtu USE karodziņus un instalētu to.

# emerge -pv mariadb
# emerge --ask mariadb

Gadījumā, ja rodas pakotnes konflikts ar MySQL, pievienojiet šādas rindas portālam 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ēc MySQL datu bāzes instalēšanas sāciet pakalpojumu un nodrošiniet to, izmantojot mysql_secure_installation (nomainiet root paroli, atspējojiet root pieteikšanos ārpus localhost, noņemiet anonīmu lietotāja/testa datu bāzi).

# service mysql start
# mysql_secure_installation

15. Ievadiet MySQL datu bāzi, izmantojot komandu mysql -u root -p , lai pārbaudītu tās funkcionalitāti, un atstājiet to ar komandu exit .

# mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16. Ja MySQL komandrinda nav pārāk laba. instalējiet PhpMyAdmin Web frontend, izpildot šādas komandas.

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

17. Kad PhpMyAdmin ir pabeidzis instalēšanu, izveidojiet konfigurācijas failu, pamatojoties uz konfigurācijas faila paraugu, nomainiet blowfish_secret paroli ar nejaušu virkni, pēc tam izveidojiet simbolisku saiti no /usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ uz Virtual Hosts dokumenta saknes ceļu, kuram vēlaties piekļūt PhpMyAdmin tīmekļa saskarnei.

# 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. Lai piekļūtu MySQL datu bāzei, izmantojot PhpMyAdmin tīmekļa saskarni, atveriet pārlūkprogrammu un izmantojiet šādu URL adresi https:/localhost/phpmyadmin .

19. Pēdējais solis ir ļaut pakalpojumiem visā sistēmā automātiski sākt darboties pēc pārstartēšanas.

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

Tagad tīmekļa mitināšanai ir iestatīts minimāls vides iestatījums, un, ja jūs izmantojat tikai HTML, JavaScript un PHP dinamiski ģenerētas lapas un jums nav nepieciešamas SSL vietnes, iepriekšējai konfigurācijai vajadzētu būt jums apmierinošai.