Kif Tinstalla Nginx, MariaDB u PHP (FEMP) Stack fuq FreeBSD


Dan it-tutorja jiggwidak dwar kif tinstalla u tikkonfigura FBEMP fl-aħħar rilaxx ta' FreeBSD 11.x. FBEMP huwa akronimu li jiddeskrivi l-ġabra ta' softwer li ġejja:

Distribuzzjoni bħal FreeBSD 11.1 Unix, server tal-web Nginx, sistema ta 'ġestjoni tad-database relazzjonali MariaDB (furketta komunitarja ta' MySQL) u lingwa ta 'programmar dinamiku PHP li taħdem fuq in-naħa tas-server.

  1. Installazzjoni ta' FreeBSD 11.x
  2. 10 Affarijiet X'tagħmel Wara l-Installazzjoni ta' FreeBSD

Pass 1: Installa Nginx Web Server fuq FreeBSD

1. L-ewwel servizz li ser ninstallaw għall-munzell FBEMP tagħna f'FreeBSD huwa s-server tal-web, rappreżentat mis-softwer Nginx.

Is-server tal-web Nginx għandu aktar pakketti kkonformati minn qabel disponibbli f'PORTIJIET FreeBSD 11.x. Sabiex tikseb lista ta 'binarji Nginx mir-repożitorji tal-Ports, agħti l-kmandi li ġejjin fit-terminal tas-server tiegħek.

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

2. F'din il-konfigurazzjoni partikolari, aħna ser ninstallaw il-verżjoni tal-pakkett prinċipali ta 'Nginx billi noħorġu l-kmand ta' hawn taħt. Il-ġestjoni tal-pakkett pkg jistaqsik jekk tridx tipproċedi bl-installazzjoni tal-pakkett nginx. Wieġeb b'iva (y fil-linja tal-kmand) sabiex tibda l-proċess ta 'installazzjoni.

# pkg install nginx

3. Wara li l-pakkett tas-server tal-web Nginx ġie installat fis-sistema tiegħek, tesegwixxi l-kmandi li ġejjin sabiex tippermetti d-daemon fis-sistema kollha u tibda s-servizz fis-sistema tiegħek.

# sysrc nginx_enable="yes"
# service nginx start

4. Sussegwentement, billi tuża l-kmand tas-sockstat, ivverifika s-sokits tan-netwerk tas-servizz Nginx, jekk ikunu jorbtu fuq il-port 80/TCP, billi toħroġ il-kmand ta 'hawn taħt. L-output tal-kmand tas-sockstat se jitmexxa permezz tal-utilità grep sabiex jitnaqqsu r-riżultati rritornati biss għal string nginx.

# sockstat -4 | grep nginx

5. Fl-aħħarnett, iftaħ browser fuq kompjuter desktop fin-netwerk tiegħek u żur il-paġna web default ta 'Nginx permezz tal-protokoll HTTP. Ikteb l-FQDN tal-magna tiegħek jew l-isem tad-dominju tiegħek jew l-indirizz IP tas-server tiegħek fil-URL tal-browser iffajljat biex titlob il-paġna web default tas-server tal-web Nginx. Il-messaġġ \Merħba għal nginx! għandu jintwera fil-browser tiegħek, kif muri fil-screenshot hawn taħt.

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

6. Id-direttorju weboot default għall-kontenut tal-web Nginx jinsab fil-mogħdija tas-sistema assoluta /usr/local/www/nginx/. F'dan il-post għandek toħloq, tikkopja jew tinstalla fajls tal-kontenut tal-web, bħal fajls .html jew .php, għall-websajt tiegħek.

Biex tibdel dan il-post, editja l-fajl tal-konfigurazzjoni prinċipali nginx u ibdel id-direttiva tal-għeruq biex tirrifletti l-mogħdija ġdida tal-webroot tiegħek.

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

Hawnhekk, fittex u aġġorna l-linja li ġejja biex tirrifletti l-mogħdija ġdida tal-webroot tiegħek:

root	/path/to/new/webroot;

Pass 2: Installa PHP fuq FreeBSD

7. B'differenza mis-server Apache HTTP, Nginx m'għandux il-kapaċità li jipproċessa b'mod nattiv il-kodiċi PHP. Bi tpattija, is-server tal-web Nginx jgħaddi talbiet PHP lil interpretu PHP, bħal daemon php-fpm FastCGI, li jispezzjona u jesegwixxi l-kodiċi. Il-kodiċi li rriżulta mbagħad jiġi rritornat lura lil Nginx, li jerġa 'jiġbor il-kodiċi lura għall-format html mitlub u jibgħat il-kodiċi aktar lill-web browser tal-viżitaturi.

Ir-repożitorji ta' FreeBSD 11.x Ports joffru verżjonijiet binarji multipli għal-lingwa ta' programmar PHP, bħal PHP 5.6, PHP 7.0 u PHP 7.1 rilaxxi. Sabiex turi l-verżjonijiet kollha disponibbli ta' PHP miġbura minn qabel f'FreeBSD 11.x, mexxi l-kmandi ta' hawn taħt.

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

8. Tista' tagħżel li tinstalla kwalunkwe verżjoni ta' PHP li ssib l-aktar adattata għall-applikazzjoni tal-web li tħaddem fis-sistema tiegħek. Madankollu, f'din il-gwida aħna ser ninstallaw l-aħħar verżjoni PHP.

Biex tinstalla PHP 7.1 rilaxx u xi moduli PHP importanti meħtieġa għal diversi applikazzjonijiet tal-web, mexxi l-kmand li ġej.

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

9. Wara li tkun installat pakketti PHP fis-sistema tiegħek, iftaħ il-fajl ta 'konfigurazzjoni PHP-FPM għal Nginx u aġġusta l-valuri tal-utent u tal-grupp biex jaqblu mal-valur fuq l-utent runtime Nginx, li huwa www. L-ewwel, agħmel backup tal-fajl bil-kmand hawn taħt.

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

Imbagħad, iftaħ il-fajl u aġġorna l-linji li ġejjin kif ippreżentat fil-kampjun hawn taħt.

user = www
group = www

10. Ukoll, oħloq fajl ta 'konfigurazzjoni PHP użat għall-produzzjoni billi toħroġ il-kmand ta' hawn taħt. Fuq dan il-fajl tista 'tagħmel bidliet personalizzati li se jiġu applikati għall-interpretu PHP waqt ir-runtime.

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

Pereżempju, ibdel l-issettjar tad-data.timezone għall-interpretu PHP sabiex taġġorna l-post fiżiku tal-magna tiegħek kif muri fl-eżempju hawn taħt. Il-lista taż-żoni tal-ħin PHP tista' tinstab hawn: http://php.net/manual/en/timezones.php.

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

Żid iż-żona tal-ħin li ġejja (issettja ż-żona tal-ħin skont il-pajjiż tiegħek).

date.timezone = Europe/London

Tista 'wkoll taġġusta varjabbli PHP oħra, bħad-daqs massimu tal-fajl tal-fajl imtella', li jista' jiżdied billi timmodifika l-valuri hawn taħt:

upload_max_filesize = 10M
post_max_size = 10M

11. Wara, għamilt is-settings tad-dwana għall-PHP, ippermetti u ibda d-daemon PHP-FPM sabiex tapplika l-konfigurazzjonijiet il-ġodda billi toħroġ il-kmandi hawn taħt.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. B'mod awtomatiku, daemon PHP-FPM f'FreeBSD jorbot fuq socket tan-netwerk lokali fuq il-port 9000/TCP. Biex turi s-sokits tan-netwerk PHP-FPM tesegwixxi l-kmand li ġej.

# sockstat -4 -6| grep php-fpm

13. Sabiex is-server tal-web Nginx jgħaddi l-iskripts PHP lis-server tal-gateway FastCGI, li qed jisma fuq is-socket 127.0.0.1:9000, iftaħ il-fajl ewlieni tal-konfigurazzjoni Nginx u żid il-blokka ta 'kodiċi li ġejja kif illustrat. fil-kampjun hawn taħt.

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

Blokk tal-kodiċi FastCGI għal 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. Sabiex tara l-informazzjoni PHP kurrenti għas-server tiegħek, oħloq fajl info.php fil-mogħdija Nginx weboot billi toħroġ il-kmand li ġej.

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

15. Imbagħad, ittestja u erġa ibda Nginx daemon biex tapplika s-settings PHP FastCGI u żur il-paġna info.php fi browser.

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

Ibdel l-indirizz IP jew l-isem tad-dominju fil-links hawn taħt kif xieraq. Il-paġna ta' informazzjoni PHP għandha turi informazzjoni kif muri fil-screenshot hawn taħt.

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

Pass 3: Installa MariaDB fuq FreeBSD

16. L-aħħar komponent nieqes mill-munzell FEMP tiegħek fid-database. MariaDB/MySQL huwa wieħed mis-softwer RDBMS ta' sors miftuħ l-aktar assoċjat mas-server tal-web Nginx użat għall-iskjerament ta' websajts dinamiċi.

Attwalment, MariaDB/MySQL hija waħda mid-databases relazzjonali l-aktar użati fid-dinja. Fittex permezz tal-Portijiet FreeBSD, tista 'ssib rilaxxi multipli ta' MariaDB/MySQL.

F'din il-gwida aħna ser ninstallaw id-database MariaDB, li hija furketta komunitarja tad-database MySQL. Biex tfittex verżjonijiet disponibbli ta 'MariaDB, agħti l-kmandi li ġejjin fit-terminal.

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

17. Biex tinstalla l-aħħar verżjoni tas-server tad-database MariaDB tesegwixxi l-kmand li ġej. Għandek tinstalla wkoll il-modulu tas-sewwieq tad-database relazzjonali PHP użat mill-iskripts PHP għall-konnessjoni mal-MySQL.

# pkg install mariadb102-server php71-mysqli

18. Wara li d-database tkun ġiet installata, ippermetti MySQL daemon u ibda s-servizz tad-database billi tħaddem il-kmandi li ġejjin.

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

19. Ukoll, kun żgur li terġa 'tibda PHP-FPM daemon sabiex tagħbija estensjoni tas-sewwieq MySQL.

# 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. Biex tittestja l-konnessjoni tad-database MariaDB mill-console, tesegwixxi l-kmand hawn taħt.

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

22. Sabiex tkompli tassigura lil MariaDB, li b'mod awtomatiku jisma' għal konnessjonijiet tan-netwerk deħlin fuq socket 0.0.0.0:3306/TCP, ħarġet il-kmand ta 'hawn taħt biex iġġiegħel is-servizz jorbot fuq l-interface loopback u ma jħallix kompletament aċċess remot. Wara, ibda mill-ġdid is-servizz MySQL biex tapplika l-konfigurazzjoni l-ġdida.

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

Ivverifika jekk ir-rabta tal-localhost ġietx applikata b'suċċess billi tħaddem il-kmand ta' netstat kif muri fl-eżempju ta' hawn taħt.

# netstat -an -p tcp

Dak kollox! Installajt b'suċċess is-server tal-web Nginx, id-database relazzjonali MariaDB u l-lingwa ta 'programmar PHP fuq is-server fi FreeBSD. Issa tista' tibda tibni paġni tal-web dinamiċi biex isservi kontenut tal-web lill-viżitaturi tiegħek.