Installation af LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM og PhpMyAdmin) i Gentoo Linux
Gentoo er en af de hurtigste Linux-distributioner på grund af dens opbygning fra kilderorientering og leveres af sit softwarestyringsprogram - Portage - visse værktøjer, der er nødvendige for at opbygge en komplet webudviklerplatform, der fungerer og fungerer meget hurtigt, og har også en høj grad af tilpasning.
Dette emne fører dig gennem en trinvis installationsproces til opbygning af en komplet webmiljøplatform med LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) og med hjælp på BRUG flag leveret af Portage Package Management, der tilbyder et sæt pakkefunktionalitet ved kompileringsprocessen - moduler eller indstillinger, der er nødvendige for en webplatform, vil meget finjustere serverkonfigurationerne.
- Gentoo-installation med en hærdet profil til en internetadvendt server - Gentoo-installationsvejledning.
- Netværk konfigureret med en statisk IP-adresse.
Trin 1: Installer Nginx Web Server
1. Før du forsøger at fortsætte med Nginx-installationen, skal du sikre dig, at dit NIC er konfigureret med en statisk IP-adresse, og sørg for, at Portage-kilder og dit system er opdateret.
$ sudo su - # emerge --sync # emerge --update --deep --with-bdeps=y @world
2. Når opdateringsprocessen er afsluttet, skal du fortsætte med Nginx-installationen ved at vælge de foretrukne indstillinger og moduler ved at ekko Nginx USE-flag til Portage make.conf -filen. Første liste Nginx standardinstallationsmoduler ved at køre følgende kommando.
# emerge -pv nginx
For detaljerede moduloplysninger (BRUG flag for pakker) skal du bruge kommandoen equery .
# equery uses nginx
Installer derefter Nginx med følgende kommando.
# emerge --ask nginx
Hvis du har brug for ekstra moduler (WebDAV, fancyindex, GeoIP osv.) Udover standardmoduler, som Nginx vil kompilere med, tilføj dem alle på en enkelt linje i Portage make.conf -fil med NGINX_MODULES_HTTP direktivet, kompiler derefter Nginx med nye moduler.
# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf # emerge --ask nginx
3. Når Portage er færdig med at komme frem til Nginx, skal du starte http-dæmonen og kontrollere den ved at dirigere din browser til http:/localhost .
Trin 2: Installer PHP
4. For at bruge PHP dynamisk webprogrammeringssprog med Nginx-serveren skal du installere PHP-FastCGI Process Manager ( FPM ) ved at tilføje fpm og andre vigtige PHP Udvidelser på Portage USE-flag og sørg for at fjerne Apache-udvidelsen.
# 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, skal der foretages nogle ændringer i servicekonfigurationsfilen. Åbn konfigurationsfilen php-fpm , og foretag følgende ændringer.
# nano /etc/php/fpm-php5.5/php-fpm.conf
Find og fjern kommentar til følgende direktiver for at se sådan ud.
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. Efter PHP-FPM-konfigurationsfil er den redigeret, skal du ændre PHP-FPM-logfiltilladelser og starte tjenesten.
# chmod 755 /var/log/php-fpm.log # /etc/init.d/php-fpm start
Selvom PHP-FPM-tjenesten startes, kan Nginx ikke kommunikere med PHP gateway, så der skal foretages nogle ændringer på Nginx-konfigurationsfiler.
Trin 3: Rediger Nginx-konfigurationer
7. Nginx-standardskabelonkonfigurationsfil giver kun et grundlæggende HTTP-stik til kun localhost. For at ændre denne adfærd og aktivere virtuelle værter skal du åbne filen nginx.conf placeret på /etc/nginx/ stien og foretage følgende konfigurationer.
# nano /etc/nginx/nginx.conf
Find den første server -blok, der svarer til localhost og lytter til 127.0.0.1 IP-adresse, og beordrer alle dens udsagn til at se ud i nedenstående skærmbillede.
Luk ikke filen endnu, og flyt helt til bunden, og tilføj følgende udsagn inden sidste lukning af krøllede seler “}“ .
Include /etc/nginx/sites-enabled/*.conf;
8. Opret derefter webstedsaktiverede og websteds-tilgængelige (til ubrugte virtuelle værter) Nginx-mapper og konfigurationsfiler til localhost på HTTP- og HTTPS-protokoller.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
Opret følgende filkonfiguration til localhost.
# nano /etc/nginx/sites-available/localhost.conf
Tilføj følgende filindhold.
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 } }
Opret følgende konfigurationsfil til localhost med SSL.
# nano /etc/nginx/sites-available/localhost-ssl.conf
Tilføj følgende filindhold.
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. Nu er det tid til at oprette to scripts på en systemkørbar sti ($ PATH shell-variabel), der fungerer som kommandoer til at aktivere eller deaktivere Nginx Virtual Hosts.
Opret det første Bash-script med navnet n2ensite , der aktiverer Virtual Hosts-konfigurationsfiler ved at oprette et symbolsk link mellem specificerede værter fra sites-tilgængelige til sites-enabled .
# nano /usr/local/bin/n2eniste
Tilføj følgende filindhold.
#!/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. Opret derefter det andet script kaldet n2dissite , der sletter specificerede aktive virtuelle værter fra webstedsaktiverede Nginx-sti med følgende indhold.
# nano /usr/local/bin/n2dissite
Tilføj følgende indhold.
#!/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. Når du er færdig med at redigere Bash-scripts, tilføj udførelsestilladelser og aktiver localhost Virtual Hosts - brug Virtual Host-konfigurationsfilnavnet uden .conf udvidelse, genstart derefter Nginx og PHP-FPM-tjenester for at anvende ændringer.
# 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 at teste konfigurationer skal du oprette en PHP-infofil på localhosts standardsti til webfiler (/var/www/localhost/htdocs ) og omdirigere din browser til https:/localhost/info .php eller http: //localhost/info.php .
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
Ved hjælp af localhost Virtual Hosts-konfigurationsfiler som skabeloner og Nginx n2enmod og n2dismod kan du nemt nu tilføje så mange websteder, som du vil, men sørg for at du har gyldige DNS-markører til et internet -overfladen af webserveren eller brug poster lokalt på systemværtsfilen.
Trin 4: Installer MySQL/MariaDB + PhpMyAdmin
For at installere MySQL-databasen og PhpMyAdmin-webgrænsefladen til MySQL skal du bruge den samme procedure, der er beskrevet under Installation af LAMP på Gentoo.
13. Til gengæld, hvis du vil bruge MariaDB, drop-in erstatning for MySQL, skal du bruge følgende kommandoer til at få USE-flag og installere det.
# emerge -pv mariadb # emerge --ask mariadb
Hvis du får en pakkekonflikt med MySQL, skal du tilføje følgende linjer til 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. Efter MySQL-database er installeret, start service og sikre den ved hjælp af mysql_secure_installation (skift rodadgangskode, deaktiver rodlogin uden for localhost, fjern anonym bruger/testdatabase).
# service mysql start # mysql_secure_installation
15. Indtast MySQL-database ved hjælp af kommandoen mysql -u root -p for at teste dens funktionalitet og lade den være 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 frontend ved at udfø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. Når installationen af PhpMyAdmin er færdig, skal du oprette en konfigurationsfil baseret på en eksempelkonfigurationsfil, ændre blowfish_secret adgangssætning med en tilfældig streng og derefter oprette et symbolsk link fra /usr/share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ til Virtual Hosts-dokumentets rodsti, du vil have adgang til PhpMyAdmin-webgrænsefladen.
# 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 at få adgang til MySQL-databasen via PhpMyAdmin-webgrænsefladen skal du åbne en browser og bruge følgende URL-adresse https:/localhost/phpmyadmin .
19. Det sidste trin er at aktivere tjenester i hele systemet til automatisk at starte efter genstart.
# rc-update add nginx default # rc-update add php-fpm default # rc-update add mysql default
Nu har vi et minimalt miljøopsætning til webhosting, og hvis du kun bruger HTML, JavaScript og PHP dynamisk genererede sider, og du ikke har brug for SSL-websteder, skal konfigurationen ovenfor være tilfredsstillende for dig.