Kako instalirati Nginx, MariaDB i PHP (FEMP) stog na FreeBSD


Ovaj vodič će vas voditi kako instalirati i konfigurirati FBEMP u najnovijem izdanju FreeBSD 11.x. FBEMP je kratica koja opisuje sljedeću zbirku softvera:

FreeBSD 11.1 Unix-ova distribucija, Nginx web poslužitelj, MariaDB sustav upravljanja relacijskim bazama podataka (zajednička vilica MySQL) i PHP dinamički programski jezik koji se izvodi na strani poslužitelja.

  1. Instalacija FreeBSD 11.x
  2. 10 stvari koje treba učiniti nakon instalacije FreeBSD-a

Korak 1: Instalirajte Nginx web poslužitelj na FreeBSD

1. Prva usluga koju ćemo instalirati za naš FBEMP stog u FreeBSD-u je web poslužitelj, predstavljen softverom Nginx.

Nginx web poslužitelj ima više unaprijed usklađenih paketa dostupnih u FreeBSD 11.x LUČIMA. Da biste dobili popis binarnih datoteka Nginx iz spremišta Ports, izdajte sljedeće naredbe na vašem poslužiteljskom terminalu.

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

2. U ovoj određenoj konfiguraciji instalirat ćemo verziju glavnog paketa Nginxa izdavanjem naredbe u nastavku. Uprava pkg paketa pitati vas želite li nastaviti s instaliranjem nginx paketa. Odgovorite s da ( y u naredbenom retku) kako biste započeli postupak instalacije.

# pkg install nginx

3. Nakon što je paket Nginx web poslužitelja instaliran u vaš sustav, izvršite sljedeće naredbe kako biste omogućili demon u cijelom sustavu i pokrenuli uslugu u vašem sustavu.

# sysrc nginx_enable="yes"
# service nginx start

4. Zatim, pomoću naredbe sockstat, provjerite mrežne utičnice Nginx servisa, ako su obvezujuće za 80/TCP port, izdavanjem naredbe u nastavku. Izlaz naredbe sockstat provest će se kroz uslužni program grep kako bi se vraćeni rezultati sveli samo na nginx niz.

# sockstat -4 | grep nginx

5. Na kraju, otvorite preglednik na stolnom računalu u svojoj mreži i posjetite zadanu web stranicu Nginx putem HTTP protokola. Zapišite FQDN vašeg računala ili imena domene ili IP adrese vašeg poslužitelja u URL preglednika koji je zatražio zadanu web stranicu Nginx web servera. Poruka "Dobrodošli u nginx!" treba biti prikazan u vašem pregledniku, kao što je prikazano na donjoj snimci zaslona.

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

6. Zadani direktorij weboot za web sadržaj Nginx koji se nalazi u/usr/local/www/nginx/absolute system path. Na ovom mjestu trebali biste stvoriti, kopirati ili instalirati datoteke web sadržaja, kao što su datoteke .html ili .php , za vaše web mjesto.

Da biste promijenili ovo mjesto, uredite glavnu konfiguracijsku datoteku nginx i promijenite root direktivu tako da odražava vaš novi put webroot-a.

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

Ovdje potražite i ažurirajte sljedeći redak kako bi odražavao vaš novi put korijena webroot:

root	/path/to/new/webroot;

Korak 2: Instalirajte PHP na FreeBSD

7. Za razliku od Apache HTTP poslužitelja, Nginx nema mogućnost izvorne obrade PHP koda. Zauzvrat, web-poslužitelj Nginx prosljeđuje PHP zahtjeve PHP tumaču, kao što je php-fpm FastCGI demon, koji pregledava i izvršava kôd. Rezultirani kôd se zatim vraća natrag u Nginx, koji ponovno okuplja kôd natrag u traženi html format i šalje ga dalje web posjetitelju posjetitelja.

Spremišta FreeBSD 11.x Ports nude više binarnih verzija za programski jezik PHP, poput izdanja PHP 5.6, PHP 7.0 i PHP 7.1. Da biste prikazali sve dostupne prekompajlirane verzije PHP-a u FreeBSD 11.x, pokrenite naredbe u nastavku.

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

8. Možete odabrati instaliranje bilo koje verzije PHP-a koja vam najviše odgovara za web aplikaciju koju pokrećete u vašem sustavu. Međutim, u ovom ćemo vodiču instalirati najnoviju verziju PHP-a.

Da biste instalirali izdanje PHP 7.1 i neke PHP važne module koji su potrebni za različite web aplikacije, pokrenite sljedeću naredbu.

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

9. Nakon što instalirate PHP pakete u svoj sustav, otvorite PHP-FPM konfiguracijsku datoteku za Nginx i prilagodite vrijednosti korisnika i grupe kako bi se podudarale s vrijednošću korisnika Nginx runtime, a to je www. Prvo napravite sigurnosnu kopiju datoteke pomoću naredbe u nastavku.

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

Zatim otvorite datoteku i ažurirajte sljedeće retke kako je prikazano u donjem primjeru.

user = www
group = www

10. Također, stvorite PHP konfiguracijsku datoteku koja se koristi za proizvodnju izdavanjem naredbe u nastavku. Na ovoj datoteci možete napraviti prilagođene promjene koje će se primijeniti na PHP interpreter tijekom izvođenja.

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

Na primjer, promijenite postavku date.timezone za PHP interpreter kako biste ažurirali fizičku lokaciju vašeg računala kao što je prikazano u donjem primjeru. Popis PHP vremenskih zona možete pronaći ovdje: http://php.net/manual/en/timezones.php.

# vi /usr/local/etc/php.ini

Dodajte sljedeću vremensku zonu (postavite vremensku zonu prema vašoj zemlji).

date.timezone = Europe/London

Također možete prilagoditi druge PHP varijable, poput maksimalne veličine datoteke učitane datoteke, koja se može povećati izmjenom dolje navedenih vrijednosti:

upload_max_filesize = 10M
post_max_size = 10M

11. Nakon što ste napravili prilagođene postavke za PHP, omogućite i pokrenite PHP-FPM demon kako biste primijenili nove konfiguracije izdavanjem naredbi u nastavku.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Prema zadanim postavkama, PHP-FPM demon u FreeBSD-u veže se na lokalnu mrežnu utičnicu na portu 9000/TCP. Za prikaz mrežnih utičnica PHP-FPM izvršite sljedeću naredbu.

# sockstat -4 -6| grep php-fpm

13. Kako bi Nginxov web poslužitelj proslijedio PHP skripte FastCGI gateway poslužitelju koji preslušava na 127.0.0.1:9000 utičnici, otvorite Nginx glavnu konfiguracijsku datoteku i dodajte sljedeći blok koda kao što je prikazano u donjem uzorku.

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

Blok FastCGI koda za 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. Da biste vidjeli trenutne PHP informacije za svoj poslužitelj, stvorite datoteku info.php u Nginx weboot putu izdavanjem sljedeće naredbe.

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

15. Zatim testirajte i ponovo pokrenite Nginx daemon da biste primijenili postavke PHP FastCGI i posjetite stranicu info.php u pregledniku.

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

U skladu s tim zamijenite IP adresu ili ime domene u donjim vezama. PHP stranica s informacijama trebala bi prikazivati informacije kao što je prikazano na donjem snimku zaslona.

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

Korak 3: Instalirajte MariaDB na FreeBSD

16. Posljednja komponenta koja nedostaje vašem FEMP stogu u bazi podataka. MariaDB/MySQL jedan je od najpopularnijih RDBMS softvera otvorenog koda s Nginx web poslužiteljem koji se koristi za postavljanje dinamičkih web stranica.

Zapravo je MariaDB/MySQL jedna od najčešće korištenih relacijskih baza podataka na svijetu. Pretražujući FreeBSD portove, možete pronaći više izdanja MariaDB/MySQL.

U ovom ćemo vodiču instalirati bazu podataka MariaDB, koja je vilica zajednice MySQL baze podataka. Da biste potražili dostupne verzije MariaDB, izdajte sljedeće naredbe u terminalu.

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

17. Da biste instalirali najnoviju verziju poslužitelja baze podataka MariaDB, izvršite sljedeću naredbu. Također biste trebali instalirati PHP modul upravljačkog programa relacijske baze podataka koji koriste PHP skripte za povezivanje na MySQL.

# pkg install mariadb102-server php71-mysqli

18. Nakon instalacije baze podataka, omogućite MySQL demon i pokrenite uslugu baze podataka izvođenjem sljedećih naredbi.

# sysrc mysql_enable="YES" 
# service mysql-server start

19. Također, pobrinite se da ponovo pokrenete PHP-FPM daemon kako biste učitali proširenje MySQL upravljačkog programa.

# 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. Da biste testirali vezu baze podataka MariaDB s konzole, izvršite donju naredbu.

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

22. Kako biste dodatno osigurali MariaDB, koji prema zadanim postavkama osluškuje dolazne mrežne veze na socketu 0.0.0.0:3306/TCP, izdajte naredbu u nastavku kako biste prisilili uslugu da se veže na povratno sučelje i potpuno onemogući daljinski pristup. Nakon toga ponovo pokrenite MySQL uslugu da biste primijenili novu konfiguraciju.

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

Provjerite je li vezivanje localhost uspješno primijenjeno izvođenjem naredbe netstat kao što je prikazano u donjem primjeru.

# netstat -an -p tcp

To je sve! Uspješno ste instalirali Nginx web poslužitelj, relacijsku bazu podataka MariaDB i PHP programski jezik na strani poslužitelja u FreeBSD. Sada možete početi graditi dinamične web stranice za posluživanje web sadržaja svojim posjetiteljima.