PHP je univerzální skriptovací jazyk. To je většinou populární pro vývoj webových aplikací. Může být použit k vývoji dynamických a interaktivních webových stránek. Patřil mezi první jazyky na straně serveru, které bylo možné vložit do HTML, což usnadnilo přidávání funkcí na webové stránky bez nutnosti volat externí soubory pro data. PHP patří mezi programovací jazyky, které se snadněji učí.
Je integrován s řadou oblíbených databází, včetně MySQL, PostgreSQL, Oracle, Sybase, Informix a Microsoft SQL Server. Mnoho populárních CMS a frameworků jako WordPress, Magento a Laravel je napsáno v PHP.
V době psaní tohoto článku zahrnují výchozí úložiště Ubuntu 20.04 verzi PHP 7.4.
Předpoklady
Chcete-li postupovat podle tohoto průvodce, ujistěte se, že máte následující:
- Aktualizovaný server Ubuntu 20.04, který je připojen k internetu
- Kořenový přístup k serveru nebo uživateli s přístupem sudo
- Měli byste být spokojeni s používáním terminálu Linux ke spouštění příkazů.
Kroky k instalaci a konfiguraci PHP v Ubuntu 20.04
- Ujistěte se, že je server aktuální
- Nainstalujte na server php 7.4
- Instalace Nginx
- Nakonfigurujte Nginx pro poskytování souboru php
1. Ujistěte se, že je server aktuální
Než budete pokračovat, ujistěte se, že je náš server aktualizován. Tyto příkazy použijte k 1. aktualizaci úložišť serveru, 2. aktualizaci serverových balíčků na nejnovější verze:
# Update repos
sudo apt update
# Upgrade packages
sudo apt -y upgrade
2. Nainstalujte na server php 7.4
Protože výchozí úložiště obsahují php verze 7.4, nainstalujme jej pomocí tohoto příkazu:
sudo apt install php -y
Nainstalovanou verzi potvrďte příkazem php -v
:
~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
V tomto nastavení máme v úmyslu poskytovat soubory php pomocí Nginx. Nginx nemá vestavěnou podporu pro zpracování souborů PHP. Ke zpracování souborů PHP použijeme PHP-FPM („fastCGI process manager“).
Nginx nebude fungovat, pokud je nainstalován a spuštěn Apache. Protože budeme používat Nginx, použijte tento příkaz k odstranění apache, pokud je nainstalován v našem systému:
$ sudo apt remove apache2 -y
Nyní nainstalujme php-fpm
pomocí tohoto příkazu:
sudo apt install php-fpm -y
Po dokončení instalace se služba FPM automaticky spustí. Služba je přidána do systemd jako php7.4-fpm
. Chcete-li zkontrolovat stav služby, spusťte:
$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 16:18:41 UTC; 3min 18s ago
Docs: man:php-fpm7.4(8)
Main PID: 56092 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4710)
Memory: 7.1M
CGroup: /system.slice/php7.4-fpm.service
├─56092 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
├─56113 php-fpm: pool www
└─56114 php-fpm: pool www
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
Měli byste vidět výstup jako výše.
3. Instalace Nginx
Nyní, když jsou v systému nainstalovány PHP a php-fpm, musíme nainstalovat nginx. Nginx nám umožní nastavit virtuálního hostitele, který můžeme použít k obsluze provozu z domény.
Nainstalujte nginx pomocí tohoto příkazu:
sudo apt install nginx -y
Po dokončení instalace se ve výchozím nastavení spustí Nginx. Zkontrolujte jeho stav a potvrďte, že funguje podle očekávání. Výstup byste měli vidět takto:
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
Docs: man:nginx(8)
Main PID: 56990 (nginx)
Tasks: 3 (limit: 4710)
Memory: 3.7M
CGroup: /system.slice/nginx.service
├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─56991 nginx: worker process
└─56992 nginx: worker process
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>
Chcete-li potvrdit, že Nginx skutečně běží a je dosažitelný, použijte tento příkaz:
curl http://server_ip/
Kde server_ip
je ip vašeho serveru. Pokud z nějakého důvodu neznáte veřejnou IP svého serveru, použijte toto ke kontrole:
curl -4 icanhazip.com
Měli byste vidět výchozí stránku Nginx.
4. Nakonfigurujte Nginx tak, aby obsluhoval soubor php
Nyní, když máme Nginx nastaven a spuštěn na našem serveru, udělejme, že bude sloužit souborům php. V tomto příkladu nakonfigurujeme Nginx tak, aby obsluhoval informační stránku php.
Abychom toho dosáhli, musíme v Nginx nastavit virtuálního hostitele obsluhujícího provoz pro konkrétní doménu (použijeme example.citizix.com
). Aby to fungovalo, musíte aktualizovat záznamy DNS pro tuto doménu ve vašem hostiteli DNS tak, aby měly A
záznamy ukazují na tuto doménu nebo subdoménu. Podrobnosti o tom, jak to udělat, najdete v dokumentaci poskytovatele DNS.
Pomocí příkazu dig:
potvrďte, že doména může být správně převedena na server❯ dig -t A example.citizix.com
; <<>> DiG 9.10.6 <<>> -t A example.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.citizix.com. IN A
;; ANSWER SECTION:
example.citizix.com. 300 IN A 172.67.197.11
;; Query time: 828 msec
;; SERVER: 192.168.157.227#53(192.168.157.227)
;; WHEN: Tue Sep 28 20:42:05 EAT 2021
;; MSG SIZE rcvd: 80
Nyní musíme provést tyto kroky, aby náš jednoduchý skript fungoval:
- Vytvořte adresář pro uložení našeho statického obsahu (budeme používat
/var/www/example.citizix.com
)sudo mkdir -p /var/www/example.citizix.com
- Zajistěte, aby byl vytvořený adresář přístupný uživateli Nginx
sudo chown -R www-data:www-data /var/www/example.citizix.com sudo chmod -R 755 /var/www/example.citizix.com
- Přidat indexový soubor
/var/www/example.citizix.com/index.php
s obsahem pro zobrazení informací o php do adresáře (/var/www/example.citizix.com
)
Upravit soubor:sudo vim /var/www/example.citizix.com/index.php
Přidejte tento obsah:
<?php phpinfo() ?>
Uložte a zavřete soubor.
- Vytvořte konfiguraci nginx ve výchozím adresáři nginx
/etc/nginx/conf.d
. 1. Vytvoříme soubor/etc/nginx/conf.d/example.citizix.com.conf
s požadovaným obsahem.sudo vim /etc/nginx/conf.d/example.citizix.com.conf
Přidejte tento obsah:
server {
listen 80;
server_name example.citizix.com;
root /var/www/example.citizix.com;
index index.php;
location ~ \.php$ {
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
Ověřte správnost konfigurace nginx pomocí tohoto příkazu:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nyní musíte restartovat nginx a php-fpm pomocí těchto příkazů:
sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm
Potvrďte, že se služby objevily:
sudo systemctl status nginx
sudo systemctl status php7.4-fpm
Měli byste vidět, že se služby úspěšně restartovaly!
Pokud vše půjde dobře, měli byste vidět stránku s informacemi o php, jak je znázorněno na obrázku níže:
To je vše! Do této chvíle jsme byli schopni nainstalovat php 7.4 v Ubuntu 20.04 a obsluhovat jednoduchý soubor s Nginx.