V tomto článku vysvětlíme nezbytné kroky k instalaci a konfiguraci Apache s PHP-FPM na CentOS 8. Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s sudo
privilegia. Všechny příkazy v tomto tutoriálu by měly být spouštěny jako uživatel bez oprávnění root.
Předpoklad:
- Operační systém s CentOS 8
- Adresa IPv4 serveru s oprávněními superuživatele (přístup root)
- Gnome Terminal pro Linux Desktop
- Klient PuTTy SSH pro Windows nebo macOS
- Powershell pro Windows 10/11
- Znáte příkazy DNF
Nainstalujte Apache s PHP-FPM na CentOS 8
Krok 1. První příkaz aktualizuje seznamy balíčků, aby bylo zajištěno, že získáte nejnovější verzi a závislosti.
sudo dnf update
Krok 2. Nainstalujte Apache.
Apache je k dispozici ve výchozích úložištích CentOS, jste připraveni nainstalovat Apache:
sudo dnf install httpd httpd-tools mod_ssl
Po dokončení instalace povolte a spusťte službu Apache:
sudo systemctl enable httpd sudo systemctl start httpd
Můžete také zkontrolovat verzi svého webového serveru, abyste se ujistili, že byl nainstalován správně:
httpd -v
Během instalace Apache vytváří soubory služeb brány firewall s předdefinovanými pravidly pro povolení přístupu k portům HTTP (80) a HTTPS (443). Následující příkazy trvale otevřou potřebné porty:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
Krok 3. Nainstalujte PHP pomocí PHP-FPM.
Chcete-li nainstalovat PHP 7.4, můžete povolit úložiště Remi spuštěním následujícího příkazu:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Dále povolte příslušnou verzi:
sudo dnf module reset php sudo dnf module enable php:remi-7.4
Následující příkaz nainstaluje PHP-FPM a některé z nejběžnějších modulů PHP:
sudo dnf update sudo apt install php php-fpm php-gd php-mysqlnd
PHP používá FPM se instaluje jako závislost a používá se jako server FastCGI. Spusťte službu FPM a povolte její automatické spouštění při spouštění:
sudo systemctl enable --now php-fpm sudo systemctl start php-fpm
Krok 4. Nakonfigurujte PHP-FPM.
Začněme proces konfigurace. Nejprve upravte konfigurační soubor PHP-FPM pro Apache:
sudo nano /etc/php-fpm.d/www.conf
; listen = 127.0.0.1:9000 listen = /run/php-fpm/www.sock user = apache group = apache listen.allowed_clients = 127.0.0.1 listen.owner = apache listen.group = apache listen.mode = 0660 pm = dynamic
Restartujte službu php-fpm pomocí následujícího příkazu a můžete začít:
sudo systemctl restart php-fpm
Krok 5. Vytvořte Apache VirtualHost.
Nyní je čas nakonfigurovat Apache pro použití php-fpm pro zpracování souborů PHP. V tomto příkladu konfiguruji FPM pouze pro konkrétního virtuálního hostitele:
sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html ServerName example.com ServerAlias www.example.com # Proxy declaration <Proxy "unix:/run/php-fpm/www.sock|fcgi://php-fpm"> # we must declare a parameter in here (doesn't matter which) or # it'll not register the proxy ahead of time ProxySet disablereuse=off # Note: If you configure php-fpm to use the "pm = ondemand" #then use "ProxySet disablereuse=on" </Proxy> <FilesMatch \.php$> SetHandler proxy:fcgi://php-fpm </FilesMatch> ErrorLog logs/example.com-error.log CustomLog logs/example.com-access.log combined </VirtualHost>
Uložte konfigurační soubor virtuálního hostitele a znovu načtěte Apache, abyste použili změny:
sudo systemctl restart httpd
Krok 6. Otestujte nastavení.
Pro otestování prostředí vytvořte PHP skript s funkcí phpinfo(). Umístěte tento soubor do kořenového adresáře dokumentů na serveru. K tomu použijte níže uvedený příkaz:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Potom přejděte k souboru info.php pomocí IP adresy serveru (pro výchozí VirtualHost) pro vaši nakonfigurovanou doménu v Apache VirtualHost.
http://localhost/info.php
To je vše, co potřebujete k instalaci LAMP Stack na CentOS 8. Doufám, že vám tento rychlý tip pomůže. Pokud máte dotazy nebo návrhy, neváhejte zanechat komentář níže.