Zoeken op website

Hoe Nginx, MariaDB en PHP (FEMP) Stack op FreeBSD te installeren


Deze tutorial zal u begeleiden bij het installeren en configureren van FBEMP in de nieuwste versie van FreeBSD 11.x. FBEMP is een acroniem dat de volgende verzameling software beschrijft:

FreeBSD 11.1 Unix-achtige distributie, Nginx-webserver, MariaDB relationeel databasebeheersysteem (een gemeenschapsvork van MySQL) en dynamische PHP-programmeertaal die op de server draait.

Vereisten

  1. Installatie van FreeBSD 11.x
  2. 10 dingen die u kunt doen na de installatie van FreeBSD

Stap 1: Installeer Nginx Web Server op FreeBSD

1. De eerste service die we installeren voor onze FBEMP stapel in FreeBSD is de webserver, vertegenwoordigd door Nginx > programmatuur.

Nginx webserver heeft meer vooraf compatibele pakketten beschikbaar in FreeBSD 11.x PORTS. Om een lijst met Nginx binaire bestanden uit Ports repository's te krijgen, geeft u de volgende opdrachten op uw serverterminal.

ls /usr/ports/www/ | grep nginx
pkg search -o nginx

2. In deze specifieke configuratie installeren we de hoofdpakketversie van Nginx door de onderstaande opdracht uit te voeren. Het pakketbeheer van pkg zal u vragen of u wilt doorgaan met het installeren van het nginx-pakket. Antwoord met ja (y in de opdrachtregel) om het installatieproces te starten.

pkg install nginx

3. Nadat het Nginx-webserverpakket op uw systeem is geïnstalleerd, voert u de volgende opdrachten uit om de daemon voor het hele systeem in te schakelen en de service op uw systeem te starten.

sysrc nginx_enable="yes"
service nginx start

4. Gebruik vervolgens de opdracht sockstat om de netwerksockets van de Nginx-service te verifiëren, als deze gebonden zijn aan de 80/TCP-poort, door het onderstaande uit te voeren commando. De uitvoer van de opdracht Socksstat wordt doorgestuurd via het grep-hulpprogramma om de geretourneerde resultaten alleen te beperken tot de nginx-tekenreeks.

sockstat -4 | grep nginx

5. Open ten slotte een browser op een desktopcomputer in uw netwerk en bezoek de standaardwebpagina van Nginx via het HTTP-protocol. Schrijf de FQDN van uw machine of uw domeinnaam of het IP-adres van uw server in de URL van de browser die is opgeslagen om de standaardwebpagina van de Nginx-webserver op te vragen. Het bericht “Welkom bij nginx! ” zou in uw browser moeten worden weergegeven, zoals geïllustreerd in de onderstaande schermafbeelding.

http://yourdomain.com
http://your_server_IP
http://your_machine_FQDN

6. De standaard weboot-map voor Nginx-webinhoud bevindt zich in het /usr/local/www/nginx/ absolute systeempad. Op deze locatie moet u webinhoudbestanden, zoals .html- of .php-bestanden, voor uw website maken, kopiëren of installeren.

Om deze locatie te wijzigen, bewerkt u het hoofdconfiguratiebestand van nginx en wijzigt u de root-richtlijn zodat deze uw nieuwe webroot-pad weergeeft.

nano /usr/local/etc/nginx/nginx.conf

Zoek en update hier de volgende regel om uw nieuwe webroot-pad weer te geven:

root	/path/to/new/webroot;

Stap 2: Installeer PHP op FreeBSD

7. In tegenstelling tot de Apache HTTP-server heeft Nginx niet de mogelijkheid om PHP-code native te verwerken. In ruil daarvoor geeft de Nginx-webserver PHP-verzoeken door aan een PHP-interpreter, zoals de php-fpm FastCGI daemon, die de code inspecteert en uitvoert. De resulterende code wordt vervolgens teruggestuurd naar Nginx, die de code opnieuw samenstelt in het gevraagde HTML-formaat en de code verder naar de webbrowser van de bezoeker stuurt.

FreeBSD 11.x Ports-opslagplaatsen bieden meerdere binaire versies voor de PHP-programmeertaal, zoals PHP 5.6, PHP 7.0 en PHP 7.1< releases. Om alle beschikbare vooraf gecompileerde PHP-versies in FreeBSD 11.x weer te geven, voert u de onderstaande opdrachten uit.

pkg search -o php
ls /usr/ports/lang/ | grep php

8. U kunt ervoor kiezen om de versie van PHP te installeren die u het meest geschikt acht voor de webapplicatie die u op uw systeem gebruikt. In deze handleiding installeren we echter de nieuwste versie van PHP.

Om PHP 7.1 release en enkele belangrijke PHP-modules die vereist zijn voor diverse webapplicaties te installeren, voert u de volgende opdracht uit.

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

9. Nadat u PHP-pakketten op uw systeem heeft geïnstalleerd, opent u het PHP-FPM configuratiebestand voor Nginx en past u de gebruikers- en groepswaarden aan zodat deze overeenkomen met de waarde op de Nginx-runtime gebruiker, namelijk www. Maak eerst een back-up van het bestand met de onderstaande opdracht.

cp /usr/local/etc/php-fpm.d/www.conf{,.backup}

Open vervolgens het bestand en werk de volgende regels bij, zoals weergegeven in het onderstaande voorbeeld.

user = www
group = www

10. Maak ook een PHP-configuratiebestand dat voor productie wordt gebruikt door de onderstaande opdracht te geven. In dit bestand kunt u aangepaste wijzigingen aanbrengen die tijdens runtime op de PHP-interpreter worden toegepast.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Wijzig bijvoorbeeld de date.timezone-instelling voor de PHP-interpreter om de fysieke locatie van uw machine bij te werken, zoals weergegeven in het onderstaande voorbeeld. De PHP-tijdzonelijst kunt u hier vinden: http://php.net/manual/en/timezones.php.

vi /usr/local/etc/php.ini

Voeg de volgende tijdzone toe (stel de tijdzone in volgens uw land).

date.timezone = Europe/London

Je kunt ook andere PHP-variabelen aanpassen, zoals de maximale bestandsgrootte van het geüploade bestand, die kan worden vergroot door de onderstaande waarden te wijzigen:

upload_max_filesize = 10M
post_max_size = 10M

11. Nadat u de aangepaste instellingen voor PHP heeft gemaakt, schakelt u de PHP-FPM daemon in en start u deze om de nieuwe configuraties toe te passen door de onderstaande opdrachten te geven.

sysrc php_fpm_enable=yes
service php-fpm start

12. Standaard bindt de PHP-FPM daemon in FreeBSD aan een lokale netwerksocket op poort 9000/TCP. Om PHP-FPM netwerksockets weer te geven, voert u de volgende opdracht uit.

sockstat -4 -6| grep php-fpm

13. Om ervoor te zorgen dat de Nginx-webserver de PHP-scripts doorgeeft aan de FastCGI gateway-server, die luistert op 127.0.0.1:9000 socket, open het hoofdconfiguratiebestand van Nginx en voeg het volgende codeblok toe, zoals geïllustreerd in het onderstaande voorbeeld.

vi /usr/local/etc/nginx/nginx.conf

FastCGI-codeblok voor nginx:

 location ~ \.php$ {
        root	/usr/local/www/nginx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;    
        include        fastcgi_params;
        	}

14. Om de huidige PHP-informatie voor uw server te bekijken, maakt u een info.php-bestand in het Nginx-webootpad door de volgende opdracht te geven.

echo "<?php phpinfo(); ?>" | tee /usr/local/www/nginx/info.php

15. Test vervolgens de Nginx-daemon en start deze opnieuw om de PHP FastCGI-instellingen toe te passen en bezoek de info.php-pagina in een browser.

nginx -t # Test nginx configuration file for syntax errors
service nginx restart

Vervang het IP-adres of de domeinnaam in de onderstaande links dienovereenkomstig. De PHP-infopagina zou informatie moeten weergeven zoals geïllustreerd in de onderstaande schermafbeelding.

http://yourdomain.com/info.php
http://server_IP-or-FQDN/info.php

Stap 3: Installeer MariaDB op FreeBSD

16. Het laatste onderdeel dat ontbreekt in uw FEMP stapel in de database. MariaDB/MySQL is een van de meest geassocieerde open source RDBMS-software met Nginx-webserver die wordt gebruikt voor het implementeren van dynamische websites.

Eigenlijk is MariaDB/MySQL een van de meest gebruikte relationele databases ter wereld. Als u door FreeBSD Ports zoekt, kunt u meerdere releases van MariaDB/MySQL vinden.

In deze handleiding installeren we de MariaDB-database, een community-vork van de MySQL-database. Om naar beschikbare versies van MariaDB te zoeken, geeft u de volgende opdrachten in de terminal.

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

17. Voer de volgende opdracht uit om de nieuwste versie van de MariaDB-databaseserver te installeren. U moet ook de PHP-relationele databasestuurprogrammamodule installeren die door PHP-scripts wordt gebruikt om verbinding te maken met MySQL.

pkg install mariadb102-server php71-mysqli

18. Nadat de database is geïnstalleerd, schakelt u de MySQL-daemon in en start u de databaseservice door de volgende opdrachten uit te voeren.

sysrc mysql_enable="YES" 
service mysql-server start

19. Zorg er ook voor dat u de PHP-FPM daemon opnieuw start om de MySQL-stuurprogramma-extensie te laden.

service php-fpm restart
20. On the next step, secure MariaDB database by launching mysql_secure_installation script. Use the below sample of the installation script in order to answer the questions. Basically, say yes (y) for all asked questions to secure the database and type a strong password for MySQL root user.
/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!

21. Om de MariaDB-databaseverbinding vanaf de console te testen, voert u de onderstaande opdracht uit.

mysql -u root -p -e "show status like ‘Connections’"

22. Om MariaDB verder te beveiligen, die standaard luistert naar inkomende netwerkverbindingen op 0.0.0.0:3306/TCP socket, geeft u het onderstaande commando uit om de service te forceren om de loopback-interface te binden en externe toegang volledig te weigeren. Start daarna de MySQL-service opnieuw op om de nieuwe configuratie toe te passen.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart

Controleer of de localhost-binding met succes is toegepast door de opdracht netstat uit te voeren, zoals weergegeven in het onderstaande voorbeeld.

netstat -an -p tcp

Dat is alles! U hebt met succes de Nginx-webserver, de MariaDB-relationele database en de PHP-server-side programmeertaal in FreeBSD geïnstalleerd. U kunt nu beginnen met het bouwen van dynamische webpagina's om webinhoud aan uw bezoekers aan te bieden.