Hoe Nginx 1.15, MariaDB 10 en PHP 7 op CentOS 7 te installeren
In dit artikel leggen we uit hoe je een LEMP stack installeert (Linux, Nginx, MariaDB, PHP) samen met PHP-FPM op RHEL/CentOS 7/6 en Fedora 26-29 servers met behulp van het yum- en dnf-pakket manager.
Tijdens het proces zullen we Epel, Remi, Nginx en MariaDB repository's installeren en inschakelen om dit te kunnen doen installeer de nieuwste versies van deze pakketten.
Lees ook: Installeer Apache, MySQL 8 of MariaDB 10 en PHP 7 op CentOS 7
Stap 1: EPEL en Remi Repository installeren
EPEL (Extra pakketten voor Enterprise Linux) is een op de gemeenschap gebaseerde opslagplaats die add-on-softwarepakketten biedt voor op RHEL gebaseerde Linux-distributies.
Remi is een opslagplaats waar je de nieuwste versies van de PHP-stack (volledig uitgerust) kunt vinden voor installatie in de Fedora- en Enterprise Linux-distributies.
Op RHEL/CentOS 7
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms
Op RHEL/CentOS 6
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms
Op Fedora 24-29
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
Stap 2: Nginx- en MariaDB-repository's installeren
De Nginx-repository is alleen nodig in RHEL- en CentOS-distributies. Maak een bestand met de naam /etc/yum.repos.d/nginx.repo en voeg de volgende regels eraan toe.
Voor RHEL 7/6:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1
Voor CentOS 7/6:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Om de MariaDB repository in te schakelen, maakt u een bestand met de naam /etc/yum.repos.d/mariadb.repo met de volgende inhoud:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Stap 4: Ngnix en MariaDB installeren
Nginx (Engine X) is een open source, robuuste, lichtgewicht en krachtige webserver, een reverse proxy-server en ook een mail-proxyserver voor HTTP-, SMTP-, POP3- en IMAP-protocollen. Ga voor meer informatie naar http://wiki.nginx.org/Overview.
MariaDB is een afsplitsing van het bekende MySQL, een van 's werelds populairste Relationele Database Management Systemen (RDBMS). Het is volledig ontwikkeld door de gemeenschap en is als zodanig bedoeld om FOSS en compatibel met de GPL te blijven.
Om Ngnix en MariaDB te installeren, voert u de volgende opdrachten uit.
----------- Installing on RHEL/CentOS 7/6 -----------
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
----------- Installing on Fedora -----------
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
Stap 3: PHP installeren met Remi Repository
PHP (Hypertext Preprocessor) is een gratis en open source scripttaal op de server die het meest geschikt is voor webontwikkeling. Het kan worden gebruikt om dynamische webpagina's voor een website te maken en wordt het vaakst aangetroffen op *nix-servers. Een van de voordelen van PHP is dat het eenvoudig uitbreidbaar is door het gebruik van een grote verscheidenheid aan modules.
Om PHP te installeren, moet je eerst de Remi repository inschakelen door yum-utils
te installeren, een verzameling nuttige programma's voor het beheren van yum-repository's en -pakketten.
yum install yum-utils
Eenmaal geïnstalleerd, kunt u yum-config-manager van yum-utils
gebruiken om de Remi-repository in te schakelen als de standaardrepository voor het installeren van verschillende PHP-versies, zoals weergegeven.
Om bijvoorbeeld de PHP 7.x versie te installeren, gebruikt u de volgende opdracht.
------------- On CentOS & RHEL -------------
yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3]
------------- On Fedora -------------
dnf --enablerepo=remi install php70 [Install PHP 7.0]
dnf --enablerepo=remi install php71 [Install PHP 7.1]
dnf --enablerepo=remi install php72 [Install PHP 7.2]
dnf --enablerepo=remi install php73 [Install PHP 7.3]
Vervolgens gaan we al deze volgende PHP-modules installeren.
------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
Stap 6: Apache-service stoppen en uitschakelen
Standaard luisteren Apache en Nginx naar dezelfde poort (TCP 80). Om die reden moet u, als Apache op uw server is geïnstalleerd, het stoppen en uitschakelen/maskeren (een sterkere versie van uitschakelen die de service koppelt aan /dev/null) om Nginx te kunnen gebruiken , of u kunt het verwijderen als u het niet meer wilt gebruiken.
systemctl stop httpd
systemctl disable httpd
or
systemctl mask httpd
Stap 7: Nginx, MariaDB en PHP-FPM starten/stoppen
----------- Enable Nginx, MariaDB and PHP-FPM on Boot -----------
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
----------- Start Nginx, MariaDB and PHP-FPM -----------
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
Stap 8: Nginx en PHP-FPM configureren
Laten we nu een directorystructuur voor uw website maken (een virtuele host, of serverblok zoals dit in Nginx wordt genoemd) onder /srv/www/. In dit voorbeeld gebruiken we linux-console.net
, maar u kunt desgewenst een ander domein en een andere hoofdmap kiezen.
mkdir -p /srv/www/tecmint/public_html
mkdir /srv/www/tecmint/logs
chown -R nginx:nginx /srv/www/tecmint
Stap 9: Nginx virtuele hostmappen configureren
Zoals u weet, is de mogelijkheid om meerdere sites vanaf dezelfde machine te runnen een van de onderscheidende kenmerken van grote webservers. Laten we nu verder gaan met het maken van de mappen om onze serverblokken (in Apache bekend als virtuele hosts) op te slaan onder /etc/nginx.
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
De volgende coderegel, die moet worden ingevoegd voordat het http-blok in /etc/nginx/nginx.conf wordt gesloten, zorgt ervoor dat configuratiebestanden binnen de /etc/nginx/sites-enabled map zal in aanmerking worden genomen wanneer Nginx actief is:
## Load virtual host conf files. ##
include /etc/nginx/sites-enabled/*;
Om het serverblok voor linux-console.net
te maken, voegt u de volgende coderegels toe aan /etc/nginx/sites-available/tecmint (dit bestand wordt aangemaakt wanneer u het volledige pad om de gewenste teksteditor te starten). Dit is een standaard configuratiebestand voor een virtuele host.
server {
listen 80 default;
server_name tecmint;
access_log /srv/www/tecmint/logs/access.log;
error_log /srv/www/tecmint/logs/error.log;
root /srv/www/tecmint/public_html;
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Het proces van het “activeren” van een virtuele host bestaat uit het creëren van een symbolische link van de definitie van de tecmint
virtuele host naar /etc/nginx/sites-enabled.
ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
Om de wijzigingen die we hebben aangebracht daadwerkelijk toe te passen, moeten we nu Nginx opnieuw opstarten. Het is soms handig om de configuratiebestanden te controleren op syntaxisfouten voordat u dit doet:
nginx -t
systemctl restart nginx
systemctl status nginx
Om toegang te krijgen tot uw nieuw aangemaakte virtuele host, moet u de volgende regel toevoegen aan /etc/hosts als basismethode voor het omzetten van domeinnamen.
192.168.0.18 linux-console.net linux-console.net
Stap 10: Nginx, MySQL, PHP en PHP-FPM testen
Laten we vasthouden aan de klassieke manier om PHP te testen. Maak een bestand met de naam test.php
onder /srv/www/tecmint/public_html/ en voeg de volgende regels code eraan toe.
De functie phpinfo()
toont veel informatie over de huidige PHP-installatie:
<?php
phpinfo();
?>
Ga nu met uw webbrowser naar http://tecmint/test.php
en controleer de aanwezigheid van de geïnstalleerde modules en aanvullende software:
Gefeliciteerd! Je hebt nu een werkende installatie van een LEMP stapel. Mocht er iets niet naar wens zijn verlopen, neem dan gerust contact met ons op via onderstaand formulier. Vragen en suggesties zijn ook welkom.