Installazzjoni ta' LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM u PhpMyAdmin) f'Gentoo Linux
Gentoo huwa wieħed mill-aktar distribuzzjoni mgħaġġla tal-Linux minħabba l-orjentazzjoni tal-bini minn sorsi u jipprovdi permezz tal-programm ta’ ġestjoni tas-softwer tiegħu – Portage – ċerti għodod meħtieġa biex tinbena pjattaforma kompluta tal-iżviluppatur tal-web li taġixxi u taħdem malajr ħafna u, wkoll, għandu grad għoli ta 'adattament.
Dan is-suġġett se jmexxik permezz ta' proċess ta' installazzjoni pass pass għall-bini ta' pjattaforma ta' ambjent Web kompluta b'LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin), u bl-għajnuna fuq UŻA l-bnadar ipprovduti minn Portage Package Management, li joffri sett ta 'funzjonalità ta' pakkett fuq proċess ta 'kumpilazzjoni - moduli jew settings meħtieġa għal pjattaforma tal-web, se jtejbu ħafna l-konfigurazzjonijiet tas-server.
- Installazzjoni ta' Gentoo bi profil imwebbes għal server li jiffaċċja l-Internet – Gwida għall-Installazzjoni ta' Gentoo.
- Netwerk ikkonfigurat b'indirizz IP statiku.
Pass 1: Installa Nginx Web Server
1. Qabel ma tipprova tipproċedi bl-installazzjoni ta 'Nginx kun żgur li l-NIC tiegħek ġie kkonfigurat b'Indirizz IP Statiku u kun żgur li s-sorsi Portage u s-sistema tiegħek huma aġġornati.
$ sudo su - # emerge --sync # emerge --update --deep --with-bdeps=y @world
2. Wara li jintemm il-proċess ta 'aġġornament, ipproċedi bl-installazzjoni ta' Nginx billi tagħżel is-settings u l-moduli preferuti billi tirrepeti Bnadar USE Nginx għall-fajl Portage make.conf. L-ewwel elenka l-moduli ta 'installazzjoni default Nginx billi tħaddem il-kmand li ġej.
# emerge -pv nginx
Għal informazzjoni dettaljata dwar il-moduli (USE flags for packages) uża l-kmand equery.
# equery uses nginx
Imbagħad installa Nginx bil-kmand li ġej.
# emerge --ask nginx
Jekk għandek bżonn moduli żejda (WebDAV, fancyindex, GeoIP, eċċ) minbarra dawk default, li Nginx se jikkompila magħhom, waħħalhom kollha fuq linja waħda fuq il-fajl Portage make.conf b'NGINX_MODULES_HTTP direttiva, imbagħad ikkompila mill-ġdid Nginx b'moduli ġodda.
# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf # emerge --ask nginx
3. Wara li Portage jispiċċa Nginx emerġenti, ibda http daemon u vverifikah billi tidderieġi l-browser tiegħek lejn http://localhost.
Pass 2: Installa PHP
4. Biex tuża lingwa ta 'programmar tal-web dinamika PHP mas-server Nginx, installa PHP-FastCGI Process Manager (FPM) billi tehmeż fpm u PHP importanti ieħor Estensjonijiet fuq Portage USE bnadar u kun żgur li tneħħi l-estensjoni ta 'Apache.
# 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. Qabel ma tibda PHP-FPM xi bidliet jeħtieġ li jiġu applikati għall-fajl tal-konfigurazzjoni tas-servizz. Iftaħ il-fajl tal-konfigurazzjoni php-fpm u agħmel il-bidliet li ġejjin.
# nano /etc/php/fpm-php5.5/php-fpm.conf
Sib u neħħi l-kumment tad-direttivi li ġejjin biex tidher bħal din.
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. Wara li l-fajl tal-konfigurazzjoni PHP-FPM jiġi editjat, ibdel il-permessi tal-fajl log PHP-FPM u ibda s-servizz.
# chmod 755 /var/log/php-fpm.log # /etc/init.d/php-fpm start
Anke jekk jinbeda s-servizz PHP-FPM, Nginx ma jistax jikkomunika mal-gateway PHP, għalhekk, jeħtieġ li jsiru xi bidliet fuq il-fajls tal-konfigurazzjoni Nginx.
Pass 3: Editja Konfigurazzjonijiet Nginx
7. Il-fajl tal-konfigurazzjoni tal-mudell default Nginx jipprovdi biss socket HTTP bażiku għal localhost biss. Biex tibdel din l-imġiba u tippermetti l-Ospiti Virtwali, iftaħ il-fajl nginx.conf li jinsab fit-triq /etc/nginx/ u agħmel il-konfigurazzjonijiet li ġejjin.
# nano /etc/nginx/nginx.conf
Sib l-ewwel blokk server li jikkorrispondi għal localhost u jisma' fuq l-indirizz IP 127.0.0.1 u faħħar id-dikjarazzjonijiet kollha tiegħu biex jidhru bħal fil-screenshot hawn taħt.
Tagħlaqx il-fajl s'issa u mur fil-qiegħ nett u żid id-dikjarazzjoni li ġejja qabel ma tagħlaq l-aħħar ċineg kaboċċi \ } \.
Include /etc/nginx/sites-enabled/*.conf;
8. Imbagħad oħloq siti-enabled u siti-disponibbli (għal Hosts Virtwali mhux użati) direttorji Nginx u fajls ta 'konfigurazzjoni għal localhost fuq protokolli HTTP u HTTPS.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
Oħloq il-konfigurazzjoni tal-fajl li ġejja għal localhost.
# nano /etc/nginx/sites-available/localhost.conf
Żid il-kontenut tal-fajl li ġej.
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 } }
Għal localhost b'SSL oħloq il-fajl ta 'konfigurazzjoni li ġej.
# nano /etc/nginx/sites-available/localhost-ssl.conf
Żid il-kontenut tal-fajl li ġej.
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. Issa wasal iż-żmien li toħloq żewġ skripts fuq mogħdija eżekutibbli tas-sistema (varjabbli tal-qoxra PATH), li taġixxi bħala kmandi biex tattiva jew tiddiżattiva Nginx Virtual Hosts.
Oħloq l-ewwel skript Bash bl-isem n2ensite li se jippermetti fajls ta’ konfigurazzjoni ta’ Virtual Hosts billi toħloq rabta simbolika bejn hosts speċifikati minn siti-disponibbli għal siti-enabled.
# nano /usr/local/bin/n2eniste
Żid il-kontenut tal-fajl li ġej.
#!/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. Imbagħad oħloq it-tieni skript imsejjaħ n2dissite, li se jħassar l-Ospiti Virtwali attivi speċifikati minn siti-enabled passaġġ Nginx bil-kontenut li ġej.
# nano /usr/local/bin/n2dissite
Żid il-kontenut li ġej.
#!/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. Wara li tispiċċa l-editjar ta 'skripts Bash, ehmeż il-permessi ta' eżekuzzjoni u attiva l-Ospiti Virtwali tal-localhost - uża l-isem tal-fajl tal-konfigurazzjoni tal-Ospiti Virtwali mingħajr estensjoni .conf, imbagħad terġa 'tibda s-servizzi Nginx u PHP-FPM biex tapplika l-bidliet.
# 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. Biex tittestja l-konfigurazzjonijiet oħloq fajl ta' informazzjoni PHP fuq il-mogħdija ta' l-għeruq default ta' localhost għall-fajls tal-web (/var/www/localhost/htdocs) u tidderieġi mill-ġdid il-browser tiegħek fuq https://localhost/info .php jew http://localhost/info.php.
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
Bl-użu ta' fajls ta' konfigurazzjoni ta' localhost Virtual Hosts bħala mudelli u Nginx n2enmod u n2dismod, issa tista' faċilment iżżid websajts kemm trid, imma tiżgura li għandek indikaturi validi tad-DNS għal Internet -jiffaċċjaw web server jew uża entrati lokalment fuq il-fajl hosts tas-sistema.
Pass 4: Installa MySQL/MariaDB + PhpMyAdmin
Biex tinstalla database MySQL u PhpMyAdmin Web interface għal MySQL uża l-istess proċedura ppreżentata fuq Installing LAMP fuq Gentoo.
13. Bi tpattija jekk trid tuża MariaDB, drop-in replacement għal MySQL, uża l-kmandi li ġejjin biex tikseb USE flags u tinstallah.
# emerge -pv mariadb # emerge --ask mariadb
F'każ li jkollok kunflitt ta' pakkett ma' MySQL żid il-linji li ġejjin ma' 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. Wara li d-database MySQL tkun installata, ibda s-servizz u assigurah billi tuża mysql_secure_installation (biddlu l-password tal-għeruq, iddiżattiva l-login tal-għeruq barra l-localhost, neħħi utent anonimu/database tat-test).
# service mysql start # mysql_secure_installation
15. Daħħal id-database MySQL billi tuża, mysql -u root -p kmand biex tittestja l-funzjonalità tagħha u ħalliha bi kmand ħruġ.
# mysql -u root -p MariaDB > show databases; MariaDB > exit;
16. Jekk m'intix tajjeb wisq bil-linja tal-kmand MySQL. installa PhpMyAdmin Web frontend billi tesegwixxi l-kmandi li ġejjin.
# emerge -pv dev-db/phpmyadmin # echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use # emerge --ask dev-db/phpmyadmin
17. Wara li PhpMyAdmin jispiċċa l-installazzjoni, oħloq fajl ta' konfigurazzjoni bbażat fuq kampjun ta' fajl ta' konfigurazzjoni, ibdel il-passphrase blowfish_secret b'sekwenza każwali, imbagħad oħloq link simboliku minn /usr/share/webapps/phpmyadmin/ phpmyadmin_version_number/htdocs/ għal Virtual Hosts dokument root path li trid taċċessa l-interface web PhpMyAdmin.
# 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. Biex taċċessa d-database MySQL permezz tal-interface tal-Web PhpMyAdmin, iftaħ browser u uża l-indirizz URL li ġej https://localhost/phpmyadmin.
19. L-aħħar pass huwa li s-servizzi tas-sistema kollha jkunu jistgħu jibdew awtomatikament wara l-istartjar mill-ġdid.
# rc-update add nginx default # rc-update add php-fpm default # rc-update add mysql default
Issa għandna setup ta 'ambjent minimu għall-Web hosting, u jekk tuża biss paġni ġenerati dinamiċi HTML, JavaScript u PHP u m'għandekx bżonn websajts SSL, il-konfigurazzjoni ta' hawn fuq għandha tkun sodisfaċenti għalik.