Kuinka asentaa Nginx, MariaDB ja PHP (FEMP) Stack FreeBSD:lle


Tämä opetusohjelma opastaa sinua asentamaan ja määrittämään FBEMP:n FreeBSD 11.x uusimmassa versiossa. FBEMP on lyhenne, joka kuvaa seuraavaa ohjelmistokokoelmaa:

FreeBSD 11.1 Unix-tyyppinen jakelu, Nginx-verkkopalvelin, MariaDB-relaatiotietokannan hallintajärjestelmä (MySQL:n yhteisöhaarukka) ja dynaaminen PHP-ohjelmointikieli, joka toimii palvelinpuolella.

Vaatimukset

  1. FreeBSD 11.x:n asennus
  2. 10 asiaa FreeBSD:n asennuksen jälkeen

Vaihe 1: Asenna Nginx Web Server FreeBSD:hen

1. Ensimmäinen palvelu, jonka asennamme FBEMP-pinolle FreeBSD:ssä, on verkkopalvelin, jota edustaa Nginx > ohjelmisto.

Nginx-verkkopalvelimella on enemmän valmiita paketteja saatavilla FreeBSD 11.x PORTSissa. Saadaksesi luettelon Nginx-binaareista Portit-tietovarastoista antamalla seuraavat komennot palvelinpäätteessäsi.

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

2. Tässä määrityksessä asennamme Nginxin pääpakettiversion antamalla alla olevan komennon. pkg-paketin hallinta kysyy, haluatko jatkaa nginx-paketin asentamista. Vastaa kyllä (komentorivillä y) aloittaaksesi asennuksen.

pkg install nginx

3. Kun Nginx-verkkopalvelinpaketti on asennettu järjestelmääsi, suorita seuraavat komennot ottaaksesi demoni käyttöön koko järjestelmän ja käynnistääksesi palvelun järjestelmässäsi.

sysrc nginx_enable="yes"
service nginx start

4. Tarkista seuraavaksi sockstat-komennolla Nginx-palveluverkkopistokkeet, jos ne sitovat 80/TCP-porttia, antamalla alla komento. Sockstat-komennon tulos putoaa grep-apuohjelman kautta, jotta palautetut tulokset pienennetään vain nginx-merkkijonoon.

sockstat -4 | grep nginx

5. Avaa lopuksi selain verkossasi olevalla pöytätietokoneella ja käy Nginxin oletusverkkosivulla HTTP-protokollan kautta. Kirjoita koneesi FQDN tai verkkotunnuksesi nimi tai palvelimesi IP-osoite selaimen URL-osoitteeseen, joka on tallennettu pyytämään Nginx-verkkopalvelimen oletussivua. Viesti "Tervetuloa nginxiin!" pitäisi näkyä selaimessasi alla olevan kuvakaappauksen mukaisesti.

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

6. Nginx-verkkosisällön oletusverkkokäynnistyshakemisto sijaitsee /usr/local/www/nginx/ absoluuttisessa järjestelmäpolussa. Tässä paikassa sinun tulee luoda, kopioida tai asentaa Web-sisältötiedostoja, kuten .html- tai .php-tiedostoja, verkkosivustollesi.

Jos haluat muuttaa tätä sijaintia, muokkaa nginx-pääkonfiguraatiotiedostoa ja muuta root-direktiivi vastaamaan uutta webroot-polkuasi.

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

Etsi ja päivitä seuraava rivi vastaamaan uutta webroot-polkuasi:

root	/path/to/new/webroot;

Vaihe 2: Asenna PHP FreeBSD:hen

7. Toisin kuin Apache HTTP -palvelin, Nginx ei pysty käsittelemään PHP-koodia natiivisti. Vastineeksi Nginx-verkkopalvelin välittää PHP-pyynnöt PHP-tulkijalle, kuten php-fpm FastCGI-daemonille, joka tarkastaa ja suorittaa koodin. Tuloksena oleva koodi palautetaan sitten takaisin Nginxille, joka kokoaa koodin takaisin pyydettyyn html-muotoon ja lähettää koodin edelleen vierailijan verkkoselaimeen.

FreeBSD 11.x -porttivarastot tarjoavat useita binääriversioita PHP-ohjelmointikielelle, kuten PHP 5.6, PHP 7.0 ja PHP 7.1< julkaisee. Voit näyttää kaikki saatavilla olevat esikäännetyt PHP-versiot FreeBSD 11.x:ssä suorittamalla alla olevat komennot .

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

8. Voit asentaa minkä tahansa PHP-version, joka sopii parhaiten järjestelmässäsi käyttämääsi verkkosovellukseen. Tässä oppaassa asennamme kuitenkin PHP:n uusimman version.

Asenna PHP 7.1 -julkaisu ja jotkin tärkeitä PHP-moduuleja, joita tarvitaan erilaisiin verkkosovelluksiin, suorittamalla seuraava komento.

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

9. Kun olet asentanut PHP-paketit järjestelmääsi, avaa PHP-FPM-määritystiedosto Nginxille ja säädä käyttäjä- ja ryhmäarvot vastaamaan Nginx-ajonaikaisen arvon arvoja. käyttäjä, joka on www. Tee ensin varmuuskopio tiedostosta alla olevalla komennolla.

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

Avaa sitten tiedosto ja päivitä seuraavat rivit alla olevan näytteen mukaisesti.

user = www
group = www

10. Luo myös tuotannossa käytettävä PHP-määritystiedosto antamalla alla oleva komento. Tähän tiedostoon voit tehdä mukautettuja muutoksia, joita sovelletaan PHP-tulkkiin suorituksen aikana.

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

Muuta esimerkiksi PHP-tulkin date.timezone-asetusta, jotta voit päivittää koneesi fyysisen sijainnin alla olevan esimerkin mukaisesti. PHP-aikavyöhykeluettelo löytyy täältä: http://php.net/manual/en/timezones.php.

vi /usr/local/etc/php.ini

Lisää seuraava aikavyöhyke (määritä aikavyöhyke maasi mukaan).

date.timezone = Europe/London

Voit myös säätää muita PHP-muuttujia, kuten ladatun tiedoston enimmäiskokoa, jota voidaan suurentaa muuttamalla alla olevia arvoja:

upload_max_filesize = 10M
post_max_size = 10M

11. Kun olet tehnyt PHP:n mukautetut asetukset, ota käyttöön ja käynnistä PHP-FPM-daemon, jotta voit ottaa uudet asetukset käyttöön antamalla alla olevat komennot.

sysrc php_fpm_enable=yes
service php-fpm start

12. Oletuksena FreeBSD:n PHP-FPM-daemon sitoutuu paikallisverkkoon portissa 9000/TCP. Näytä PHP-FPM-verkkopistokkeet suorittamalla seuraava komento.

sockstat -4 -6| grep php-fpm

13. Jotta Nginx-verkkopalvelin voisi välittää PHP-skriptit FastCGI-yhdyskäytäväpalvelimelle, joka kuuntelee 127.0.0.1:9000-liitäntää, avaa Nginx-pääkonfiguraatiotiedosto ja lisää seuraava koodilohko alla olevan näytteen mukaisesti.

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

FastCGI-koodilohko nginxille:

 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. Jos haluat tarkastella palvelimesi tämänhetkisiä PHP-tietoja, luo info.php-tiedosto Nginxin weboot-polkuun antamalla seuraava komento.

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

15. Testaa ja käynnistä sitten Nginx-daemon uudelleen ottaaksesi PHP FastCGI -asetukset käyttöön ja käy selaimessa info.php-sivulla.

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

Vaihda IP-osoite tai verkkotunnuksen nimi alla olevissa linkeissä vastaavasti. PHP-tietosivun pitäisi näyttää tiedot alla olevan kuvakaappauksen mukaisesti.

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

Vaihe 3: Asenna MariaDB FreeBSD:hen

16. Viimeinen komponentti puuttuu tietokannan FEMP-pinosta. MariaDB/MySQL on yksi eniten yhdistetyistä avoimen lähdekoodin RDBMS-ohjelmistoista, joissa on Nginx-verkkopalvelin, jota käytetään dynaamisten verkkosivustojen käyttöönottoon.

Itse asiassa MariaDB/MySQL on yksi eniten käytetyistä relaatiotietokannoista maailmassa. Kun etsit FreeBSD-porttien kautta, voit löytää useita MariaDB/MySQL-julkaisuja.

Tässä oppaassa asennamme MariaDB-tietokannan, joka on MySQL-tietokannan yhteisön haara. Voit etsiä saatavilla olevia MariaDB-versioita antamalla seuraavat komennot terminaalissa.

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

17. Asenna MariaDB-tietokantapalvelimen uusin versio suorittamalla seuraava komento. Asenna myös PHP-relaatiotietokantaohjainmoduuli, jota PHP-skriptit käyttävät MySQL-yhteyden muodostamiseen.

pkg install mariadb102-server php71-mysqli

18. Kun tietokanta on asennettu, ota MySQL-daemon käyttöön ja käynnistä tietokantapalvelu suorittamalla seuraavat komennot.

sysrc mysql_enable="YES" 
service mysql-server start

19. Varmista myös, että käynnistät PHP-FPM-daemonin uudelleen, jotta voit ladata MySQL-ohjainlaajennuksen.

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. Testaaksesi MariaDB-tietokantayhteyden konsolista, suorita alla oleva komento.

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

22. Suojataksesi edelleen MariaDB:tä, joka oletuksena kuuntelee saapuvia verkkoyhteyksiä 0.0.0.0:3306/TCP-liittimessä, pakota palvelu antamalla alla oleva komento sitoa palautussilmukka-liittymään ja estää etäkäytön kokonaan. Tämän jälkeen käynnistä MySQL-palvelu uudelleen ottaaksesi uuden kokoonpanon käyttöön.

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

Varmista, että localhost-sidoksen käyttöönotto onnistui suorittamalla netstat-komento alla olevan esimerkin mukaisesti.

netstat -an -p tcp

Siinä kaikki! Olet onnistuneesti asentanut Nginx-verkkopalvelimen, MariaDB-relaatiotietokannan ja PHP-palvelinpuolen ohjelmointikielen FreeBSD:hen. Voit nyt alkaa rakentaa dynaamisia verkkosivuja tarjotaksesi verkkosisältöä vierailijoillesi.