Kako namestiti sklad Nginx, MariaDB in PHP (FEMP) na FreeBSD


Ta vadnica vas bo vodila, kako namestiti in konfigurirati FBEMP v najnovejši izdaji FreeBSD 11.x. FBEMP je kratica, ki opisuje naslednjo zbirko programske opreme:

FreeBSD 11.1 Unixu podobna distribucija, spletni strežnik Nginx, sistem za upravljanje relacijskih baz podatkov MariaDB (vilica skupnosti MySQL) in dinamični programski jezik PHP, ki deluje na strani strežnika.

  1. Namestitev FreeBSD 11.x
  2. 10 stvari po namestitvi FreeBSD

1. korak: Namestite spletni strežnik Nginx na FreeBSD

1. Prva storitev, ki jo bomo namestili za naš sklad FBEMP v FreeBSD, je spletni strežnik, ki ga predstavlja programska oprema Nginx.

Spletni strežnik Nginx ima v FreeBSD 11.x PORTS na voljo več vnaprej skladnih paketov. Če želite dobiti seznam binarnih datotek Nginx iz skladišč Ports, v strežniškem terminalu izdajte naslednje ukaze.

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

2. V tej posebni konfiguraciji bomo namestili različico glavnega paketa Nginxa z izdajo spodnjega ukaza. Vodstvo paketa pkg vas bo vprašalo, ali želite nadaljevati z namestitvijo paketa nginx. Za začetek namestitvenega postopka odgovorite z da ( y v ukazni vrstici).

# pkg install nginx

3. Po namestitvi paketa spletnega strežnika Nginx v vaš sistem izvedite naslednje ukaze, da omogočite demon po celotnem sistemu in zaženete storitev v vašem sistemu.

# sysrc nginx_enable="yes"
# service nginx start

4. Nato z ukazom sockstat z izdajo spodnjega ukaza preverite omrežne vtičnice storitve Nginx, če so vezane na vrata 80/TCP. Izhod ukaza sockstat bo preusmerjen skozi pripomoček grep, da se vrnjeni rezultati zmanjšajo le na niz nginx.

# sockstat -4 | grep nginx

5. Nazadnje odprite brskalnik na namiznem računalniku v svojem omrežju in obiščite privzeto spletno stran Nginx prek protokola HTTP. V URL brskalnika vnesite FQDN vaše naprave ali imena vaše domene ali naslova IP vašega strežnika, da zahtevate privzeto spletno stran spletnega strežnika Nginx. Sporočilo\"Dobrodošli v nginx!" mora biti prikazan v vašem brskalniku, kot je prikazano na spodnjem posnetku zaslona.

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

6. Privzeti imenik weboot za spletno vsebino Nginx, ki se nahaja v/usr/local/www/nginx/absolutna sistemska pot. Na tem mestu morate za svoje spletno mesto ustvariti, kopirati ali namestiti datoteke spletne vsebine, na primer datoteke .html ali .php .

Če želite spremeniti to lokacijo, uredite glavno konfiguracijsko datoteko nginx in spremenite korensko direktivo, da bo odražala vašo novo pot do spletnega korena.

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

Tu poiščite in posodobite naslednjo vrstico, da odraža vašo novo pot do spletnega korena:

root	/path/to/new/webroot;

Korak: Namestite PHP na FreeBSD

7. V nasprotju s strežnikom Apache HTTP Nginx nima možnosti naravne obdelave kode PHP. V zameno spletni strežnik Nginx posreduje zahteve PHP tolmaču PHP, na primer demonu php-fpm FastCGI, ki pregleda in izvrši kodo. Nastala koda se nato vrne nazaj v Nginx, ki jo ponovno sestavi nazaj v zahtevani format html in jo pošlje naprej v spletni brskalnik obiskovalcev.

Repozitoriji FreeBSD 11.x Ports ponujajo več binarnih različic za programski jezik PHP, kot so izdaje PHP 5.6, PHP 7.0 in PHP 7.1. Če želite prikazati vse razpoložljive vnaprej sestavljene različice PHP v FreeBSD 11.x, zaženite spodnje ukaze.

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

8. Lahko se odločite za namestitev katere koli različice PHP, ki se vam zdi najbolj primerna za spletno aplikacijo, ki jo zaženete v vašem sistemu. Vendar bomo v tem priročniku namestili najnovejšo različico PHP.

Če želite namestiti izdajo PHP 7.1 in nekatere pomembne module PHP, potrebne za različne spletne aplikacije, zaženite naslednji ukaz.

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

9. Ko v svoj sistem namestite pakete PHP, odprite konfiguracijsko datoteko PHP-FPM za Nginx in prilagodite vrednosti uporabnikov in skupin tako, da se ujemajo z vrednostjo uporabnika izvajalnega okolja Nginx, ki je www. Najprej naredite varnostno kopijo datoteke s spodnjim ukazom.

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

Nato odprite datoteko in posodobite naslednje vrstice, kot je prikazano v spodnjem vzorcu.

user = www
group = www

10. Ustvarite tudi konfiguracijsko datoteko PHP, ki se uporablja za izdelavo, tako da izdate spodnji ukaz. V tej datoteki lahko naredite spremembe po meri, ki bodo uporabljene za tolmač PHP med izvajanjem.

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

Spremenite na primer nastavitev date.timezone za tolmač PHP, da posodobite fizično lokacijo naprave, kot je prikazano v spodnjem primeru. Seznam časovnih pasov PHP najdete tukaj: http://php.net/manual/en/timezones.php.

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

Dodajte naslednji časovni pas (nastavite časovni pas glede na svojo državo).

date.timezone = Europe/London

Prilagodite lahko tudi druge spremenljivke PHP, na primer največjo velikost naložene datoteke, ki jo lahko povečate s spreminjanjem spodnjih vrednosti:

upload_max_filesize = 10M
post_max_size = 10M

11. Potem ko ste naredili nastavitve po meri za PHP, omogočite in zaženite demon PHP-FPM, da uporabite nove konfiguracije z izdajo spodnjih ukazov.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Privzeto se demon PHP-FPM v FreeBSD veže na lokalno omrežno vtičnico na vratih 9000/TCP. Za prikaz omrežnih vtičnic PHP-FPM izvedite naslednji ukaz.

# sockstat -4 -6| grep php-fpm

13. Da spletni strežnik Nginx posreduje PHP skripte prehodnemu strežniku FastCGI, ki posluša vtičnico 127.0.0.1:9000 , odprite glavno konfiguracijsko datoteko Nginx in dodajte naslednji blok kode, kot je prikazano v spodnjem vzorcu.

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

Blok kode FastCGI 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. Če si želite ogledati trenutne informacije o PHP za svoj strežnik, ustvarite datoteko info.php v poti zagona Nginx z izdajo naslednjega ukaza.

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

15. Nato preizkusite in znova zaženite demon Nginx, da uporabite nastavitve PHP FastCGI in v brskalniku obiščite stran info.php .

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

V spodnjih povezavah ustrezno zamenjajte naslov IP ali ime domene. Informacijska stran PHP mora prikazati informacije, kot je prikazano na spodnjem posnetku zaslona.

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

3. korak: Namestite MariaDB na FreeBSD

16. Zadnja komponenta, ki manjka v vašem skladu FEMP v bazi podatkov. MariaDB/MySQL je ena najbolj povezanih odprtokodnih RDBMS programov s spletnim strežnikom Nginx, ki se uporablja za uvajanje dinamičnih spletnih mest.

Pravzaprav je MariaDB/MySQL ena najpogosteje uporabljanih relacijskih baz podatkov na svetu. Z iskanjem po vratih FreeBSD lahko najdete več različic MariaDB/MySQL.

V tem priročniku bomo namestili zbirko podatkov MariaDB, ki je vilica skupnosti baze podatkov MySQL. Če želite poiskati razpoložljive različice MariaDB, v terminalu izdajte naslednje ukaze.

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

17. Za namestitev najnovejše različice strežnika baz podatkov MariaDB izvedite naslednji ukaz. Prav tako morate namestiti PHP modul relacijskega gonilnika baze podatkov, ki ga uporabljajo PHP skripti za povezavo z MySQL.

# pkg install mariadb102-server php71-mysqli

18. Ko je zbirka podatkov nameščena, omogočite demon MySQL in zaženite storitev zbirke podatkov z izvajanjem naslednjih ukazov.

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

19. Prepričajte se tudi, da ste znova zagnali demon PHP-FPM, da naložite razširitev gonilnika 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. Če želite preveriti povezavo baze podatkov MariaDB s konzole, izvedite spodnji ukaz.

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

22. Da bi še naprej zavarovali MariaDB, ki privzeto posluša dohodne omrežne povezave v vtičnici 0.0.0.0:3306/TCP, izdajte spodnji ukaz, da prisilite storitev, da se veže na vmesnik povratne zanke in popolnoma onemogoči oddaljeni dostop. Nato znova zaženite storitev MySQL, da uporabite novo konfiguracijo.

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

Preverite, ali je bila vezava localhost uspešno uporabljena tako, da zaženete ukaz netstat, kot je prikazano v spodnjem primeru.

# netstat -an -p tcp

To je vse! Spletni strežnik Nginx, relacijsko bazo podatkov MariaDB in programski jezik na strani strežnika PHP ste uspešno namestili v FreeBSD. Zdaj lahko začnete graditi dinamične spletne strani, ki bodo obiskovalcem prikazovale spletno vsebino.