Installere LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM og PhpMyAdmin) i Gentoo Linux
Gentoo er en av de raskeste Linux-distribusjonene på grunn av sin bygge fra kildeorientering og gir av sitt programvareadministrasjonsprogram – Portage – visse verktøy som trengs for å bygge en komplett nettutviklerplattform som fungerer og fungerer veldig raskt og har også en høy grad av tilpasning.
Dette emnet tar deg gjennom en trinnvis installasjonsprosess for å bygge en komplett nettmiljøplattform med LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin), og med hjelp på BRUK flagg levert av Portage Package Management, som tilbyr et sett med pakkefunksjonalitet på kompileringsprosessen – moduler eller innstillinger som trengs for en nettplattform, vil i stor grad justere serverkonfigurasjonene.
Krav
- Gentoo-installasjon med en herdet profil for en Internett-vendt server – Gentoo installasjonsveiledning.
- Nettverk konfigurert med en statisk IP-adresse.
Trinn 1: Installer Nginx Web Server
1. Før du prøver å fortsette med Nginx-installasjonen, sørg for at nettverkskortet ditt er konfigurert med en statisk IP-adresse, og sørg for at Portage-kilder og systemet ditt er oppdatert.
sudo su -
emerge --sync
emerge --update --deep --with-bdeps=y @world
2. Etter at oppdateringsprosessen er ferdig, fortsett med Nginx-installasjonen ved å velge de foretrukne innstillingene og modulene ved å ekko Nginx USE-flagg til Portage make.conf-filen . List først Nginx standard installasjonsmoduler ved å kjøre følgende kommando.
emerge -pv nginx
For detaljert modulinformasjon (USE-flagg for pakker) bruk equery-kommandoen.
equery uses nginx
Installer deretter Nginx med følgende kommando.
emerge --ask nginx
Hvis du trenger ekstra moduler (WebDAV, fancyindex, GeoIP, osv.) i tillegg til standardmodulene, som Nginx vil kompilere med, legg til dem alle på en enkelt linje på Portage make.conf-fil med NGINX_MODULES_HTTP-direktivet, og kompiler deretter Nginx på nytt med nye moduler.
echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
emerge --ask nginx
3. Etter at Portage er ferdig med å utvikle Nginx, start http daemon og verifiser den ved å dirigere nettleseren til http://localhost.
Trinn 2: Installer PHP
4. For å bruke PHP dynamisk webprogrammeringsspråk med Nginx-server, installer PHP-FastCGI Process Manager (FPM) ved å legge til fpm og andre viktige PHP-utvidelser på Portage USE-flagg og sørg for at du fjerner Apache-utvidelsen.
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. Før du starter PHP-FPM, må noen endringer tas i bruk i tjenestekonfigurasjonsfilen. Åpne php-fpm konfigurasjonsfil og gjør følgende endringer.
nano /etc/php/fpm-php5.5/php-fpm.conf
Finn og fjern kommentarene til følgende direktiver for å se slik ut.
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. Etter at PHP-FPM-konfigurasjonsfilen er redigert, endre PHP-FPM-loggfiltillatelser og start tjenesten.
chmod 755 /var/log/php-fpm.log
/etc/init.d/php-fpm start
Selv om PHP-FPM-tjenesten startes, kan ikke Nginx kommunisere med PHP-gateway, så noen endringer må gjøres på Nginx-konfigurasjonsfiler.
Trinn 3: Rediger Nginx-konfigurasjoner
7. Nginx standard mal konfigurasjonsfil gir bare en grunnleggende HTTP-socket kun for lokal vert. For å endre denne virkemåten og aktivere virtuelle verter, åpne nginx.conf-filen som ligger på /etc/nginx/-banen og foreta følgende konfigurasjoner.
nano /etc/nginx/nginx.conf
Finn den første server-blokken som tilsvarer localhost og lytter til 127.0.0.1 IP-adressen, og anbefal at alle setningene ser ut som i skjermbildet nedenfor.
Ikke lukk filen ennå, og flytt helt til bunnen og legg til følgende setning før du sist lukker krøllete klammeparenteser “ } “.
Include /etc/nginx/sites-enabled/*.conf;
8. Opprett deretter nettsteder-aktiverte og nettsteder-tilgjengelige (for ubrukte virtuelle verter) Nginx-kataloger og konfigurasjonsfiler for localhost på HTTP- og HTTPS-protokoller .
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
Opprett følgende filkonfigurasjon for localhost.
nano /etc/nginx/sites-available/localhost.conf
Legg til følgende filinnhold.
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
}
}
Opprett følgende konfigurasjonsfil for localhost med SSL.
nano /etc/nginx/sites-available/localhost-ssl.conf
Legg til følgende filinnhold.
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 det på tide å lage to skript på en systemkjørbar bane (` PATH shell-variabel), som fungerer som kommandoer for å aktivere eller deaktivere Nginx Virtual Hosts.
Lag det første Bash-skriptet kalt n2ensite som vil aktivere Virtual Hosts-konfigurasjonsfiler ved å opprette en symbolsk kobling mellom spesifiserte verter fra sites-available til sites-enabled.
nano /usr/local/bin/n2eniste
Legg til følgende filinnhold.
#!/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. Lag deretter det andre skriptet kalt n2dissite, som vil slette spesifiserte aktive virtuelle verter fra nettstedaktiverte Nginx-sti med følgende innhold.
nano /usr/local/bin/n2dissite
Legg til følgende innhold.
#!/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. Etter å ha fullført redigeringen av Bash-skript, legg til utførelsestillatelser og aktiver virtuelle vertsverter – bruk konfigurasjonsfilnavnet for Virtual Host uten filtypen .conf, og start deretter Nginx- og PHP-FPM-tjenestene på nytt å bruke endringer.
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. For å teste konfigurasjoner oppretter du en PHP-infofil på localhost standard rotbane for nettfiler (/var/www/localhost/htdocs) og omdiriger nettleseren din på https://localhost/info.php eller http://localhost/info.php.
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
Ved å bruke localhost Virtual Hosts-konfigurasjonsfiler som maler og Nginx n2enmod og n2dismod kan du enkelt nå legge til så mange nettsteder du vil, men forsikre deg om at du har gyldige DNS-pekere for et Internett -vendt webserver eller bruk oppføringer lokalt på systemvertsfilen.
Trinn 4: Installer MySQL/MariaDB + PhpMyAdmin
For å installere MySQL-databasen og PhpMyAdmin-webgrensesnittet for MySQL, bruk samme prosedyre som presentert under Installere LAMP på Gentoo.
13. Til gjengjeld hvis du vil bruke MariaDB, drop-in erstatning for MySQL, bruk følgende kommandoer for å få USE flagg og installere det.
emerge -pv mariadb
emerge --ask mariadb
I tilfelle du får en pakkekonflikt med MySQL, legg til følgende linjer i 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. Etter at MySQL-databasen er installert, start tjenesten og sikre den med mysql_secure_installation (endre root-passord, deaktiver root-pålogging utenfor localhost, fjern anonym bruker-/testdatabase).
service mysql start
mysql_secure_installation
15. Gå inn i MySQL-databasen ved å bruke kommandoen mysql -u root -p for å teste funksjonaliteten og la den stå med kommandoen exit.
mysql -u root -p
MariaDB > show databases;
MariaDB > exit;
16. Hvis du ikke er for god med MySQL-kommandolinjen. installer PhpMyAdmin Web-grensesnitt ved å utføre følgende kommandoer.
emerge -pv dev-db/phpmyadmin
echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
emerge --ask dev-db/phpmyadmin
17. Etter at PhpMyAdmin er ferdig med installeringen, oppretter du en konfigurasjonsfil basert på eksempelkonfigurasjonsfilen, endrer blowfish_secret passordfrase med en tilfeldig streng, og oppretter deretter en symbolsk lenke fra /usr /share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ til Virtual Hosts-dokumenter rotbanen du vil ha tilgang til PhpMyAdmin-nettgrensesnittet.
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. For å få tilgang til MySQL-databasen gjennom PhpMyAdmin-nettgrensesnittet, åpne en nettleser og bruk følgende URL-adresse https://localhost/phpmyadmin.
19. Det siste trinnet er å aktivere tjenester for hele systemet, for å starte automatisk etter omstart.
rc-update add nginx default
rc-update add php-fpm default
rc-update add mysql default
Nå har vi et minimalt miljøoppsett for webhotell, og hvis du bare bruker HTML, JavaScript og PHP dynamisk genererte sider og du ikke trenger SSL-nettsteder, bør konfigurasjonen ovenfor være tilfredsstillende for deg.