Kako namestiti sklad Apache, MariaDB in PHP (FAMP) na FreeBSD


Ta priročnik bo opisal, kako namestiti in konfigurirati FBAMP v operacijskem sistemu FreeBSD, ki je podoben skladu LAMP v Linuxu. FBAMP je kratica, ki pomeni zbirko programske opreme, ki temelji na sistemu FreeBSD OS, strežniku HTTP Apache, najbolj priljubljenem odprtokodnem spletnem strežniku na internetu, sistemu za upravljanje relacijskih baz podatkov MariaDB (RDBMS), razcepu motorja baz podatkov MySQL in strežniku PHP -stran.

Zahteve

  1. Sveža namestitev FreeBSD
  2. Začetne konfiguracije FreeBSD
  3. Neposreden dostop do konzole ali SSH v primeru oddaljene povezave s FreeBSD.
  4. Statični naslov IP, konfiguriran na omrežnem vmesniku.

1. korak: Namestite Apache na FreeBSD

1. Prva storitev, ki jo bomo namestili, je strežnik Apache HTTP. FreeBSD privzeto ponuja več različic z različnimi delovnimi moduli za izvajanje za spletni strežnik Apache.

Različice so vnaprej zbrane v binarni paket in jih zagotavljajo repozitoriji FreeBSD PORTS. Če želite prikazati vse binarne datoteke paketov Apache, ki jih ponuja PORTS, izdajte naslednji ukaz.

# ls /usr/ports/www/ | grep apache

Razpoložljive vnaprej izpolnjene pakete Apache lahko poiščete tudi na FreeBSD z izdajo spodnjega ukaza.

# pkg search apache2

2. Nato z naslednjim ukazom namestite najnovejšo različico strežnika Apache HTTP z vsemi zahtevanimi moduli.

# pkg install apache24

3. Ko je spletni strežnik Apache nameščen v sistem, izdajte naslednji ukaz, da omogočite demon v celotnem sistemu v FreeBSD.

# sysrc apache24_enable="yes"

Alternativni način za omogočanje demona Apache bi bil ročno urejanje in dodajanje vrstice apache24_enable =\"yes \" v datoteko /etc/rc.conf, kot je prikazano na spodnjem posnetku zaslona.

4. Na koncu, da preizkusite, ali spletni strežnik pravilno deluje, zaženite demon Apache z izdajo spodnjega ukaza in obiščite privzeto spletno stran, tako da brskalnik usmerite na naslov IP strežnika FQDN ( http:// IP-orFQDN ), kot je prikazano na spodnjem posnetku zaslona.

# service apache24 start

Privzeti spletni imenik spletnega strežnika Apache v FreeBSD 11.x se nahaja v sistemski poti /usr/local/www/apache24/data/. Tam boste našli majhno datoteko index.html, ki jo lahko po želji uredite.

Korak: Namestite PHP na FreeBSD

5. FreeBSD 11.x ponuja več različic strežniškega jezika, ki ga razlaga PHP, pakiranega v vnaprej izpolnjene binarne datoteke. Če želite dobiti seznam vseh razpoložljivih paketov različic PHP, ki jih ponujajo skladišča portov FreeBSD, izdajte naslednji ukaz.

# ls /usr/ports/lang/ | grep php

Alternativni način iskanja vseh razpoložljivih različic paketa FreeBSD PHP je zagon spodnjega ukaza.

# pkg search -o php

6. Če želite poiskati vse razpoložljive binarne datoteke, ki jih ponuja FreeBSD za določeno različico PHP (trenutno 5 ali 7 različic), zaženite spodnje ukaze. Uporabite manj ukaza za zožitev in krmarjenje po izhodu.

# pkg search php5 |less
# pkg search php7

7. Če želite biti natančnejši glede modulov, ki jih ponuja različica PHP po meri, zaženite naslednji ukaz, kot je opisano spodaj, ki prikaže vse razpoložljive module za različico PHP 7.1.

# pkg search php71

8. V tem priročniku bomo namestili različico PHP 7.1 za naš sklad FBAMP. Za namestitev PHP z nekaterimi najpomembnejšimi moduli, ki so potrebni za tipično namestitev CMS, izdajte naslednji ukaz.

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

9. Nato moramo ustvariti konfiguracijsko datoteko php.conf za spletni strežnik Apache v/usr/local/etc/apache24/Includes/sistemski poti z naslednjo vsebino.

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

V datoteko php.conf dodajte naslednje vrstice.

<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. Če želite preveriti, ali prehod PHP deluje pravilno s spletnim strežnikom Apache, ustvarite datoteko PHP info.php v/usr/local/www/apache24/data/sistemski poti, ki je privzeta korenska pot spletnega dokumenta za Apache spletni strežnik.

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

Znova zaženite demon Apache, da uveljavite spremembe.

# service apache24 restart

Nato v brskalniku obiščite naslednji URI, da si ogledate povzetek PHP.

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

11. Če želite aktivirati PHP ini konfiguracijsko datoteko za produkcijo, izdajte spodnje ukaze. Produkcijsko datoteko php.ini lahko spremenite, da spremenite različne nastavitve PHP v svojem skladu FBAMP.

# 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

3. korak: Namestite MariaDB na FreeBSD

12. Zadnja manjkajoča komponenta za naš sklad FBAMP je strežnik baz podatkov MySQL. FreeBSD 11.x ponuja več kot 1000 paketov za različne zbirke podatkov.

Če želite prikazati, katere komponente so na voljo za zbirke podatkov MariaDB ali MySQL, izdajte naslednje ukaze. V tem priročniku bomo namestili zbirko podatkov MariaDB prek MySQL (ki je zdaj v lasti in ga aktivno razvija Oracle).

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

13. V tem priročniku bomo v FreeBSD namestili najnovejšo različico strežnika baz podatkov MariaDB, ki jo trenutno predstavlja izdaja binarnega paketa mariadb102.

Za namestitev strežnika in odjemalca MariaDB ter potrebnega modula PHP 7.1, potrebnega za dostop do baze podatkov prek prehoda strežnika Apache, zaženite naslednji ukaz.

# pkg install mariadb102-server mariadb102-client php71-mysqli

14. Nato omogočite strežnik MariaDB po celotnem sistemu in zaženite demon baze podatkov z izvajanjem naslednjih ukazov.

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

15. Za zaščito baze podatkov zaženite skript mysql_secure_installation. Za utrjevanje MariaDB uporabite spodnji izvleček skripta.

# /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!

16. Demon MariaDB privzeto posluša omrežne povezave zunaj localhosta na vratih 3306/TCP. Zaženite ukaz lsof ali sockstat, da dobite stanje vtičnice MariaDB. Ta konfiguracija je nevarna in izpostavlja storitev zunanjim omrežnim napadom.

# lsof -i4 -i6
# sockstat -4 -6

17. Če ne potrebujete oddaljenega dostopa do MariaDB, poskrbite, da bo demon MariaDB poslušal samo localhost, tako da izdate spodnji ukaz. Nato znova zaženite storitev MariaDB, da uporabite spremembe.

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

18. Ponovno zaženite ukaz lsof ali sockstat, da prikažete omrežno vtičnico MariaDB. Vtičnica bi se morala zdaj povezati in poslušati localhost, kot je prikazano na spodnji sliki.

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

19. Za preizkus povezljivosti zbirke podatkov MariaDB s konzole izdajte naslednji ukaz. V poziv vnesite korensko geslo MySQL in na zaslonu konzole se mora prikazati seznam privzetih baz podatkov, kot je prikazano na spodnji sliki.

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

To je vse! Uspešno ste namestili spletni strežnik Apache z bazo podatkov MariaDB in tolmačem PHP v FreeBSD. Zdaj lahko hitro začnete z uvajanjem spletnega mesta WordPress.

V naslednji vadnici bomo razpravljali o nekaterih naprednih temah FPBAMP, na primer o tem, kako omogočiti in ustvariti navidezne gostitelje Apache, omogočiti modul za prepisovanje, ki ga zahteva datoteka .htaccess, da pravilno deluje in kako zaščititi povezave Apache s samopodpisanim potrdilom ali brezplačnim Potrdilo, ki ga ponuja subjekt Let's Encrypt.