Kako instalirati Apache, MariaDB i PHP (FAMP) stack na FreeBSD


Ovaj vodič će opisati kako instalirati i konfigurirati FBAMP u FreeBSD operativnom sistemu, koji je sličan LAMP stogu na Linuxu. FBAMP je akronim koji označava kolekciju softvera zasnovanog na FreeBSD OS-u, Apache HTTP serveru, najpopularnijem web serveru otvorenog koda na internetu, MariaDB< sistem upravljanja relacionim bazama podataka (RDBMS), fork MySQL motora baze podataka i PHP na strani servera.

Zahtjevi

  1. Svježa instalacija FreeBSD-a
  2. FreeBSD početne konfiguracije
  3. Direktan pristup konzoli ili SSH u slučaju udaljene veze na FreeBSD.
  4. Statička IP adresa konfigurirana na mrežnom sučelju.

Korak 1: Instalirajte Apache na FreeBSD

1. Prva usluga koju ćemo instalirati je Apache HTTP server. Podrazumevano, FreeBSD nudi više verzija sa različitim radnim modulima za Apache web server.

Verzije su unapred kompajlirane u binarni paket i obezbeđene od FreeBSD PORTS spremišta. Da biste prikazali sve binarne datoteke Apache paketa koje pruža PORTS, izdajte sljedeću naredbu.

ls /usr/ports/www/ | grep apache

Također možete tražiti dostupne unaprijed usklađene Apache pakete na FreeBSD-u izdavanjem donje naredbe.

pkg search apache2

2. Zatim, instalirajte najnoviju verziju Apache HTTP servera sa svim potrebnim modulima izdavanjem sljedeće naredbe.

pkg install apache24

3. Nakon što je Apache web server instaliran na sistem, izdajte sljedeću naredbu da omogućite demona za cijeli sistem u FreeBSD-u.

sysrc apache24_enable="yes"

Alternativna metoda omogućavanja Apache demona bi bila da ručno uredite i dodate red apache24_enable="yes" u datoteku /etc/rc.conf kao što je ilustrovano na snimku ekrana ispod.

4. Konačno, da biste testirali da li web server ispravno radi, pokrenite Apache demon izdavanjem donje naredbe i posjetite zadanu web stranicu usmjeravajući pretraživač na IP adresu vašeg servera FQDN ( http://IP-orFQDN) kao što je prikazano na slici ispod.

service apache24 start

Podrazumevani webroot direktorij Apache web servera u FreeBSD 11.x nalazi se na /usr/local/www/apache24/data/ sistemskoj putanji. Tamo ćete naći mali index.html fajl koji možete uređivati po želji.

Korak 2: Instalirajte PHP na FreeBSD

5. FreeBSD 11.x nudi više verzija PHP interpretiranog jezika na strani servera upakovanog u unaprijed usklađene binarne datoteke. Da biste dobili listu svih dostupnih PHP verzija paketa koje pružaju FreeBSD Ports repozitorijumi, izdajte sljedeću naredbu.

ls /usr/ports/lang/ | grep php

Alternativni metod traženja svih dostupnih verzija FreeBSD PHP paketa je pokretanje naredbe ispod.

pkg search -o php

6. Da pretražite sve dostupne binarne datoteke koje nudi FreeBSD za određenu verziju PHP-a (trenutno 5 ili 7 verzije) pokrenite donje naredbe. Koristite naredbu less za sužavanje i navigaciju kroz izlaz.

pkg search php5 |less
pkg search php7

7. Da biste bili precizniji o tome koje module nudi prilagođena PHP verzija, pokrenite sljedeću naredbu kao što je opisano u nastavku, koja prikazuje sve dostupne module za verziju PHP 7.1.

pkg search php71

8. U ovom vodiču ćemo instalirati PHP 7.1 izdanje za naš FBAMP stog. Izdajte sljedeću naredbu da instalirate PHP sa nekim od najvažnijih modula potrebnih za tipičnu CMS instalaciju.

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

9. Zatim moramo kreirati php.conf konfiguracijski fajl za Apache web server u /usr/local/etc/apache24/Includes/ > sistemska putanja sa sljedećim sadržajem.

nano /usr/local/etc/apache24/Includes/php.conf

Dodajte sljedeće redove u datoteku php.conf.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. Da biste testirali da li PHP gateway radi kako se očekuje sa Apache web serverom, kreirajte PHP info.php datoteku u /usr/local/www/ apache24/data/system putanja, koja je zadana staza korijenskog web dokumenta Apache web servera.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Ponovo pokrenite Apache demon da primijenite promjene.

service apache24 restart

Zatim posjetite sljedeći URI u pretraživaču da vidite PHP sažetak.

http://IP-or-FQDN/info.php 

11. Da biste aktivirali PHP ini konfiguracionu datoteku za proizvodnju, izdajte donje naredbe. Možete modificirati php.ini proizvodni fajl kako biste promijenili različite PHP postavke u vašem FBAMP steku.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Korak 3: Instalirajte MariaDB na FreeBSD

12. Posljednja komponenta koja nedostaje za naš FBAMP stog je MySQL server baze podataka. FreeBSD 11.x nudi više od 1000 paketa za različite baze podataka.

Da biste prikazali koje su komponente dostupne za MariaDB ili MySQL baze podataka, izdajte sljedeće naredbe. U ovom vodiču ćemo instalirati MariaDB bazu podataka preko MySQL-a (koji je sada u vlasništvu i aktivno razvijen od strane Oraclea).

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

13. U ovom vodiču ćemo instalirati najnoviju verziju MariaDB servera baze podataka u FreeBSD-u, koji je trenutno predstavljen mariadb102 izdanjem binarnog paketa.

Pokrenite sljedeću naredbu da biste instalirali MariaDB server i klijent i potreban PHP 7.1 modul potreban za pristup bazi podataka preko Apache serverskog gatewaya.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Zatim omogućite MariaDB server u cijelom sistemu i pokrenite demon baze podataka tako što ćete pokrenuti sljedeće naredbe.

sysrc mysql_enable="yes" 
service mysql-server start

15. Za osiguranje baze podataka pokrenite mysql_secure_installation scrip. Koristite donji izvod iz skripte da ojačate MariaDB.

/usr/local/bin/mysql_secure_installation
Sample Output

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!

16. Prema zadanim postavkama, MariaDB daemon osluškuje mrežne veze izvan lokalnog hosta na portu 3306/TCP. Pokrenite naredbu netstat, lsof ili sockstat da dobijete stanje MariaDB utičnice. Ova konfiguracija je opasna i izlaže uslugu vanjskim mrežnim napadima.

lsof -i4 -i6
sockstat -4 -6

17. Ako vam nije potreban daljinski pristup MariaDB-u, uvjerite se da MariaDB demon sluša samo localhost, izdavanjem donje naredbe. Nakon toga, ponovo pokrenite MariaDB uslugu da biste primijenili promjene.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Opet, pokrenite naredbu netstat, lsof ili sockstat da biste prikazali MariaDB mrežnu utičnicu. Utičnica bi se sada trebala vezati i slušati na lokalnom hostu, kao što je prikazano na donjoj slici.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Za testiranje povezivanja MariaDB baze podataka sa konzole izdajte sljedeću naredbu. Unesite MySQL root lozinku u prompt i lista podrazumevanih baza podataka bi se trebala prikazati na ekranu vaše konzole kao što je ilustrovano na donjoj slici.

mysql -u root -p -e "show databases"

To je sve! Uspješno ste instalirali Apache web server sa MariaDB bazom podataka i PHP interpreterom u FreeBSD-u. Sada možete započeti s postavljanjem WordPress web stranice za tren oka.

U sljedećem tutorijalu ćemo razgovarati o nekim naprednim FPBAMP temama, kao što su kako omogućiti i kreirati Apache virtuelne hostove, omogućiti modul za prepisivanje koji je potreban za .htaccess datoteku da ispravno funkcionira i kako osigurati Apache veze koristeći Samopotpisani certifikat ili besplatni certifikat koji nudi entitet Let's Encrypt.