Nginxi, MariaDB ja PHP (FEMP) korstna installimine FreeBSD-le


See õpetus aitab teil FBEMP-i installida ja konfigureerida FreeBSD 11.x uusimas versioonis. FBEMP on lühend, mis kirjeldab järgmist tarkvara kogu:

FreeBSD 11.1 Unixi-laadne levitamine, Nginxi veebiserver, MariaDB relatsiooniandmebaaside haldussüsteem (MySQL-i kogukonna haru) ja PHP dünaamiline programmeerimiskeel, mis töötab serveri poolel.

  1. FreeBSD 11.x installimine
  2. 10 toimingut pärast FreeBSD installimist

1. samm: installige Nginxi veebiserver FreeBSD-sse

1. Esimene teenus, mille meie FBEMP-virna jaoks FreeBSD-sse installime, on veebiserver, mida esindab tarkvara Nginx.

Nginxi veebiserveril on FreeBSD 11.x PORTS-is saadaval rohkem eelkontrolliga pakette. Nginxi binaarkaartide loendi saamiseks sadamate hoidlatest väljastage oma serveriterminalis järgmised käsud.

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

2. Selles konkreetses konfiguratsioonis installime Nginxi põhipaketi versiooni, väljastades alltoodud käsu. Paketi pkg haldamine küsib teilt, kas soovite jätkata paketi nginx installimist. Installiprotsessi alustamiseks vastake jah-ga (käsureal y ).

# pkg install nginx

3. Kui Nginxi veebiserveri pakett on teie süsteemi installitud, käivitage järgmised käsud, et deemon kogu süsteemis lubada ja teie süsteemis teenus käivitada.

# sysrc nginx_enable="yes"
# service nginx start

4. Seejärel kontrollige käsu sockstat abil teenuse Nginx teenusevõrgu pistikupesad, kui need on seotud 80/TCP-pordiga, väljastades alltoodud käsu. Käsu sockstat väljund suunatakse läbi utiliidi grep, et vähendada tagastatud tulemusi ainult stringiks nginx.

# sockstat -4 | grep nginx

5. Lõpuks avage oma võrgu lauaarvuti brauser ja külastage Nginxi vaikeveebilehte HTTP-protokolli kaudu. Sisestage oma masina FQDN või domeeninimi või oma serveri IP-aadress brauseri URL-i, mis on esitatud Nginxi veebiserveri vaikeveebilehe taotlemiseks. Sõnum\"Tere tulemast nginxi!" peaks kuvama teie brauseris, nagu on illustreeritud alloleval ekraanipildil.

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

6. Nginxi veebisisu vaikekataloog kataloogis/usr/local/www/nginx/absoluutne süsteemitee. Selles asukohas peaksite oma veebisaidi jaoks looma, kopeerima või installima veebisisufaile, näiteks .html või .php .

Selle asukoha muutmiseks muutke nginxi peamist konfiguratsioonifaili ja muutke juurdirektiivi, et see kajastaks teie uut veebijuure teed.

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

Siit otsige ja värskendage järgmist rida, et see kajastaks teie uut veebijuure teed:

root	/path/to/new/webroot;

2. samm: installige PHP FreeBSD-sse

7. Erinevalt Apache HTTP serverist pole Nginxil võimalust PHP-koodi loomupäraselt töödelda. Vastutasuks edastab Nginxi veebiserver PHP-päringud PHP-tõlgile, näiteks deemonile php-fpm FastCGI, mis koodi kontrollib ja täidab. Saadud kood tagastatakse seejärel tagasi Nginxi, mis komplekteerib koodi uuesti soovitud HTML-vormingusse ja saadab koodi edasi külastaja veebibrauserisse.

FreeBSD 11.x pordihoidlad pakuvad PHP programmeerimiskeele jaoks mitu binaarset versiooni, näiteks väljaanded PHP 5.6, PHP 7.0 ja PHP 7.1. Kõigi saadaolevate eelkompileeritud PHP versioonide kuvamiseks FreeBSD 11.x-s käivitage järgmised käsud.

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

8. Võite installida mis tahes PHP versiooni, mis teie süsteemis käitatava veebirakenduse jaoks kõige paremini sobib. Selles juhendis installime aga PHP uusima versiooni.

PHP 7.1 väljalaske ja mõnede PHP oluliste moodulite installimiseks, mis on vajalikud mitmesuguste veebirakenduste jaoks, käivitage järgmine käsk.

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

9. Kui olete oma süsteemi installinud PHP-paketid, avage Nginxi jaoks PHP-FPM-i konfiguratsioonifail ja kohandage kasutaja ja rühma väärtused vastavaks Nginxi käitusaja kasutaja väärtusele, mis on www. Kõigepealt tehke failist varukoopia järgmise käsuga.

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

Seejärel avage fail ja värskendage järgmisi ridu vastavalt allpool toodud näidisele.

user = www
group = www

10. Looge ka PHP konfiguratsioonifail, mida kasutatakse tootmiseks, väljastades alloleva käsu. Selles failis saate teha kohandatud muudatusi, mis rakendatakse PHP-tõlgi käitusajal.

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

Näiteks muutke PHP-tõlgi kuupäeva.timezone seadet, et värskendada oma masina füüsilist asukohta, nagu on näidatud allpool toodud näites. PHP ajavööndi loendi leiate siit: http://php.net/manual/en/timezones.php.

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

Lisage järgmine ajavöönd (määrake ajavöönd vastavalt oma riigile).

date.timezone = Europe/London

Saate reguleerida ka teisi PHP muutujaid, näiteks üleslaaditud faili maksimaalset failisuurust, mida saab suurendada järgmiste väärtuste muutmisega:

upload_max_filesize = 10M
post_max_size = 10M

11. Pärast seda olete teinud PHP-le kohandatud sätted, lubanud ja käivitanud PHP-FPM-i deemoni, et rakendada uusi konfiguratsioone, väljastades alltoodud käsud.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Vaikimisi seondub FreeBSD-s olev PHP-FPM-deemon pordi 9000/TCP kohaliku võrgu sokliga. PHP-FPM võrgupesade kuvamiseks täitke järgmine käsk.

# sockstat -4 -6| grep php-fpm

13. Selleks, et Nginxi veebiserver edastaks PHP-skriptid FastCGI lüüsiserverile, mis kuulab pesa 127.0.0.1:9000 , avage Nginxi põhikonfiguratsioonifail ja lisage järgmine koodiplokk, nagu illustreeritud allpool toodud proovis.

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

Nginxi FastCGI koodiplokk:

 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. Oma serveri praeguse PHP-teabe vaatamiseks looge Nginxi veebi juurteel fail info.php , väljastades järgmise käsu.

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

15. Seejärel testige ja taaskäivitage Nginxi deemon, et rakendada PHP FastCGI sätteid, ja külastage brauseris lehte info.php .

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

Asendage vastavalt allolevatel linkidel olev IP-aadress või domeeninimi. PHP infoleht peaks kuvama teavet, nagu on näidatud alloleval ekraanipildil.

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

3. samm: installige MariaDB FreeBSD-sse

16. Teie FEMP korstnast puudub andmebaasis viimane komponent. MariaDB/MySQL on Nginx veebiserveriga kõige rohkem seotud avatud lähtekoodiga RDBMS tarkvara, mida kasutatakse dünaamiliste veebisaitide juurutamiseks.

Tegelikult on MariaDB/MySQL üks enimkasutatud relatsiooniandmebaase maailmas. FreeBSD porti otsides leiate mitu MariaDB/MySQL väljaannet.

Selles juhendis installime MariaDB andmebaasi, mis on MySQL-i andmebaasi kogukonna haru. MariaDB saadaolevate versioonide otsimiseks väljastage terminalis järgmised käsud.

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

17. MariaDB andmebaasiserveri uusima versiooni installimiseks täitke järgmine käsk. Samuti peaksite installima PHP relatsioonandmebaasi draiverimooduli, mida PHP skriptid kasutavad MySQL-iga ühenduse loomiseks.

# pkg install mariadb102-server php71-mysqli

18. Pärast andmebaasi installimist lubage MySQL-deemon ja käivitage andmebaasiteenus, käivitades järgmised käsud.

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

19. Veenduge, et MySQL-i draiverilaiendi laadimiseks taaskäivitaksite ka PHP-FPM-i deemoni.

# 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. MariaDB andmebaasiühenduse testimiseks konsoolilt käivitage järgmine käsk.

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

22. MariaDB täiendava turvalisuse tagamiseks, mis vaikimisi kuulab sissetulevaid võrguühendusi pesas 0.0.0.0:3306/TCP, väljastage järgmine käsk, et sundida teenust siduma loopback-liidesega ja keelata kaugjuurdepääs täielikult. Seejärel taaskäivitage MySQL-teenus uue konfiguratsiooni rakendamiseks.

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

Kontrollige, kas localhosti sidumine õnnestus, käivitades käsk netstat, nagu on näidatud allpool toodud näites.

# netstat -an -p tcp

See on kõik! Olete edukalt installinud FreeBSD-sse Nginxi veebiserveri, MariaDB relatsiooniandmebaasi ja PHP serveripoolse programmeerimiskeele. Nüüd saate alustada dünaamiliste veebilehtede loomist, et veebisisu külastajatele pakkuda.