LEMP:n (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM ja PhpMyAdmin) asentaminen Gentoo Linuxiin


Gentoo on yksi nopeimmista Linux-jakeluista, koska se on rakennettu lähteistä, ja se tarjoaa ohjelmistonhallintaohjelmassaan Portagessa tiettyjä työkaluja, joita tarvitaan täydellisen verkkokehitysalustan rakentamiseen. toimii ja toimii erittäin nopeasti, ja sillä on myös korkea räätälöintiaste.

Tämä aihe opastaa sinut vaiheittaisen asennusprosessin läpi täydellisen verkkoympäristöalustan rakentamiseen LEMP:llä (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) ja KÄYTÄ lippuja, joka tarjoaa joukon pakettitoimintoja käännösprosessissa – verkkoalustaan tarvittavat moduulit tai asetukset muokkaavat palvelinkokoonpanoja suuresti.

Vaatimukset

  1. Gentoon asennus kovetetulla profiililla Internetiin päin olevalle palvelimelle – Gentoon asennusopas.
  2. Verkko on määritetty staattisella IP-osoitteella.

Vaihe 1: Asenna Nginx Web Server

1. Ennen kuin yrität jatkaa Nginxin asennusta, varmista, että verkkokorttiisi on määritetty staattinen IP-osoite ja varmista, että Portage-lähteet ja järjestelmä ovat ajan tasalla.

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

2. Kun päivitysprosessi on valmis, jatka Nginxin asennusta valitsemalla haluamasi asetukset ja moduulit toistamalla Nginx USE -liput Portagen make.conf-tiedostoon . Listaa ensin Nginx-oletusasennusmoduulit suorittamalla seuraava komento.

emerge -pv nginx

Tarkempia tietoja moduuleista (KÄYTÄ lippuja paketeille) saat equery-komennolla.

equery uses nginx

Asenna sitten Nginx seuraavalla komennolla.

emerge --ask nginx

Jos tarvitset oletusmoduulien lisäksi ylimääräisiä moduuleja (WebDAV, fancyindex, GeoIP, jne.), joilla Nginx kääntää, liitä ne kaikki yhdelle riville Portagen make.conf-tiedostoon komennolla NGINX_MODULES_HTTP, käännä sitten Nginx uudelleen uusilla moduuleilla.

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

3. Kun Portage on valmis kehittämään Nginxin, käynnistä http-daemon ja vahvista se ohjaamalla selaimesi osoitteeseen http://localhost.

Vaihe 2: Asenna PHP

4. Jos haluat käyttää PHP:n dynaamista web-ohjelmointikieltä Nginx-palvelimen kanssa, asenna PHP-FastCGI Process Manager (FPM) liittämällä fpm ja muut tärkeät PHP-laajennukset Portage USE -lippuihin ja varmista, että poistat Apache-laajennuksen.

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. Ennen PHP-FPM:n käynnistämistä joitain muutoksia on tehtävä palvelun asetustiedostoon. Avaa php-fpm-määritystiedosto ja tee seuraavat muutokset.

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

Etsi seuraavat käskyt ja poista kommentit näyttämään tältä.

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. Kun PHP-FPM-määritystiedosto on muokattu, muuta PHP-FPM-lokitiedoston käyttöoikeuksia ja käynnistä palvelu.

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

Vaikka PHP-FPM-palvelu käynnistetään, Nginx ei voi kommunikoida PHP-yhdyskäytävän kanssa, joten Nginx-määritystiedostoihin on tehtävä joitain muutoksia.

Vaihe 3: Muokkaa Nginx-asetuksia

7. Nginx-oletusmallin määritystiedosto tarjoaa vain perus HTTP-vastakkeen vain localhostille. Jos haluat muuttaa tätä toimintaa ja ottaa Virtual Hostit käyttöön, avaa nginx.conf-tiedosto, joka sijaitsee polussa /etc/nginx/ ja tee seuraavat asetukset.

nano /etc/nginx/nginx.conf

Etsi ensimmäinen palvelin-lohko, joka vastaa localhostia ja kuuntelee 127.0.0.1 IP-osoitetta, ja suosittele sen kaikkia lauseita näyttämään alla olevan kuvakaappauksen kaltaisilta.

Älä vielä sulje tiedostoa, vaan siirry aivan alareunaan ja lisää seuraava lause ennen viimeistä kiharasulkujen sulkemista " } ".

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

8. Luo seuraavaksi sivustot-käytössä olevat ja sivustot-käytettävissä olevat (käyttämättömille virtuaaliisännille) Nginx-hakemistot ja määritystiedostot localhostille HTTP- ja HTTPS-protokollia varten .

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

Luo seuraavat tiedostoasetukset localhostille.

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

Lisää seuraava tiedostosisältö.

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-salausta käyttävälle localhostille luo seuraava asetustiedosto.

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

Lisää seuraava tiedostosisältö.

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. Nyt on aika luoda kaksi komentosarjaa järjestelmän suorituspolulle (` PATH-kuoren muuttuja), jotka toimivat komentoina Nginx Virtual Hosts -palvelimen aktivoimiseksi tai poistamiseksi käytöstä.

Luo ensimmäinen Bash-komentosarja nimeltä n2ensite, joka ottaa käyttöön Virtual Hosts -määritystiedostot luomalla symbolisen linkin tiettyjen isäntien välille sivustot-käytettävissä ja sivustot-käytössä. >.

nano /usr/local/bin/n2eniste

Lisää seuraava tiedostosisältö.

#!/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. Luo sitten toinen n2dissite-niminen komentosarja, joka poistaa määritetyt aktiiviset virtuaalipalvelimet sivustoja sallitusta Nginx-polusta seuraavalla sisällöllä.

nano /usr/local/bin/n2dissite

Lisää seuraava sisältö.

#!/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. Kun Bash-komentosarjojen muokkaus on valmis, liitä suoritusoikeudet ja aktivoi Localhost Virtual Hosts – käytä Virtual Host -määritystiedoston nimeä ilman .conf-tunnistetta ja käynnistä sitten Nginx- ja PHP-FPM-palvelut uudelleen. muutosten soveltamiseen.

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. Testaa kokoonpanoja luomalla PHP-tietotiedosto web-tiedostojen localhost-oletusjuuripolulle (/var/www/localhost/htdocs) ja ohjaa selaimesi uudelleen osoitteessa https://localhost/info.php tai http://localhost/info.php.

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

Käyttämällä localhost Virtual Hosts -määritystiedostoja malleina ja Nginx n2enmod ja n2dismod voit nyt helposti lisätä niin monta verkkosivustoa kuin haluat, mutta varmista, että sinulla on kelvolliset DNS-osoittimet Internetiin -WWW-palvelinta päin tai käytä merkintöjä paikallisesti järjestelmän isäntätiedostossa.

Vaihe 4: Asenna MySQL/MariaDB + PhpMyAdmin

Asenna MySQL-tietokanta ja PhpMyAdmin Web-käyttöliittymä MySQL:lle noudattamalla samaa menettelyä, joka on esitetty kohdassa LAMP:n asentaminen Gentoon.

13. Vastineeksi, jos haluat käyttää MariaDB:tä, MySQL:n drop-in-korvaa, käytä seuraavia komentoja saadaksesi USE-liput ja asentaaksesi sen.

emerge -pv mariadb
emerge --ask mariadb

Jos saat pakettiristiriidan MySQL:n kanssa, lisää seuraavat rivit Portagen package.accept.keywords-kohtaan.

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. Kun MySQL-tietokanta on asennettu, käynnistä palvelu ja suojaa se käyttämällä mysql_secure_installation-toimintoa (vaihda pääkäyttäjän salasana, poista root-kirjautuminen paikallispalvelimen ulkopuolella, poista anonyymi käyttäjä/testitietokanta).

service mysql start
mysql_secure_installation

15. Anna MySQL-tietokanta komennolla mysql -u root -p testataksesi sen toimivuutta ja jätä se exit-komennolla.

mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16. Jos et ole kovin hyvä MySQL-komentorivin käytössä. asenna PhpMyAdmin Web frontend suorittamalla seuraavat komennot.

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

17. Kun PhpMyAdmin on suorittanut asennuksen, luo määritystiedosto mallikonfiguraatiotiedoston perusteella, muuta blowfish_secret-salasana satunnaisella merkkijonolla ja luo sitten symbolinen linkki tiedostosta /usr /share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ Virtual Hosts -asiakirjan juuripolkuun, johon haluat käyttää PhpMyAdmin-verkkokäyttöliittymää.

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. Pääset MySQL-tietokantaan PhpMyAdmin-verkkoliittymän kautta avaamalla selain ja käyttämällä seuraavaa URL-osoitetta https://localhost/phpmyadmin.

19. Viimeinen vaihe on ottaa käyttöön koko järjestelmän kattavat palvelut, jotka käynnistyvät automaattisesti uudelleenkäynnistyksen jälkeen.

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

Nyt meillä on minimaaliset ympäristöasetukset web-isännöintiä varten, ja jos käytät vain dynaamisia HTML-, JavaScript- ja PHP-sivuja etkä tarvitse SSL-verkkosivustoja, yllä olevan kokoonpanon pitäisi olla sinulle tyydyttävä.