Hvordan installere Apache, MariaDB og PHP (FAMP) Stack på FreeBSD


Denne veiledningen vil beskrive hvordan du installerer og konfigurerer FBAMP i FreeBSD-operativsystemet, som ligner på en LAMP-stabel på Linux. FBAMP er et akronym som står for en samling programvare basert på FreeBSD OS, Apache HTTP-serveren, den mest populære åpen kildekode-nettserveren på internett, MariaDB< relasjonsdatabaseadministrasjonssystem (RDBMS), en fork av MySQL-databasemotoren og PHP-serversiden.

Krav

  1. En ny installasjon av FreeBSD
  2. FreeBSD innledende konfigurasjoner
  3. Direkte konsolltilgang eller SSH i tilfelle en ekstern tilkobling til FreeBSD.
  4. En statisk IP-adresse konfigurert på et nettverksgrensesnitt.

Trinn 1: Installer Apache på FreeBSD

1. Den første tjenesten vi installerer er Apache HTTP-serveren. Som standard tilbyr FreeBSD flere versjoner med forskjellige kjøretidsarbeidsmoduler for Apache-nettserveren.

Versjonene er forhåndskompilert til en binær pakke og levert av FreeBSD PORTS-lagre. For å vise alle Apache-pakkers binærfiler levert av PORTS, utfør følgende kommando.

ls /usr/ports/www/ | grep apache

Du kan også søke etter tilgjengelige forhåndskompatible Apache-pakker på FreeBSD ved å gi kommandoen nedenfor.

pkg search apache2

2. Installer deretter den nyeste versjonen av Apache HTTP-serveren med alle nødvendige moduler ved å utstede følgende kommando.

pkg install apache24

3. Etter at Apache-nettserveren er installert på systemet, utfør følgende kommando for å aktivere demonen for hele systemet i FreeBSD.

sysrc apache24_enable="yes"

En alternativ metode for å aktivere Apache-demonen vil være å manuelt redigere og legge til linjen apache24_enable="yes" i /etc/rc.conf-filen som illustrert i skjermbildet nedenfor.

4. Til slutt, for å teste om webserveren fungerer som den skal, start Apache daemon ved å gi kommandoen nedenfor og besøk standardwebsiden ved å peke en nettleser til serverens IP-adresse til FQDN ( http://IP-orFQDN) som vist i skjermbildet nedenfor.

service apache24 start

Standard webroot-katalogen til Apache-nettserveren i FreeBSD 11.x er plassert i /usr/local/www/apache24/data/ systembanen. Der finner du en liten index.html fil du kan redigere som helst.

Trinn 2: Installer PHP på FreeBSD

5. FreeBSD 11.x tilbyr flere versjoner av PHP-tolket serversidespråk pakket i forhåndskompatible binærfiler. For å få en liste over alle tilgjengelige PHP-versjonspakker levert av FreeBSD Ports repositories, utfør følgende kommando.

ls /usr/ports/lang/ | grep php

En alternativ metode for å søke etter alle tilgjengelige FreeBSD PHP-pakkeversjoner er ved å kjøre kommandoen nedenfor.

pkg search -o php

6. For å søke etter alle tilgjengelige binærfiler levert av FreeBSD for en spesifikk PHP-versjon (5 eller 7 versjoner for øyeblikket), kjør kommandoene nedenfor. Bruk mindre kommando for å begrense og navigere gjennom utdataene.

pkg search php5 |less
pkg search php7

7. For å være mer spesifikk på hvilke moduler en tilpasset PHP-versjon tilbyr, kjør følgende kommando som beskrevet nedenfor, som viser alle tilgjengelige moduler for PHP 7.1-versjonen.

pkg search php71

8. I denne veiledningen installerer vi PHP 7.1-utgivelsen for FBAMP-stabelen vår. Utfør følgende kommando for å installere PHP med noen av de viktigste modulene som kreves for en typisk CMS-installasjon.

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

9. Deretter må vi opprette php.conf-konfigurasjonsfilen for Apache-nettserveren i /usr/local/etc/apache24/Includes/ systembane med følgende innhold.

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

Legg til følgende linjer i filen 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. For å teste om PHP-gatewayen fungerer som forventet med Apache-nettserveren, lag en PHP info.php-fil i /usr/local/www/ apache24/data/system-bane, som er standard webdokumentrotbane til Apache-nettserveren.

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

Start Apache-demonen på nytt for å bruke endringer.

service apache24 restart

Deretter besøker du følgende URI i en nettleser for å se PHP-sammendrag.

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

11. For å aktivere PHP ini-konfigurasjonsfilen for produksjon, utfør kommandoene nedenfor. Du kan endre produksjonsfilen php.ini for å endre forskjellige PHP-innstillinger i FBAMP-stakken.

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

Trinn 3: Installer MariaDB på FreeBSD

12. Den siste manglende komponenten for FBAMP-stabelen vår er MySQL-databasetjeneren. FreeBSD 11.x tilbyr mer enn 1000 pakker for ulike databaser.

For å vise hvilke komponenter som er tilgjengelige for MariaDB- eller MySQL-databaser, utfør følgende kommandoer. I denne guiden installerer vi MariaDB-databasen over MySQL (som nå eies og utvikles aktivt av Oracle).

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

13. I denne veiledningen vil vi installere den nyeste versjonen av MariaDB-databasetjeneren i FreeBSD, som for øyeblikket er representert ved mariadb102 binær pakkeutgivelse.

Kjør følgende kommando for å installere MariaDB-server og -klient og den nødvendige PHP 7.1-modulen som trengs for å få tilgang til databasen via Apache-servergateway.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Aktiver deretter MariaDB-serveren for hele systemet og start databasedemonen ved å kjøre følgende kommandoer.

sysrc mysql_enable="yes" 
service mysql-server start

15. For å sikre databasen, kjør mysql_secure_installation scrip. Bruk skriptutdraget nedenfor for å herde MariaDB.

/usr/local/bin/mysql_secure_installation
Eksempelutgang

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. Som standard lytter MariaDB-demonen etter nettverkstilkoblinger utenfor localhost på port 3306/TCP. Kjør kommandoen netstat, lsof eller sockstat for å få MariaDB-socket-tilstand. Denne konfigurasjonen er farlig og utsetter tjenesten for angrep fra eksterne nettverk.

lsof -i4 -i6
sockstat -4 -6

17. Hvis du ikke trenger ekstern tilgang til MariaDB, sørg for at MariaDB-demonen bare lytter til localhost, ved å gi kommandoen nedenfor. Start deretter MariaDB-tjenesten på nytt for å bruke endringer.

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

18. Igjen, kjør kommandoen netstat, lsof eller sockstat for å vise MariaDB-nettverkskontakten. Socket skal binde og lytte på localhost nå, som illustrert i bildet nedenfor.

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

19. For å teste MariaDB-databasetilkoblingen fra konsollen, utfør følgende kommando. Skriv inn MySQL root-passordet på en ledetekst, og en liste over standarddatabaser skal vises på konsollskjermen som illustrert i bildet nedenfor.

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

Det er alt! Du har installert Apache-webserver med MariaDB-database og PHP-tolk i FreeBSD. Du kan nå begynne å distribuere et WordPress-nettsted på kort tid.

I den neste opplæringen vil vi diskutere noen avanserte FPBAMP-emner, for eksempel hvordan du aktiverer og oppretter virtuelle Apache-verter, aktiverer omskrivingsmodulen som kreves av .htaccess-filen for å fungere ordentlig og hvordan du sikrer Apache-tilkoblinger ved hjelp av en Selvsignert sertifikat eller et gratis sertifikat som tilbys av Let's Encrypt-enheten.