Vyhledávání na webu

Jak nainstalovat Nginx, MariaDB a PHP (FEMP) Stack na FreeBSD


Tento tutoriál vás provede instalací a konfigurací FBEMP v nejnovější verzi FreeBSD 11.x. FBEMP je zkratka, která popisuje následující kolekci softwaru:

FreeBSD 11.1 Unixová distribuce, webový server Nginx, systém správy relačních databází MariaDB (komunitní fork MySQL) a dynamický programovací jazyk PHP, který běží na straně serveru.

Požadavky

  1. Instalace FreeBSD 11.x
  2. 10 věcí, které je třeba udělat po instalaci FreeBSD

Krok 1: Nainstalujte webový server Nginx na FreeBSD

1. První službou, kterou nainstalujeme pro náš stack FBEMP v FreeBSD, je webový server reprezentovaný Nginx software.

Webový server Nginx má více předpřipravených balíčků dostupných v FreeBSD 11.x PORTS. Chcete-li získat seznam binárních souborů Nginx z úložišť Portů, zadejte na svém serverovém terminálu následující příkazy.

ls /usr/ports/www/ | grep nginx
pkg search -o nginx

2. V této konkrétní konfiguraci nainstalujeme verzi hlavního balíčku Nginx zadáním níže uvedeného příkazu. Správa balíčků pkg se vás zeptá, zda chcete pokračovat v instalaci balíčku nginx. Chcete-li zahájit proces instalace, odpovězte ano (y v příkazovém řádku).

pkg install nginx

3. Po instalaci balíčku webového serveru Nginx do vašeho systému spusťte následující příkazy, abyste povolili démona v celém systému a spustili službu ve vašem systému.

sysrc nginx_enable="yes"
service nginx start

4. Dále pomocí příkazu sockstat ověřte sokety servisní sítě Nginx, pokud jsou vázány na portu 80/TCP, vydáním níže uvedeného příkaz. Výstup příkazu sockstat bude veden přes obslužný program grep, aby se vrácené výsledky redukovaly pouze na řetězec nginx.

sockstat -4 | grep nginx

5. Nakonec otevřete prohlížeč na stolním počítači ve vaší síti a navštivte výchozí webovou stránku Nginx prostřednictvím protokolu HTTP. Napište FQDN vašeho počítače nebo název vaší domény nebo IP adresu vašeho serveru do adresy URL prohlížeče, která je uložena pro vyžádání výchozí webové stránky webového serveru Nginx. Ve vašem prohlížeči by se měla zobrazit zpráva „Vítejte v nginx!“, jak je znázorněno na níže uvedeném snímku obrazovky.

http://yourdomain.com
http://your_server_IP
http://your_machine_FQDN

6. Výchozí adresář weboot pro webový obsah Nginx se nachází v absolutní systémové cestě /usr/local/www/nginx/. V tomto umístění byste měli pro svůj web vytvořit, zkopírovat nebo nainstalovat soubory webového obsahu, jako jsou soubory .html nebo .php.

Chcete-li toto umístění změnit, upravte hlavní konfigurační soubor nginx a změňte kořenovou direktivu tak, aby odrážela vaši novou cestu webroot.

nano /usr/local/etc/nginx/nginx.conf

Zde vyhledejte a aktualizujte následující řádek, aby odrážel vaši novou cestu webroot:

root	/path/to/new/webroot;

Krok 2: Nainstalujte PHP na FreeBSD

7. Na rozdíl od Apache HTTP serveru Nginx nemá schopnost nativně zpracovávat PHP kód. Na oplátku webový server Nginx předává požadavky PHP interpretu PHP, jako je démon php-fpm FastCGI, který kontroluje a provádí kód. Výsledný kód je poté vrácen zpět do Nginx, který kód znovu sestaví do požadovaného formátu html a odešle kód dále do webového prohlížeče návštěvníka.

FreeBSD 11.x Úložiště portů nabízí několik binárních verzí pro programovací jazyk PHP, jako je PHP 5.6, PHP 7.0 a PHP 7.1< uvolní. Chcete-li zobrazit všechny dostupné předkompilované verze PHP v FreeBSD 11.x, spusťte níže uvedené příkazy.

pkg search -o php
ls /usr/ports/lang/ | grep php

8. Můžete si vybrat instalaci jakékoli verze PHP, kterou považujete za nejvhodnější pro webovou aplikaci, kterou provozujete ve svém systému. V této příručce však nainstalujeme nejnovější verzi PHP.

Chcete-li nainstalovat vydání PHP 7.1 a některé důležité moduly PHP vyžadované pro různé webové aplikace, spusťte následující příkaz.

pkg install php71 php71-mysqli php71-mcrypt php71-zlib php71-gd php71-json mod_php71 php71-mbstring php71-curl

9. Poté, co do systému nainstalujete balíčky PHP, otevřete konfigurační soubor PHP-FPM pro Nginx a upravte hodnoty uživatele a skupiny tak, aby odpovídaly hodnotě v běhovém prostředí Nginx uživatele, což je www. Nejprve vytvořte zálohu souboru pomocí níže uvedeného příkazu.

cp /usr/local/etc/php-fpm.d/www.conf{,.backup}

Poté otevřete soubor a aktualizujte následující řádky, jak je uvedeno v níže uvedené ukázce.

user = www
group = www

10. Vytvořte také konfigurační soubor PHP používaný pro produkci zadáním níže uvedeného příkazu. V tomto souboru můžete provádět vlastní změny, které budou aplikovány na PHP interpret za běhu.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Například změňte nastavení date.timezone pro interpret PHP, abyste aktualizovali fyzické umístění vašeho počítače, jak je znázorněno v příkladu níže. Seznam časových pásem PHP lze nalézt zde: http://php.net/manual/en/timezones.php.

vi /usr/local/etc/php.ini

Přidejte následující časové pásmo (nastavte časové pásmo podle vaší země).

date.timezone = Europe/London

Můžete také upravit další proměnné PHP, jako je maximální velikost nahrávaného souboru, kterou lze zvýšit úpravou níže uvedených hodnot:

upload_max_filesize = 10M
post_max_size = 10M

11. Poté, co provedete vlastní nastavení pro PHP, povolte a spusťte démona PHP-FPM, abyste mohli použít nové konfigurace pomocí níže uvedených příkazů.

sysrc php_fpm_enable=yes
service php-fpm start

12. Ve výchozím nastavení se démon PHP-FPM ve FreeBSD váže na místní síťový soket na portu 9000/TCP. Chcete-li zobrazit síťové zásuvky PHP-FPM, proveďte následující příkaz.

sockstat -4 -6| grep php-fpm

13. Aby webový server Nginx předal PHP skripty serveru brány FastCGI, který naslouchá na soketu 127.0.0.1:9000, otevřete hlavní konfigurační soubor Nginx a přidejte následující blok kódu, jak je znázorněno v níže uvedené ukázce.

vi /usr/local/etc/nginx/nginx.conf

Blok kódu FastCGI pro nginx:

 location ~ \.php$ {
        root	/usr/local/www/nginx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;    
        include        fastcgi_params;
        	}

14. Chcete-li zobrazit aktuální informace o PHP pro váš server, vytvořte soubor info.php v cestě weboot Nginx zadáním následujícího příkazu.

echo "<?php phpinfo(); ?>" | tee /usr/local/www/nginx/info.php

15. Poté otestujte a restartujte démona Nginx, abyste použili nastavení PHP FastCGI a navštivte stránku info.php v prohlížeči.

nginx -t # Test nginx configuration file for syntax errors
service nginx restart

Nahraďte odpovídajícím způsobem IP adresu nebo název domény v níže uvedených odkazech. Informační stránka PHP by měla zobrazovat informace, jak je znázorněno na níže uvedeném snímku obrazovky.

http://yourdomain.com/info.php
http://server_IP-or-FQDN/info.php

Krok 3: Nainstalujte MariaDB na FreeBSD

16. Poslední komponenta chybějící ve vašem zásobníku FEMP v databázi. MariaDB/MySQL je jedním z nejvíce přidružených open source softwaru RDBMS s webovým serverem Nginx používaným k nasazování dynamických webových stránek.

Ve skutečnosti je MariaDB/MySQL jednou z nejpoužívanějších relačních databází na světě. Prohledáváním Portů FreeBSD můžete najít několik vydání MariaDB/MySQL.

V této příručce nainstalujeme databázi MariaDB, což je komunitní větev databáze MySQL. Chcete-li vyhledat dostupné verze MariaDB, zadejte v terminálu následující příkazy.

ls -al /usr/ports/databases/ | grep mariadb
pkg search mariadb

17. Chcete-li nainstalovat nejnovější verzi databázového serveru MariaDB, spusťte následující příkaz. Měli byste také nainstalovat modul ovladače relační databáze PHP používaný skripty PHP pro připojení k MySQL.

pkg install mariadb102-server php71-mysqli

18. Po instalaci databáze povolte démona MySQL a spusťte službu databáze spuštěním následujících příkazů.

sysrc mysql_enable="YES" 
service mysql-server start

19. Také se ujistěte, že restartujete démona PHP-FPM, aby bylo možné načíst rozšíření ovladače MySQL.

service php-fpm restart
20. On the next step, secure MariaDB database by launching mysql_secure_installation script. Use the below sample of the installation script in order to answer the questions. Basically, say yes (y) for all asked questions to secure the database and type a strong password for MySQL root user.
/usr/local/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

21. Chcete-li otestovat připojení k databázi MariaDB z konzoly, spusťte níže uvedený příkaz.

mysql -u root -p -e "show status like ‘Connections’"

22. Chcete-li dále zabezpečit MariaDB, která ve výchozím nastavení naslouchá příchozím síťovým připojením na soketu 0.0.0.0:3306/TCP, zadejte níže uvedený příkaz k vynucení služby navázat na rozhraní loopback a zcela zakázat vzdálený přístup. Poté restartujte službu MySQL, abyste použili novou konfiguraci.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart

Ověřte, zda byla vazba localhost úspěšně použita spuštěním příkazu netstat, jak je znázorněno v příkladu níže.

netstat -an -p tcp

To je vše! Úspěšně jste nainstalovali webový server Nginx, relační databázi MariaDB a programovací jazyk PHP na straně serveru ve FreeBSD. Nyní můžete začít vytvářet dynamické webové stránky, které budou návštěvníkům poskytovat webový obsah.