Sådan installeres Apache, MariaDB og PHP (FAMP) Stack på FreeBSD


Denne vejledning beskriver, hvordan du installerer og konfigurerer FBAMP i FreeBSD-operativsystemet, hvilket svarer til en LAMP-stak på Linux. FBAMP er et akronym, der står for en samling af software baseret på FreeBSD OS, Apache HTTP-server, den mest populære open source-webserver på internettet, MariaDB relationsdatabasesystem (RDBMS), en fork af MySQL-databasemotor og PHP-server -side.

Krav

  1. En ny installation af FreeBSD
  2. FreeBSD indledende konfigurationer
  3. Direkte konsoladgang eller SSH i tilfælde af en fjernforbindelse til FreeBSD.
  4. En statisk IP-adresse konfigureret på et netværksinterface.

Trin 1: Installer Apache på FreeBSD

1. Den første tjeneste, vi installerer, er Apache HTTP-server. Som standard tilbyder FreeBSD flere versioner med forskellige runtime-arbejdsmoduler til Apache-webserver.

Versionerne er præ-kompileret i en binær pakke og leveres af FreeBSD PORTS repositories. For at vise alle Apache-pakker, der leveres af PORTS, skal du udstede følgende kommando.

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

Du kan også søge efter tilgængelige forud opfyldte Apache-pakker på FreeBSD ved at udstede kommandoen nedenfor.

# pkg search apache2

2. Installer derefter den nyeste version af Apache HTTP-server med alle nødvendige moduler ved at udstede følgende kommando.

# pkg install apache24

3. Når Apache-webserveren er blevet installeret på systemet, skal du udstede følgende kommando for at aktivere daemon-systemet i FreeBSD.

# sysrc apache24_enable="yes"

En alternativ metode til at aktivere Apache-dæmonen ville være at manuelt redigere og tilføje linjen apache24_enable = "ja" i /etc/rc.conf-filen som illustreret i nedenstående skærmbillede.

4. Endelig, for at teste, om webserveren fungerer korrekt, skal du starte Apache-dæmonen ved at udstede nedenstående kommando og besøge standardwebsiden ved at pege en browser på din server IP-adresse på FQDN ( http:/IP-ellerFQDN ) som vist i nedenstående skærmbillede.

# service apache24 start

Standardwebroot-biblioteket for Apache-webserveren i FreeBSD 11.x er placeret i /usr/local/www/apache24/data/ systemstien. Der finder du en lille index.html-fil, som du helst kan redigere.

Trin 2: Installer PHP på FreeBSD

5. FreeBSD 11.x tilbyder flere versioner af PHP-tolket serversidesprog pakket i forud opfyldte binære filer. For at få en liste over alle tilgængelige PHP-version pakker leveret af FreeBSD Ports repositories, udsted følgende kommando.

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

En alternativ metode til at søge efter alle tilgængelige FreeBSD PHP-pakkeversioner er ved at køre nedenstående kommando.

# pkg search -o php

6. Kør nedenstående kommandoer for at søge efter alle tilgængelige binære filer leveret af FreeBSD til en bestemt PHP-version (i øjeblikket 5 eller 7 versioner). Brug mindre kommando til at indsnævre og navigere gennem output.

# pkg search php5 |less
# pkg search php7

7. For at være mere specifik på hvilke moduler en brugerdefineret PHP-version giver, skal du køre følgende kommando som beskrevet nedenfor, som viser alle tilgængelige moduler til PHP 7.1-version.

# pkg search php71

8. I denne vejledning installerer vi PHP 7.1-udgivelse til vores FBAMP-stak. Udsted følgende kommando for at installere PHP med nogle af de vigtigste moduler, der kræves til en typisk CMS-installation.

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

9. Dernæst er vi nødt til at oprette php.conf-konfigurationsfilen til Apache-webserveren i/usr/local/etc/apache24/Inkluderer/systemsti med følgende indhold.

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

Føj følgende linjer til php.conf-filen.

<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 at teste, om PHP-gateway fungerer som forventet med Apache-webserver, skal du oprette en PHP info.php-fil i/usr/local/www/apache24/data/systemsti, som er standardstien til webdokumentets rodsti til Apache Webserver.

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

Genstart Apache-dæmonen for at anvende ændringer.

# service apache24 restart

Dernæst skal du besøge følgende URI i en browser for at se PHP-oversigt.

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

11. For at aktivere PHP ini-konfigurationsfilen til produktionsproblemer, er nedenstående kommandoer. Du kan ændre php.ini-produktionsfilen for at ændre forskellige PHP-indstillinger i din FBAMP-stak.

# 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

Trin 3: Installer MariaDB på FreeBSD

12. Den sidste manglende komponent til vores FBAMP-stack er MySQL-databaseserver. FreeBSD 11.x tilbyder mere end 1000 pakker til forskellige databaser.

For at vise, hvilke komponenter der er tilgængelige til MariaDB- eller MySQL-databaser, skal du udstede følgende kommandoer. I denne vejledning installerer vi MariaDB-databasen over MySQL (som nu ejes og udvikles aktivt af 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 vejledning installerer vi den nyeste version af MariaDB-databaseserver i FreeBSD, som i øjeblikket er repræsenteret af mariadb102 binær pakkeudgivelse.

Kør følgende kommando for at installere MariaDB-serveren og klienten og det krævede PHP 7.1-modul, der er nødvendigt for at få adgang til databasen via Apache-servergateway.

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

14. Derefter skal du aktivere MariaDB-serveren i hele systemet og starte database-dæmonen ved at køre følgende kommandoer.

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

15. Kør mysql_secure_installation scrip for at sikre databasen. Brug nedenstående script output-uddrag for at hærde MariaDB.

# /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. Som standard lytter MariaDB-dæmonen til netværksforbindelser uden for localhost på port 3306/TCP. Kør kommandoen lsof eller sockstat for at få MariaDB-sokkeltilstand. Denne konfiguration er farlig og udsætter tjenesten for eksterne netværksangreb.

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

17. Hvis du ikke har brug for fjernadgang til MariaDB, skal du sørge for, at MariaDB-dæmonen kun lytter til localhost ved at udstede kommandoen nedenfor. Genstart derefter MariaDB-tjenesten for at anvende ændringer.

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

18. Kør igen lsof- eller sockstat-kommandoen for at vise MariaDB-netværksstik. Stikkontakten skal binde og lytte på localhost nu som illustreret i nedenstående billede.

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

19. Udfør følgende kommando for at teste MariaDB-databaseforbindelse fra konsol. Indtast MySQL-rodadgangskode i prompt, og en liste over standarddatabaser skal vises på din konsolskærm som vist i nedenstående billede.

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

Det er alt! Du har med succes installeret Apache-webserver med MariaDB-database og PHP-tolk i FreeBSD. Du kan nu begynde at implementere et WordPress-websted på ingen tid.

På den næste vejledning diskuterer vi nogle avancerede FPBAMP-emner, såsom hvordan man aktiverer og opretter Apache virtuelle værter, aktiver omskrivningsmodul, der kræves af .htaccess-filen, til at fungere korrekt, og hvordan man sikrer Apache-forbindelser ved hjælp af et selvsigneret certifikat eller et gratis Certifikat tilbydes af Let's Encrypt entity.