Hvernig á að setja upp Nginx, MariaDB og PHP (FEMP) stafla á FreeBSD


Þessi kennsla mun leiðbeina þér um hvernig á að setja upp og stilla FBEMP í FreeBSD 11.x nýjustu útgáfunni. FBEMP er skammstöfun sem lýsir eftirfarandi hugbúnaðarsafni:

FreeBSD 11.1 Unix-lík dreifing, Nginx vefþjónn, MariaDB tengslagagnagrunnsstjórnunarkerfi (samfélagsfork af MySQL) og PHP kraftmikið forritunarmál sem keyrir á miðlarahlið.

  1. Uppsetning á FreeBSD 11.x
  2. 10 hlutir sem þarf að gera eftir uppsetningu FreeBSD

Skref 1: Settu upp Nginx vefþjón á FreeBSD

1. Fyrsta þjónustan sem við munum setja upp fyrir FBEMP stafla okkar í FreeBSD er vefþjónninn, táknaður með Nginx hugbúnaði.

Nginx vefþjónn er með fleiri pakka sem fylgja fyrirfram í FreeBSD 11.x PORTS. Til þess að fá lista yfir Nginx tvöfalda úr Ports geymslum skaltu gefa út eftirfarandi skipanir í netþjóninum þínum.

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

2. Í þessari tilteknu uppsetningu munum við setja upp aðalpakkaútgáfuna af Nginx með því að gefa út skipunina hér að neðan. Pkg pakkastjórnunin mun spyrja þig hvort þú viljir halda áfram að setja upp nginx pakkann. Svaraðu með já (y í skipanalínunni) til að hefja uppsetningarferlið.

# pkg install nginx

3. Eftir að Nginx vefþjónspakki var settur upp í kerfinu þínu skaltu framkvæma eftirfarandi skipanir til að virkja púkann um allt kerfið og hefja þjónustuna í kerfinu þínu.

# sysrc nginx_enable="yes"
# service nginx start

4. Næst, með því að nota sockstat skipunina, staðfestu Nginx þjónustunetsinnstungur, ef þær eru bindandi fyrir 80/TCP tengi, með því að gefa út skipunina hér að neðan. Framleiðsla sockstat skipunarinnar verður flutt í gegnum grep tólið til að minnka skilaðar niðurstöður aðeins í nginx streng.

# sockstat -4 | grep nginx

5. Að lokum, opnaðu vafra á borðtölvu á netinu þínu og farðu á Nginx sjálfgefna vefsíðu með HTTP samskiptareglum. Skrifaðu FQDN vélarinnar þinnar eða lénið þitt eða IP-tölu netþjónsins þíns í vefslóð vafrans sem er lögð inn til að biðja um sjálfgefna vefsíðu Nginx vefþjóns. Skilaboðin „Velkomin í nginx!“ ætti að birtast í vafranum þínum, eins og sýnt er á skjámyndinni hér að neðan.

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

6. Sjálfgefin vefræsaskrá fyrir Nginx vefefni er staðsett í /usr/local/www/nginx/ algerri kerfisslóð. Á þessum stað ættir þú að búa til, afrita eða setja upp vefefnisskrár, svo sem .html eða .php skrár, fyrir vefsíðuna þína.

Til að breyta þessari staðsetningu, breyttu nginx aðalstillingarskránni og breyttu rótartilskipuninni til að endurspegla nýja vefrótarslóðina þína.

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

Hér skaltu leita og uppfæra eftirfarandi línu til að endurspegla nýja vefrótarslóðina þína:

root	/path/to/new/webroot;

Skref 2: Settu upp PHP á FreeBSD

7. Ólíkt Apache HTTP netþjóni hefur Nginx ekki getu til að vinna með PHP kóða. Í staðinn sendir Nginx vefþjónn PHP beiðnir til PHP túlks, eins og php-fpm FastCGI púkinn, sem skoðar og keyrir kóðann. Kóðanum sem myndast er síðan skilað aftur til Nginx, sem setur kóðann saman aftur á umbeðið HTML snið og sendir kóðann áfram í vafra gesta.

FreeBSD 11.x Ports geymslur bjóða upp á margar tvöfaldar útgáfur fyrir PHP forritunarmál, eins og PHP 5.6, PHP 7.0 og PHP 7.1 útgáfur. Til að sýna allar tiltækar forsamdar PHP útgáfur í FreeBSD 11.x skaltu keyra skipanirnar hér að neðan.

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

8. Þú getur valið að setja upp hvaða útgáfu af PHP sem þér finnst henta best fyrir vefforritið sem þú keyrir í kerfinu þínu. Hins vegar, í þessari handbók munum við setja upp nýjustu útgáfuna af PHP.

Til að setja upp PHP 7.1 útgáfu og nokkrar mikilvægar PHP einingar sem þarf fyrir fjölbreytt vefforrit skaltu keyra eftirfarandi skipun.

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

9. Eftir að þú hefur sett upp PHP pakka í kerfinu þínu skaltu opna PHP-FPM stillingarskrá fyrir Nginx og stilla notenda- og hópgildin til að passa við gildið á Nginx keyrslunotandanum, sem er www. Fyrst skaltu taka öryggisafrit af skránni með skipuninni hér að neðan.

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

Opnaðu síðan skrána og uppfærðu eftirfarandi línur eins og fram kemur í sýnishorninu hér að neðan.

user = www
group = www

10. Búðu líka til PHP stillingarskrá sem notuð er til framleiðslu með því að gefa út skipunina hér að neðan. Á þessari skrá er hægt að gera sérsniðnar breytingar sem verða notaðar á PHP túlk á keyrslutíma.

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

Til dæmis, breyttu date.timezone stillingunni fyrir PHP túlk til að uppfæra staðsetningu vélarinnar þinnar eins og sýnt er í dæminu hér að neðan. PHP tímabeltislista má finna hér: http://php.net/manual/en/timezones.php.

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

Bættu við eftirfarandi tímabelti (stilltu tímabelti samkvæmt þínu landi).

date.timezone = Europe/London

Þú getur líka stillt aðrar PHP breytur, svo sem hámarksskráarstærð hlaðiðrar skráar, sem hægt er að auka með því að breyta gildunum hér að neðan:

upload_max_filesize = 10M
post_max_size = 10M

11. Eftir að þú hefur gert sérsniðnar stillingar fyrir PHP, virkjaðu og ræstu PHP-FPM púkinn til að beita nýju stillingunum með því að gefa út skipanirnar hér að neðan.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Sjálfgefið er að PHP-FPM púkinn í FreeBSD binst á staðarnetstengi á tengi 9000/TCP. Til að sýna PHP-FPM netinnstungur skaltu framkvæma eftirfarandi skipun.

# sockstat -4 -6| grep php-fpm

13. Til þess að Nginx vefþjónn geti sent PHP forskriftirnar til FastCGI gáttarþjónsins, sem hlustar á 127.0.0.1:9000 innstungu, opnaðu Nginx aðalstillingarskrána og bættu við eftirfarandi kóðablokk eins og sýnt er á myndinni. í sýnishorninu hér að neðan.

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

FastCGI kóða blokk fyrir 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. Til þess að skoða núverandi PHP upplýsingar fyrir netþjóninn þinn skaltu búa til info.php skrá í Nginx webboot slóð með því að gefa út eftirfarandi skipun.

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

15. Prófaðu síðan og endurræstu Nginx púkinn til að nota PHP FastCGI stillingarnar og farðu á info.php síðuna í vafra.

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

Skiptu um IP tölu eða lén í hlekkjunum hér að neðan í samræmi við það. PHP upplýsingasíða ætti að sýna upplýsingar eins og sýnt er á skjámyndinni hér að neðan.

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

Skref 3: Settu upp MariaDB á FreeBSD

16. Síðasta íhlutinn vantar í FEMP stafla þinn í gagnagrunninum. MariaDB/MySQL er einn tengdasti opinn uppspretta RDBMS hugbúnaður með Nginx vefþjóni sem notaður er til að dreifa kraftmiklum vefsíðum.

Reyndar er MariaDB/MySQL einn mest notaði tengslagagnagrunnurinn í heiminum. Þegar þú leitar í gegnum FreeBSD Ports geturðu fundið margar útgáfur af MariaDB/MySQL.

Í þessari handbók munum við setja upp MariaDB gagnagrunn, sem er samfélagsgafli MySQL gagnagrunns. Til að leita að tiltækum útgáfum af MariaDB skaltu gefa út eftirfarandi skipanir í flugstöðinni.

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

17. Til að setja upp nýjustu útgáfuna af MariaDB gagnagrunnsþjóninum skaltu framkvæma eftirfarandi skipun. Þú ættir líka að setja upp PHP tengigagnagrunns reklaeininguna sem PHP forskriftir nota til að tengjast MySQL.

# pkg install mariadb102-server php71-mysqli

18. Eftir að gagnagrunnurinn hefur verið settur upp, virkjaðu MySQL púkann og ræstu gagnagrunnsþjónustuna með því að keyra eftirfarandi skipanir.

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

19. Gakktu úr skugga um að þú endurræsir PHP-FPM púkinn til að hlaða MySQL bílstjóraviðbót.

# 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. Til að prófa MariaDB gagnagrunnstengingu frá stjórnborðinu skaltu framkvæma skipunina hér að neðan.

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

22. Til þess að tryggja enn frekar MariaDB, sem sjálfgefið hlustar á komandi nettengingar á 0.0.0.0:3306/TCP fals, gefðu út skipunina hér að neðan til að þvinga þjónustuna til að bindast við bakrásarviðmót og banna algjörlega fjaraðgang. Síðan skaltu endurræsa MySQL þjónustuna til að nota nýju stillingarnar.

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

Staðfestu hvort localhost-bindingunni hafi verið beitt með góðum árangri með því að keyra netstat skipun eins og sýnt er í dæminu hér að neðan.

# netstat -an -p tcp

Það er allt og sumt! Þú hefur sett upp Nginx vefþjón, MariaDB venslagagnagrunn og PHP forritunarmál á netþjóni í FreeBSD. Þú getur nú byrjað að byggja upp kraftmiklar vefsíður til að þjóna vefefni fyrir gesti þína.