Instalace LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM a PhpMyAdmin) v Gentoo Linuxu
Gentoo je jednou z nejrychlejších linuxových distribucí díky své orientaci na zdroje a poskytuje svým programem pro správu softwaru – Portage – určité nástroje potřebné k vybudování kompletní webové vývojářské platformy, která působí a funguje velmi rychle a má také vysoký stupeň přizpůsobení.
Toto téma vás provede krok za krokem instalačním procesem pro vytvoření kompletní platformy webového prostředí s LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) as pomocí na Příznaky USE poskytované Portage Package Management, který nabízí sadu funkcí balíčků v procesu kompilace – moduly nebo nastavení potřebná pro webovou platformu, značně vyladí konfiguraci serveru.
Požadavky
- Instalace Gentoo se zesíleným profilem pro server připojený k Internetu – Průvodce instalací Gentoo.
- Síť nakonfigurovaná se statickou IP adresou.
Krok 1: Nainstalujte webový server Nginx
1. Než se pokusíte pokračovat v instalaci Nginx, ujistěte se, že vaše NIC byla nakonfigurována se statickou IP adresou a ujistěte se, že zdroje Portage a váš systém jsou aktuální.
sudo su -
emerge --sync
emerge --update --deep --with-bdeps=y @world
2. Po dokončení procesu aktualizace pokračujte v instalaci Nginx výběrem preferovaných nastavení a modulů ozvěnou příznaků Nginx USE do souboru Portage make.conf . Nejprve vypište výchozí instalační moduly Nginx spuštěním následujícího příkazu.
emerge -pv nginx
Pro podrobné informace o modulech (USE příznaky pro balíčky) použijte příkaz equery.
equery uses nginx
Poté nainstalujte Nginx pomocí následujícího příkazu.
emerge --ask nginx
Pokud potřebujete další moduly (WebDAV, fancyindex, GeoIP atd.) kromě výchozích modulů, se kterými bude Nginx kompilovat, připojte je všechny na jeden řádek v souboru Portage make.conf s NGINX_MODULES_HTTP a poté znovu zkompilujte Nginx s novými moduly.
echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
emerge --ask nginx
3. Poté, co Portage dokončí vznikající Nginx, spusťte http démona a ověřte jej přesměrováním vašeho prohlížeče na http://localhost.
Krok 2: Nainstalujte PHP
4. Chcete-li používat dynamický webový programovací jazyk PHP se serverem Nginx, nainstalujte PHP-FastCGI Process Manager (FPM) přidáním fpm a další důležitá rozšíření PHP na USE příznaky Portage a ujistěte se, že jste odstranili rozšíření 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. Před spuštěním PHP-FPM je třeba provést některé změny v konfiguračním souboru služby. Otevřete konfigurační soubor php-fpm a proveďte následující změny.
nano /etc/php/fpm-php5.5/php-fpm.conf
Najděte a odkomentujte následující direktivy, aby vypadaly takto.
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. Po úpravě konfiguračního souboru PHP-FPM změňte oprávnění souboru protokolu PHP-FPM a spusťte službu.
chmod 755 /var/log/php-fpm.log
/etc/init.d/php-fpm start
I když je služba PHP-FPM spuštěna, Nginx nemůže komunikovat s bránou PHP, takže je třeba provést některé změny v konfiguračních souborech Nginx.
Krok 3: Upravte konfigurace Nginx
7. Výchozí konfigurační soubor šablony Nginx poskytuje pouze základní HTTP socket pouze pro localhost. Chcete-li toto chování změnit a povolit virtuální hostitele, otevřete soubor nginx.conf umístěný na cestě /etc/nginx/ a proveďte následující konfigurace.
nano /etc/nginx/nginx.conf
Najděte první blok serveru, který odpovídá localhost a naslouchá na IP adrese 127.0.0.1 a doporučte, aby všechna jeho prohlášení vypadala jako na obrázku níže.
Soubor zatím nezavírejte a přejděte úplně dolů a před posledním uzavřením složených závorek přidejte následující příkaz “ } “.
Include /etc/nginx/sites-enabled/*.conf;
8. Dále vytvořte sites-enabled a sites-available (pro nepoužívané virtuální hostitele) Nginx adresáře a konfigurační soubory pro localhost na protokolech HTTP a HTTPS .
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
Vytvořte následující konfiguraci souboru pro localhost.
nano /etc/nginx/sites-available/localhost.conf
Přidejte následující obsah souboru.
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
}
}
Pro localhost s SSL vytvořte následující konfigurační soubor.
nano /etc/nginx/sites-available/localhost-ssl.conf
Přidejte následující obsah souboru.
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. Nyní je čas vytvořit dva skripty na cestě spustitelného systému (proměnná shellu ` PATH), které fungují jako příkazy pro aktivaci nebo deaktivaci virtuálních hostitelů Nginx.
Vytvořte první Bash skript s názvem n2ensite, který povolí konfigurační soubory virtuálních hostitelů vytvořením symbolického propojení mezi určenými hostiteli z sites-available na sites-enabled.
nano /usr/local/bin/n2eniste
Přidejte následující obsah souboru.
#!/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. Poté vytvořte druhý skript s názvem n2dissite, který odstraní zadané aktivní virtuální hostitele z cesty Nginx s povolenými weby s následujícím obsahem.
nano /usr/local/bin/n2dissite
Přidejte následující obsah.
#!/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. Po dokončení úprav skriptů Bash přidejte oprávnění ke spuštění a aktivujte virtuální hostitele localhost – použijte název konfiguračního souboru virtuálního hostitele bez přípony .conf, poté restartujte služby Nginx a PHP-FPM aplikovat změny.
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. Chcete-li otestovat konfigurace, vytvořte informační soubor PHP na výchozí kořenové cestě pro webové soubory na localhost (/var/www/localhost/htdocs) a přesměrujte svůj prohlížeč na https://localhost/info.php nebo http://localhost/info.php.
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
Pomocí konfiguračních souborů localhost Virtual Hosts jako šablon a Nginx n2enmod a n2dismod můžete nyní snadno přidat libovolný počet webových stránek, ale ujistěte se, že máte platné DNS ukazatele pro internet -facing web server nebo použít položky lokálně v souboru hostitelů systému.
Krok 4: Nainstalujte MySQL/MariaDB + PhpMyAdmin
Pro instalaci databáze MySQL a webového rozhraní PhpMyAdmin pro MySQL použijte stejný postup, jaký je uveden v části Instalace LAMP na Gentoo.
13. Na oplátku, pokud chcete používat MariaDB, náhradní náhradu za MySQL, použijte následující příkazy k získání příznaků USE a instalaci.
emerge -pv mariadb
emerge --ask mariadb
V případě, že dojde ke konfliktu balíčku s MySQL, přidejte následující řádky do 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. Po instalaci databáze MySQL spusťte službu a zabezpečte ji pomocí mysql_secure_installation (změňte heslo uživatele root, zakažte přihlášení uživatele root mimo localhost, odstraňte anonymního uživatele/testovací databázi).
service mysql start
mysql_secure_installation
15. Vstupte do databáze MySQL pomocí příkazu mysql -u root -p pro otestování její funkčnosti a opusťte ji příkazem exit.
mysql -u root -p
MariaDB > show databases;
MariaDB > exit;
16. Pokud nejste příliš dobří s příkazovým řádkem MySQL. nainstalujte webové rozhraní PhpMyAdmin spuštěním následujících příkazů.
emerge -pv dev-db/phpmyadmin
echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
emerge --ask dev-db/phpmyadmin
17. Po dokončení instalace PhpMyAdmin vytvořte konfigurační soubor založený na ukázkovém konfiguračním souboru, změňte heslo blowfish_secret náhodným řetězcem a poté vytvořte symbolický odkaz z /usr /share/webapps/phpmyadmin/phpmyadmin_version_number/htdocs/ ke kořenové cestě dokumentu virtuálních hostitelů, ke kterému chcete přistupovat k webovému rozhraní 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. Pro přístup k databázi MySQL přes webové rozhraní PhpMyAdmin otevřete prohlížeč a použijte následující URL adresu https://localhost/phpmyadmin.
19. Posledním krokem je povolit služby v celém systému, aby se automaticky spouštěly po restartu.
rc-update add nginx default
rc-update add php-fpm default
rc-update add mysql default
Nyní máme minimální nastavení prostředí pro webhosting, a pokud používáte pouze dynamicky generované stránky HTML, JavaScript a PHP a nepotřebujete weby SSL, výše uvedená konfigurace by pro vás měla být uspokojivá.