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.
- „FreeBSD 11.x“ įdiegimas
- 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.