Yadda ake Sanya Nginx, MariaDB da PHP (FEMP) Stack akan FreeBSD


Wannan koyawa za ta jagorance ku kan yadda ake girka da daidaita FBEMP a cikin FreeBSD 11.x latest release. FBEMP gagara ce wacce ke bayyana tarin software masu zuwa:

FreeBSD 11.1 Unix-kamar rarraba, uwar garken gidan yanar gizo na Nginx, tsarin gudanarwa na dangantaka na MariaDB (cokali mai yatsa na MySQL) da harshen shirye-shiryen PHP mai ƙarfi wanda ke gudana akan gefen uwar garke.

  1. Shigar da FreeBSD 11.x
  2. Abubuwa 10 da yakamata ayi Bayan Shigar FreeBSD

Mataki 1: Sanya Nginx Web Server akan FreeBSD

1. Sabis na farko da za mu girka don tarin FBEMP ɗin mu a cikin FreeBSD shine sabar gidan yanar gizo, wacce software ta Nginx ke wakilta.

Sabar gidan yanar gizo na Nginx yana da ƙarin fakitin da aka riga aka cika samuwa a cikin FreeBSD 11.x PORTS. Domin samun jerin Nginx binaries daga ma'ajiyar tashar jiragen ruwa, ba da umarni masu zuwa a cikin tashar sabar ku.

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

2. A cikin wannan ƙayyadaddun ƙayyadaddun tsari, za mu shigar da babban nau'in kunshin Nginx ta hanyar ba da umarnin da ke ƙasa. Gudanar da fakitin pkg zai tambaye ku idan kuna son ci gaba da shigar da kunshin nginx. Amsa da eh (y a layin umarni) domin fara aikin shigarwa.

# pkg install nginx

3. Bayan an shigar da kunshin sabar gidan yanar gizo na Nginx a cikin tsarin ku, aiwatar da umarni masu zuwa don kunna tsarin daemon-fadi kuma fara sabis a cikin tsarin ku.

# sysrc nginx_enable="yes"
# service nginx start

4. Na gaba, ta yin amfani da umarnin sockstat, tabbatar da saitunan cibiyar sadarwar sabis na Nginx, idan suna ɗaure akan tashar 80/TCP, ta hanyar ba da umarnin da ke ƙasa. Za a fitar da fitar da umarnin socksstat ta hanyar amfani da grep don rage sakamakon da aka dawo kawai zuwa string nginx.

# sockstat -4 | grep nginx

5. A ƙarshe, buɗe browser akan kwamfutar tebur a cikin hanyar sadarwar ku kuma ziyarci shafin yanar gizon Nginx ta hanyar HTTP protocol. Rubuta FQDN na injin ku ko sunan yankinku ko adireshin IP na uwar garken ku a cikin URL ɗin mai binciken da aka shigar don buƙatar tsohuwar sabar gidan yanar gizo ta Nginx. Sakon \Barka da zuwa nginx! ya kamata a nuna a cikin burauzarka, kamar yadda aka kwatanta a cikin hoton da ke ƙasa.

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

6. Tsohuwar jagorar weboot don abun ciki na gidan yanar gizo na Nginx a cikin /usr/local/www/nginx/ cikakken tsarin tsarin. A wannan wurin ya kamata ku ƙirƙira, kwafi ko shigar da fayilolin abun ciki na gidan yanar gizo, kamar fayilolin .html ko .php fayiloli, don gidan yanar gizonku.

Don canza wannan wurin, shirya babban fayil na nginx kuma canza tushen umarnin don nuna sabon hanyar yanar gizon ku.

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

Anan, bincika kuma sabunta layin mai zuwa don nuna sabon hanyar yanar gizon ku:

root	/path/to/new/webroot;

Mataki 2: Sanya PHP akan FreeBSD

7. Ba kamar uwar garken HTTP Apache ba, Nginx ba shi da ikon aiwatar da lambar PHP ta asali. A dawowa, uwar garken gidan yanar gizo na Nginx yana ƙaddamar da buƙatun PHP zuwa mai fassarar PHP, kamar php-fpm FastCGI daemon, wanda ke dubawa da aiwatar da lambar. Ana mayar da lambar da aka samu zuwa Nginx, wanda ke sake haɗa lambar zuwa tsarin html da aka buƙata kuma ya aika da lambar zuwa mai binciken gidan yanar gizon baƙo.

Ma'ajiyar tashoshin jiragen ruwa na FreeBSD 11.x suna ba da nau'ikan binary iri-iri don yaren shirye-shiryen PHP, kamar PHP 5.6, PHP 7.0 da PHP 7.1. Domin nuna duk nau'ikan PHP da aka riga aka tattara a cikin FreeBSD 11.x, gudanar da umarnin da ke ƙasa.

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

8. Kuna iya zaɓar shigar da kowane nau'in PHP ɗin da kuka ga ya fi dacewa da aikace-aikacen yanar gizon da kuke aiki a cikin tsarin ku. Koyaya, a cikin wannan jagorar za mu shigar da sabon sigar PHP.

Don shigar da sakin PHP 7.1 da wasu mahimman kayayyaki na PHP da ake buƙata don aikace-aikacen yanar gizo iri-iri, gudanar da umarni mai zuwa.

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

9. Bayan kun shigar da fakitin PHP a cikin tsarin ku, buɗe fayil ɗin sanyi na PHP-FPM don Nginx kuma daidaita ƙimar mai amfani da rukuni don dacewa da ƙimar mai amfani da Nginx Runtime, wanda shine www. Da farko, yi madadin fayil ɗin tare da umarnin da ke ƙasa.

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

Sa'an nan, buɗe fayil ɗin kuma sabunta layin masu zuwa kamar yadda aka gabatar a cikin samfurin ƙasa.

user = www
group = www

10. Har ila yau, ƙirƙirar fayil ɗin daidaitawa na PHP da ake amfani da shi don samarwa ta hanyar ba da umarnin da ke ƙasa. A kan wannan fayil za ku iya yin canje-canje na al'ada waɗanda za a yi amfani da su ga mai fassarar PHP a lokacin aiki.

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

Misali, canza saitin date.timezone don fassarar PHP domin sabunta wurin injin ku kamar yadda aka nuna a misalin da ke ƙasa. Ana iya samun jerin lokutan yankin lokaci na PHP anan: http://php.net/manual/en/timezones.php.

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

Ƙara yankin lokaci mai biyo baya (saita yankin lokaci kamar yadda ƙasarku take).

date.timezone = Europe/London

Hakanan zaka iya daidaita wasu masu canji na PHP, kamar matsakaicin girman fayil ɗin fayil ɗin da aka ɗora, wanda za'a iya ƙarawa ta hanyar canza dabi'u na ƙasa:

upload_max_filesize = 10M
post_max_size = 10M

11. Bayan haka, kun yi saitunan al'ada don PHP, kunna kuma fara PHP-FPM daemon don amfani da sabon saiti ta hanyar ba da umarnin da ke ƙasa.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Ta hanyar tsoho, PHP-FPM daemon a cikin FreeBSD yana ɗaure akan soket na cibiyar sadarwar gida akan tashar jiragen ruwa 9000/TCP. Don nuna kwas ɗin cibiyar sadarwar PHP-FPM aiwatar da umarni mai zuwa.

# sockstat -4 -6| grep php-fpm

13. Domin sabar gidan yanar gizon Nginx ya wuce rubutun PHP zuwa uwar garken ƙofar FastCGI, wanda ke sauraron 127.0.0.1: 9000 soket, buɗe babban fayil ɗin Nginx kuma ƙara toshe mai zuwa kamar yadda aka kwatanta. a cikin samfurin da ke ƙasa.

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

Lambar lambar FastCGI don 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. Domin duba bayanan PHP na yanzu don uwar garken ku, ƙirƙirar fayil ɗin info.php a cikin hanyar weboot Nginx ta hanyar ba da umarni mai zuwa.

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

15. Sa'an nan, gwada kuma sake kunna Nginx daemon don amfani da saitunan PHP FastCGI kuma ziyarci info.php shafi a cikin mai bincike.

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

Sauya adireshin IP ko sunan yanki a cikin hanyoyin haɗin da ke ƙasa daidai. Shafin bayanan PHP ya kamata ya nuna bayanai kamar yadda aka kwatanta a hoton da ke ƙasa.

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

Mataki 3: Sanya MariaDB akan FreeBSD

16. Bangare na ƙarshe da ya ɓace daga tarin FEMP ɗinku a cikin bayanan. MariaDB/MySQL shine ɗayan mafi alaƙar tushen tushen software na RDBMS tare da sabar gidan yanar gizo na Nginx da aka yi amfani da shi don tura gidajen yanar gizo masu ƙarfi.

A zahiri, MariaDB/MySQL yana ɗaya daga cikin bayanan da aka fi amfani da su na alaƙar bayanai a duniya. Bincika ta Tashoshin Tashoshin FreeBSD, zaku iya samun sakin MariaDB/MySQL da yawa.

A cikin wannan jagorar za mu shigar da bayanan MariaDB, wanda shine cokali mai yatsu na MySQL database. Don bincika samuwan nau'ikan MariaDB, ba da umarni masu zuwa a cikin tasha.

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

17. Don shigar da sabuwar sigar uwar garken bayanai na MariaDB aiwatar da umarni mai zuwa. Hakanan ya kamata ku shigar da tsarin direban bayanan bayanai na PHP wanda rubutun PHP ke amfani dashi don haɗawa zuwa MySQL.

# pkg install mariadb102-server php71-mysqli

18. Bayan an shigar da bayanan bayanan, kunna MySQL daemon kuma fara sabis ɗin bayanai ta hanyar bin umarni masu zuwa.

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

19. Har ila yau,, ka tabbata ka sake kunna PHP-FPM daemon domin loda MySQL direban tsawo.

# 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. Don gwada haɗin bayanan MariaDB daga na'ura wasan bidiyo, aiwatar da umarnin da ke ƙasa.

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

22. Domin ci gaba da tsaro MariaDB, wanda ta tsohuwa don sauraron hanyoyin sadarwa masu shigowa akan 0.0.0.0: 3306/TCP soket, ba da umarnin da ke ƙasa don tilasta sabis ɗin don ɗaure a kan madaidaicin madogara kuma gaba daya hana shiga nesa. Bayan haka, sake kunna sabis na MySQL don amfani da sabon saitin.

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

Tabbatar idan an yi nasarar amfani da ɗaurin localhost ta hanyar gudanar da umarnin netstat kamar yadda aka nuna a misalin da ke ƙasa.

# netstat -an -p tcp

Shi ke nan! Kun yi nasarar shigar da sabar gidan yanar gizo ta Nginx, bayanan dangantaka na MariaDB da harshen shirye-shirye na uwar garken PHP a cikin FreeBSD. Yanzu zaku iya fara gina shafukan yanar gizo masu ƙarfi don ba da abun cikin gidan yanar gizon ga baƙi.