Zoeken op website

Hoe Apache, MariaDB en PHP (FAMP) Stack op FreeBSD te installeren


Deze handleiding beschrijft hoe u FBAMP installeert en configureert in het FreeBSD-besturingssysteem, dat vergelijkbaar is met een LAMP-stack op Linux. FBAMP is een acroniem dat staat voor een verzameling software gebaseerd op FreeBSD OS, de Apache HTTP-server, de meest populaire open-source webserver op internet, MariaDB< relationeel databasebeheersysteem (RDBMS), een afsplitsing van de MySQL database-engine, en PHP serverzijde.

Vereisten

  1. Een nieuwe installatie van FreeBSD
  2. FreeBSD initiële configuraties
  3. Directe consoletoegang of SSH in het geval van een externe verbinding met FreeBSD.
  4. Een statisch IP-adres geconfigureerd op een netwerkinterface.

Stap 1: Installeer Apache op FreeBSD

1. De eerste service die we installeren is de Apache HTTP-server. Standaard biedt FreeBSD meerdere versies met verschillende runtime-werkmodules voor de Apache-webserver.

De versies zijn vooraf gecompileerd in een binair pakket en worden geleverd door FreeBSD PORTS repository's. Om alle binaire bestanden van Apache-pakketten weer te geven die door PORTS worden geleverd, geeft u de volgende opdracht.

ls /usr/ports/www/ | grep apache

U kunt ook zoeken naar beschikbare, vooraf compatibele Apache-pakketten op FreeBSD door het onderstaande commando te geven.

pkg search apache2

2. Installeer vervolgens de nieuwste versie van de Apache HTTP-server met alle vereiste modules door de volgende opdracht te geven.

pkg install apache24

3. Nadat de Apache-webserver op het systeem is geïnstalleerd, voert u het volgende commando uit om de daemon voor het hele systeem in FreeBSD in te schakelen.

sysrc apache24_enable="yes"

Een alternatieve methode om de Apache-daemon in te schakelen is het handmatig bewerken en toevoegen van de regel apache24_enable="yes" in het bestand /etc/rc.conf, zoals geïllustreerd in de onderstaande schermafbeelding.

4. Ten slotte, om te testen of de webserver goed werkt, start u de Apache-daemon door de onderstaande opdracht uit te voeren en bezoekt u de standaardwebpagina door een browser naar het IP-adres van uw server of FQDN () te wijzen http://IP-orFQDN) zoals weergegeven in de onderstaande schermafbeelding.

service apache24 start

De standaard webroot-map van de Apache-webserver in FreeBSD 11.x bevindt zich in het systeempad /usr/local/www/apache24/data/. Daar vindt u een klein index.html bestand dat u naar wens kunt bewerken.

Stap 2: Installeer PHP op FreeBSD

5. FreeBSD 11.x biedt meerdere versies van PHP geïnterpreteerde taal aan de serverzijde, verpakt in vooraf compatibele binaire bestanden. Om een lijst te krijgen van alle beschikbare PHP-versiepakketten die door FreeBSD Ports-repository's worden aangeboden, geeft u het volgende commando op.

ls /usr/ports/lang/ | grep php

Een alternatieve methode om naar alle beschikbare FreeBSD PHP pakketversies te zoeken is door de onderstaande opdracht uit te voeren.

pkg search -o php

6. Om te zoeken naar alle beschikbare binaire bestanden die door FreeBSD worden geleverd voor een specifieke PHP-versie (momenteel 5 of 7 versies), voert u de onderstaande opdrachten uit. Gebruik minder opdrachten om de uitvoer te beperken en er doorheen te navigeren.

pkg search php5 |less
pkg search php7

7. Om specifieker te zijn over welke modules een aangepaste PHP-versie biedt, voert u de volgende opdracht uit, zoals hieronder beschreven, waarin alle beschikbare modules voor de PHP 7.1-versie worden weergegeven.

pkg search php71

8. In deze handleiding installeren we de PHP 7.1 release voor onze FBAMP stack. Geef de volgende opdracht om PHP te installeren met enkele van de belangrijkste modules die vereist zijn voor een typische CMS-installatie.

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

9. Vervolgens moeten we het php.conf configuratiebestand voor de Apache-webserver maken in /usr/local/etc/apache24/Includes/ systeempad met de volgende inhoud.

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

Voeg de volgende regels toe aan het php.conf bestand.

<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. Om te testen of de PHP-gateway werkt zoals verwacht met de Apache-webserver, maakt u een PHP info.php-bestand in /usr/local/www/ apache24/data/system pad, wat het standaard hoofdpad van het webdocument is van de Apache-webserver.

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

Start de Apache-daemon opnieuw om de wijzigingen toe te passen.

service apache24 restart

Ga vervolgens naar de volgende URI in een browser om het PHP-overzicht te bekijken.

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

11. Om het PHP ini-configuratiebestand voor productie te activeren, voert u de onderstaande opdrachten uit. U kunt het productiebestand php.ini aanpassen om diverse PHP-instellingen in uw FBAMP-stack te wijzigen.

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

Stap 3: Installeer MariaDB op FreeBSD

12. Het laatste ontbrekende onderdeel voor onze FBAMP-stack is de MySQL-databaseserver. FreeBSD 11.x biedt meer dan 1000 pakketten voor diverse databases.

Om weer te geven welke componenten beschikbaar zijn voor MariaDB- of MySQL-databases, geeft u de volgende opdrachten. In deze handleiding installeren we de MariaDB-database via MySQL (dat nu eigendom is van en actief wordt ontwikkeld door Oracle).

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

13. In deze handleiding installeren we de nieuwste versie van de MariaDB-databaseserver in FreeBSD, die momenteel wordt weergegeven door de binaire pakketrelease mariadb102.

Voer de volgende opdracht uit om de MariaDB-server en -client en de vereiste PHP 7.1-module te installeren die nodig is om toegang te krijgen tot de database via de Apache-servergateway.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Schakel vervolgens de MariaDB-server in het hele systeem in en start de database-daemon door de volgende opdrachten uit te voeren.

sysrc mysql_enable="yes" 
service mysql-server start

15. Om de database te beveiligen, voert u mysql_secure_installation scrip uit. Gebruik het onderstaande scriptuitvoerfragment om MariaDB te versterken.

/usr/local/bin/mysql_secure_installation
Voorbeelduitvoer

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. Standaard luistert de MariaDB-daemon naar netwerkverbindingen buiten localhost op poort 3306/TCP. Voer de opdracht netstat, lsof of sockstat uit om de MariaDB-socketstatus op te halen. Deze configuratie is gevaarlijk en stelt de service bloot aan netwerkaanvallen van buitenaf.

lsof -i4 -i6
sockstat -4 -6

17. Als je geen externe toegang tot MariaDB nodig hebt, zorg er dan voor dat de MariaDB-daemon alleen naar localhost luistert, door de onderstaande opdracht te geven. Start vervolgens de MariaDB-service opnieuw om de wijzigingen toe te passen.

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

18. Voer opnieuw de opdracht netstat, lsof of sockstat uit om de MariaDB-netwerksocket weer te geven. De socket zou nu moeten binden en luisteren op localhost, zoals geïllustreerd in de onderstaande afbeelding.

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

19. Om de MariaDB-databaseconnectiviteit vanaf de console te testen, geeft u de volgende opdracht op. Voer het MySQL-rootwachtwoord in als prompt en een lijst met standaarddatabases zou op uw consolescherm moeten worden weergegeven, zoals geïllustreerd in de onderstaande afbeelding.

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

Dat is alles! U hebt met succes de Apache-webserver met MariaDB-database en PHP-interpreter in FreeBSD geïnstalleerd. U kunt nu in een mum van tijd beginnen met het implementeren van een WordPress-website.

In de volgende tutorial bespreken we enkele geavanceerde FPBAMP-onderwerpen, zoals het inschakelen en aanmaken van virtuele Apache-hosts, het inschakelen van de herschrijfmodule die vereist is voor het .htaccess-bestand om correct te functioneren en hoe u Apache-verbindingen kunt beveiligen met behulp van een Zelfondertekend certificaat of een gratis certificaat aangeboden door de Let's Encrypt-entiteit.