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


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

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

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

Vaihe 1: Asenna Nginx-Web-palvelin FreeBSD: hen

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

Nginx-verkkopalvelimella on enemmän valmiiksi pakattuja paketteja, jotka ovat saatavilla FreeBSD 11.x PORTS -palvelussa. Saadaksesi luettelon Nginx-binaareista Porttivarastoista, anna seuraavat komennot palvelinpäätteessäsi.

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

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

# pkg install nginx

3. Kun Nginx-verkkopalvelinpaketti on asennettu järjestelmään, suorita seuraavat komennot, jotta daemon otetaan käyttöön koko järjestelmässä ja käynnistetään palvelu järjestelmässäsi.

# sysrc nginx_enable="yes"
# service nginx start

4. Tarkista seuraavaksi käyttämällä sockstat-komentoa Nginx-palveluverkon pistorasiat, jos ne sitovat 80/TCP-porttia, antamalla alla olevan komennon. Sockstat-komennon ulostulo ohjataan grep-apuohjelman kautta palautettujen tulosten vähentämiseksi vain nginx-merkkijonoksi.

# sockstat -4 | grep nginx

5. Avaa lopuksi selain verkon pöytätietokoneella ja siirry Nginxin oletussivulle HTTP-protokollan kautta. Kirjoita koneesi FQDN, verkkotunnuksesi tai palvelimesi IP-osoite selaimen URL-osoitteeseen, joka on jätetty 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 oletusarvoinen Weboot-hakemisto, joka sijaitsee/usr/local/www/nginx/absoluuttinen järjestelmärata. Tässä paikassa sinun on luotava, kopioitava tai asennettava verkkosivustotiedostoja, kuten .html tai .php -tiedostoja.

Voit muuttaa tätä sijaintia muokkaamalla nginx-pääasetustiedostoa ja vaihtamalla juurikäskyn vastaamaan uutta webroot-polkua.

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

Täällä etsi ja päivitä seuraava rivi vastaamaan uutta verkkoradan polkua:

root	/path/to/new/webroot;

Vaihe 2: Asenna PHP FreeBSD: lle

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

FreeBSD 11.x -porttien arkistot tarjoavat useita binaariversioita PHP-ohjelmointikielelle, kuten PHP 5.6, PHP 7.0 ja PHP 7.1. Suorita alla olevat komennot, jotta kaikki saatavilla olevat valmiiksi kootut PHP-versiot voidaan näyttää FreeBSD 11.x: ssä.

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

8. Voit halutessasi asentaa minkä tahansa PHP-version, jonka löydät parhaiten järjestelmässäsi käyttämääsi verkkosovellusta varten. Tässä oppaassa asennamme kuitenkin PHP: n uusimman version.

Asenna PHP 7.1 -julkaisu ja joitain PHP-moduuleja, joita tarvitaan erilaisille verkkosovelluksille, 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ään, avaa PHP-FPM-määritystiedosto Nginxille ja säädä käyttäjän ja ryhmän arvot vastaamaan Nginx-ajonaikaisen käyttäjän arvoa, joka on www. Tee ensin varmuuskopio tiedostosta alla olevan komennon avulla.

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

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

user = www
group = www

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

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

Muuta esimerkiksi PHP-tulkin date.timezone-asetusta päivittääksesi 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 (aseta aikavyöhyke maasi mukaan).

date.timezone = Europe/London

Voit myös säätää muita PHP-muuttujia, kuten ladatun tiedoston suurinta tiedostokokoa, jota voidaan kasvattaa muokkaamalla alla olevia arvoja:

upload_max_filesize = 10M
post_max_size = 10M

11. Kun olet tehnyt mukautetut asetukset PHP: lle, ottamalla käyttöön ja käynnistämällä PHP-FPM-daemon, jotta voit käyttää uusia kokoonpanoja antamalla alla olevat komennot.

# sysrc php_fpm_enable=yes
# service php-fpm start

12. Oletusarvon mukaan FreeBSD: n PHP-FPM-daemon sitoo portin 9000/TCP paikallisen verkon liitäntään. Suorita seuraava komento näyttääksesi PHP-FPM -verkkoliittimet.

# sockstat -4 -6| grep php-fpm

13. Jotta Nginx-verkkopalvelin välittää PHP-komentosarjat FastCGI-yhdyskäytäväpalvelimelle, joka kuuntelee 127.0.0.1:9000 -liitäntää, avaa Nginx-pääasetustiedosto ja lisää seuraava koodilohko kuvan mukaisesti alla olevassa näytteessä.

# 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. Voit tarkastella palvelimesi nykyisiä PHP-tietoja luomalla info.php -tiedoston Nginx weboot -polulle antamalla seuraavan komennon.

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

15. Testaa ja käynnistä sitten Nginx-daemon uudelleen, jotta voit käyttää PHP FastCGI -asetuksia, ja siirry selaimen info.php -sivulle.

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

Korvaa alla olevissa linkeissä oleva IP-osoite tai verkkotunnus vastaavasti. PHP-tietosivun tulisi näyttää tiedot alla olevan kuvakaappauksen mukaisesti.

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

Vaihe 3: Asenna MariaDB FreeBSD: lle

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

Itse asiassa MariaDB/MySQL on yksi käytetyimmistä relaatiotietokannoista maailmassa. FreeBSD-porttien kautta löydät useita MariaDB/MySQL-julkaisuja.

Tässä oppaassa asennamme MariaDB-tietokannan, joka on MySQL-tietokannan yhteisöhaarukka. Voit etsiä käytettävissä olevia versioita MariaDB: stä lähettämällä seuraavat komennot päätelaitteeseen.

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

17. Asenna MariaDB-tietokantapalvelimen uusin versio suorittamalla seuraava komento. Asenna myös PHP-relaatiotietokannan ohjainmoduuli, jota PHP-komentosarjat käyttävät yhteyden muodostamiseen MySQL: ään.

# 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 ladataksesi 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. Testaa MariaDB-tietokantayhteys konsolista suorittamalla seuraava komento.

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

22. MariaDB: n, joka oletusarvoisesti kuuntelee saapuvia verkkoyhteyksiä 0.0.0.0:3306/TCP -liitännässä, suojaamiseksi entisestään, anna seuraava komento pakottaaksesi palvelu sitoutumaan loopback-liitäntään ja estämään etäkäyttö kokonaan. Käynnistä sitten MySQL-palvelu uudestaan, jotta uusi kokoonpano voidaan ottaa käyttöön.

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

Varmista, että localhost-sidonta on onnistuneesti suoritettu suorittamalla netstat-komento alla olevan esimerkin mukaisesti.

# netstat -an -p tcp

Siinä kaikki! Olet asentanut Nginx-verkkopalvelimen, MariaDB-relaatiotietokannan ja PHP-palvelinpuolen ohjelmointikielen onnistuneesti FreeBSD: hen. Voit nyt aloittaa dynaamisten verkkosivujen rakentamisen palvelemaan Web-sisältöä kävijöillesi.