Kaip įdiegti „Nginx“, „MariaDB“ ir PHP (FEMP) „Stack“ į „FreeBSD“


Ši pamoka padės jums įdiegti ir konfigūruoti FBEMP naujausiame „FreeBSD 11.x“ leidime. FBEMP yra akronimas, apibūdinantis šį programinės įrangos rinkinį:

„FreeBSD 11.1“ panašus į „Unix“ paskirstymą, „Nginx“ tinklo serveris, „MariaDB“ reliacinių duomenų bazių valdymo sistema („MySQL“ bendruomenės šakutė) ir PHP dinaminė programavimo kalba, kuri veikia serverio pusėje.

  1. „FreeBSD 11.x“ įdiegimas
  2. 10 dalykų, kuriuos reikia atlikti įdiegus „FreeBSD“

1 žingsnis: Įdiekite „Nginx“ tinklo serverį į „FreeBSD“

1. Pirmoji paslauga, kurią įdiegsime savo FBEMP kaminui „FreeBSD“, yra žiniatinklio serveris, kurį atstovauja „Nginx“ programinė įranga.

„Nginx“ žiniatinklio serveryje yra daugiau iš anksto suderintų paketų, prieinamų „FreeBSD 11.x PORTS“. Norėdami gauti „Nginx“ dvejetainių failų sąrašą iš „Uostų“ saugyklų, serverio terminale pateikite šias komandas.

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

2. Šioje konkrečioje konfigūracijoje įdiegsime pagrindinę „Nginx“ paketo versiją, išleisdami žemiau esančią komandą. Paketo valdymas „pkg“ paklaus, ar norite tęsti „nginx“ paketo diegimą. Norėdami pradėti diegimo procesą, atsakykite taip (komandinėje eilutėje y ).

# pkg install nginx

3. Įdiegę „Nginx“ žiniatinklio serverio paketą jūsų sistemoje, vykdykite šias komandas, kad įgalintumėte „deemon“ visoje sistemoje, ir paleiskite paslaugą savo sistemoje.

# sysrc nginx_enable="yes"
# service nginx start

4. Tada naudodami komandą „sockstat“ patikrinkite „Nginx“ paslaugų tinklo lizdus, jei jie yra privalomi 80/TCP prievadui, išduodami žemiau esančią komandą. Komandos „sockstat“ išvestis bus perduodama per „grep“ įrankį, kad grąžinti rezultatai būtų tik iki nginx eilutės.

# sockstat -4 | grep nginx

5. Galiausiai atidarykite naršyklę savo tinklo staliniame kompiuteryje ir apsilankykite numatytuoju „Nginx“ tinklalapiu per HTTP protokolą. Įrašykite savo mašinos FQDN, domeno vardą arba serverio IP adresą į naršyklės URL, pateiktą norint pateikti Nginx žiniatinklio serverio numatytojo tinklalapio užklausą. Pranešimas „Sveiki atvykę į„ nginx “! turėtų būti rodoma jūsų naršyklėje, kaip parodyta toliau pateiktoje ekrano kopijoje.

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

6. Numatytasis „Nginx“ žiniatinklio turinio žiniatinklio paleidimo katalogas, esantis/usr/local/www/nginx/absoliutus sistemos kelias. Šioje vietoje turėtumėte sukurti, nukopijuoti ar įdiegti savo svetainės žiniatinklio turinio failus, pvz., .html arba .php failus.

Norėdami pakeisti šią vietą, redaguokite pagrindinį „nginx“ konfigūracijos failą ir pakeiskite šakninę direktyvą, kad ji atspindėtų jūsų naują žiniatinklio šaknies kelią.

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

Čia ieškokite ir atnaujinkite šią eilutę, kad atspindėtų jūsų naują žiniatinklio šaknies kelią:

root	/path/to/new/webroot;

2 žingsnis: Įdiekite PHP „FreeBSD“

7. Skirtingai nuo „Apache“ HTTP serverio, „Nginx“ neturi galimybės natūraliai apdoroti PHP kodą. Savo ruožtu „Nginx“ žiniatinklio serveris perduoda PHP užklausas PHP vertėjui, pvz., „Php-fpm FastCGI“ deemonui, kuris tikrina ir vykdo kodą. Gautas kodas grąžinamas atgal į „Nginx“, kuris vėl surenka kodą į prašomą HTML formatą ir toliau siunčia kodą lankytojo žiniatinklio naršyklei.

„FreeBSD 11.x Ports“ saugyklose siūlomos kelios dvejetainės versijos PHP programavimo kalbai, pvz., PHP 5.6, PHP 7.0 ir PHP 7.1. Norėdami rodyti visas galimas iš anksto sukompiliuotas PHP versijas FreeBSD 11.x versijoje, vykdykite toliau nurodytas komandas.

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

8. Galite pasirinkti įdiegti bet kurią PHP versiją, kuri jums labiausiai tinka jūsų sistemoje paleistai žiniatinklio programai. Tačiau šiame vadove įdiegsime naujausią PHP versiją.

Norėdami įdiegti PHP 7.1 versiją ir keletą svarbių PHP modulių, reikalingų įvairioms žiniatinklio programoms, vykdykite šią komandą.

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

9. Įdiegę PHP paketus į savo sistemą, atidarykite „Nginx“ PHP-FPM konfigūracijos failą ir sureguliuokite vartotojo ir grupės vertes, kad jos atitiktų „Nginx“ vykdymo laiko vartotojo vertę, kuri yra www. Pirmiausia atlikite failo atsarginę kopiją naudodami toliau pateiktą komandą.

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

Tada atidarykite failą ir atnaujinkite šias eilutes, pateiktas žemiau pateiktame pavyzdyje.

user = www
group = www

10. Taip pat sukurkite PHP konfigūracijos failą, naudojamą gamybai, išleisdami žemiau esančią komandą. Šiame faile galite atlikti pasirinktinius pakeitimus, kurie bus taikomi PHP vertėjui vykdymo metu.

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

Pavyzdžiui, pakeiskite PHP vertėjo vertimą date.timezone, kad atnaujintumėte savo mašinos fizinę vietą, kaip parodyta toliau pateiktame pavyzdyje. PHP laiko juostų sąrašą galite rasti čia: http://php.net/manual/en/timezones.php.

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

Pridėkite šią laiko juostą (nustatykite laiko juostą pagal savo šalį).

date.timezone = Europe/London

Taip pat galite koreguoti kitus PHP kintamuosius, pvz., Didžiausią įkelto failo failo dydį, kurį galima padidinti modifikuojant šias vertes:

upload_max_filesize = 10M
post_max_size = 10M

11. Po to, kai atliksite pasirinktinius PHP nustatymus, įgalinsite ir paleisite „PHP-FPM“ deemoną, kad galėtumėte pritaikyti naujas konfigūracijas, pateikdami toliau nurodytas komandas.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Pagal numatytuosius nustatymus PHP-FPM deemonas FreeBSD jungiasi prie vietinio tinklo lizdo 9000/TCP prievade. Norėdami rodyti PHP-FPM tinklo lizdus, vykdykite šią komandą.

# sockstat -4 -6| grep php-fpm

13. Kad „Nginx“ žiniatinklio serveris perduotų PHP scenarijus „FastCGI“ šliuzo serveriui, kuris klausosi lizdo 127.0.0.1:9000 , atidarykite pagrindinį „Nginx“ konfigūracijos failą ir pridėkite šį kodo bloką, kaip parodyta. žemiau pateiktame pavyzdyje.

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

„FastCGI“ kodo blokas „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. Norėdami peržiūrėti dabartinę jūsų serverio PHP informaciją, sukurkite info.php failą „Nginx“ žiniatinklio paleidimo kelyje, išleisdami šią komandą.

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

15. Tada išbandykite ir paleiskite „Nginx“ deemoną, kad pritaikytumėte PHP FastCGI nustatymus, ir naršyklėje apsilankykite puslapyje info.php .

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

Atitinkamai pakeiskite žemiau esančiose nuorodose pateiktą IP adresą arba domeno pavadinimą. PHP informacijos puslapyje turėtų būti pateikta informacija, kaip parodyta žemiau esančioje ekrano kopijoje.

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

3 žingsnis: įdiekite „MariaDB“ į „FreeBSD“

16. Paskutinis komponentas, kurio trūksta jūsų FEMP kamino duomenų bazėje. „MariaDB/MySQL“ yra viena iš labiausiai susietų atvirojo kodo RDBMS programinės įrangos su „Nginx“ tinklo serveriu, naudojama diegiant dinamiškas svetaines.

Tiesą sakant, MariaDB/MySQL yra viena iš dažniausiai naudojamų reliacinių duomenų bazių pasaulyje. Ieškodami „FreeBSD“ prievadų, galite rasti kelis „MariaDB/MySQL“ leidimus.

Šiame vadove įdiegsime „MariaDB“ duomenų bazę, kuri yra „MySQL“ duomenų bazės bendruomenės šakutė. Norėdami ieškoti galimų „MariaDB“ versijų, terminale pateikite šias komandas.

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

17. Norėdami įdiegti naujausią „MariaDB“ duomenų bazės serverio versiją, vykdykite šią komandą. Taip pat turėtumėte įdiegti PHP reliacinės duomenų bazės tvarkyklės modulį, kurį PHP scenarijai naudoja prisijungimui prie MySQL.

# pkg install mariadb102-server php71-mysqli

18. Įdiegę duomenų bazę, įjunkite „MySQL“ deemoną ir paleiskite duomenų bazės paslaugą vykdydami šias komandas.

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

19. Taip pat būtinai iš naujo paleiskite PHP-FPM demoną, kad galėtumėte įkelti „MySQL“ tvarkyklės plėtinį.

# 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. Norėdami patikrinti „MariaDB“ duomenų bazės ryšį iš konsolės, vykdykite toliau pateiktą komandą.

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

22. Norėdami toliau apsaugoti „MariaDB“, kuri pagal numatytuosius nustatymus klauso gaunamų tinklo jungčių 0.0.0.0:3306/TCP lizde, išeikite žemiau esančią komandą, kad priverstumėte tarnybą prisijungti prie atgalinės sąsajos ir visiškai neleisti nuotolinės prieigos. Vėliau iš naujo paleiskite „MySQL“ paslaugą, kad pritaikytumėte naują konfigūraciją.

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

Patikrinkite, ar „localhost“ susiejimas buvo sėkmingai pritaikytas vykdant komandą „netstat“, kaip parodyta žemiau pateiktame pavyzdyje.

# netstat -an -p tcp

Tai viskas! „FreeBSD“ sėkmingai įdiegėte „Nginx“ žiniatinklio serverį, „MariaDB“ reliacinę duomenų bazę ir PHP serverio pusės programavimo kalbą. Dabar galite pradėti kurti dinamiškus tinklalapius, kad lankytojams būtų teikiamas žiniatinklio turinys.