GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat PHP 7.2 na Ubuntu 16.04

Použití PHP 7.2 na dedikovaném serveru Ubuntu se oproti předchozím verzím PHP důrazně doporučuje z několika důvodů, za prvé je to zabezpečení. Aktivní podpora pro PHP 7.2 trvá do 30. listopadu 2019 a podpora zabezpečení do 30. listopadu 2020. Starší verze jako 7.0 a cokoli 5.6 a nižší již nedostávají žádnou podporu a mohou na serveru zanechat otevřené bezpečnostní díry, pokud nebudou nahrazeny . Dalším hlavním důvodem pro upgrade je velký nárůst výkonu oproti předchozím verzím, když je nainstalováno PHP 7.2 a používá modul OPcache . To může výrazně zkrátit dobu, kterou trvá načítání vaší webové stránky! Pokud vyvíjíte stránky lokálně nebo je spouštíte na jednom z Ubuntu VPS nebo dedikovaných serverech Liquid Web, použijte PHP 7.2 nebo novější.

Pre-flight:Zkontrolujte prostředí serveru
  • Správná oprávnění: Nejprve se ujistěte, že máte správná oprávnění root nebo sudo, abyste mohli spravovat systém a aplikace na serveru. Pokud máte v systému přístup pouze k uživateli bez oprávnění root, možná budete muset získat další oprávnění od správce serveru.
  • Stávající verze PHP: Zkontrolujte existující verzi PHP. Pokud jste při první instalaci obrazu Ubuntu na server vybrali výchozí zásobník LAMP, výchozí je PHP 7.0. Pokud jste použili jiný obrázek nebo provedli jednoduchou instalaci, pak možná nemáte na serveru žádnou verzi PHP. Chcete-li zkontrolovat verzi PHP, přejděte do terminálu a spusťte:
user@test:~# php -v
 PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )

Pokud vidíte starší verzi PHP, budete muset nainstalovat novou verzi a později přepnout na verzi, ke které se Apache připojuje. Pokud se zobrazuje „Příkaz php nenalezen“, pak není aktuálně nainstalována žádná verze PHP .

  • Vytvoření rychlé zálohy: Pokud máte existující verzi PHP, možná budete chtít před provedením upgradu vytvořit zálohu všech konfigurací pro případ, že by se vyskytly problémy (například pokud by kód vašeho webu nebyl kompatibilní) a potřebovali byste znovu přejít na nižší verzi. Aktuální konfigurační adresář můžete zkontrolovat spuštěním:
user@test:~# php --ini
 Configuration File (php.ini) Path: /etc/php/7.0/cli
 Loaded Configuration File:         /etc/php/7.0/cli/php.ini
 Scan for additional .ini files in: /etc/php/7.0/cli/conf.d

To ukazuje, že všechny konfigurace jsou v /etc/php/7.0/ adresář. Pokud tedy chcete provést rychlou zálohu, můžete spustit příkaz jako:

user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup

Také můžete uložit seznam existujících PHP modulů spuštěním:

user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup

To může pomoci při porovnávání stávajících modulů s moduly v PHP 7.2.

Instalace PHP 7.2

Oficiální úložiště pro PHP na Ubuntu je od Ondřeje Surého na launchpadu. Chcete-li jej přidat do systému, musíte spustit následující příkaz:

user@test:~# sudo add-apt-repository ppa:ondrej/php

Stiskněte enter když vás k tomu vyzve. To vašemu systému umožňuje používat úložiště jako zdroj pro nový software. Další příkaz získá seznam dostupných softwarových balíků pro váš systém:

user@test:~# sudo apt-get update

Poté můžete pokračovat v instalaci:

user@test:~# sudo apt-get install php7.2

Mělo by ukázat několik různých balíčků, které nainstaluje, a kolik celkového místa na disku zaberou. Až se zobrazí výzva, zadejte „Y “ a odešlete jej. Po chvíli by měla být instalace dokončena, zkontrolujte verzi PHP pomocí:

user@test:~# php -v
 PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1

Nyní by měl zobrazovat PHP 7.2, ale nyní potřebujeme nakonfigurovat Apache pro použití novější verze.

Konfigurace Apache pro použití PHP 7.2

Ubuntu 16.04 používá několik různých příkazů, které pomáhají spravovat moduly Apache, takže způsob, jakým využívá konkrétní verzi PHP, závisí na tom, který modul je načten. Seznam dostupných modulů můžete zobrazit spuštěním:

user@test:~# ls /etc/apache2/mods-available/php*
 /etc/apache2/mods-available/php7.0.conf
 /etc/apache2/mods-available/php7.0.load
 /etc/apache2/mods-available/php7.2.conf
 /etc/apache2/mods-available/php7.2.load

Můžete mít i jiné moduly, výchozí instalace zásobníku LAMP by měla 7.0 a nová instalace 7.2, kterou jsme právě provedli, ale spuštění dalšího příkazu ukazuje, že 7.0 je stále aktivní:

user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.0.conf
/etc/apache2/mods-enabled/php7.0.load

Chcete-li to přepnout na novější verzi 7.2, nejprve vypněte starší verzi PHP:

user@test:~# sudo a2dismod php7.0

Poté povolte PHP 7.2:

user@test:~# sudo a2enmod php7.2

Před restartováním Apache zkontrolujte syntaxi konfigurace Apache spuštěním:

user@test:~# apachectl -t
Syntax OK

Pokud to říká, že syntaxe je v pořádku, restartujte Apache:

user@test:~# sudo service apache2 restart

Ověření verze PHP Apache

Nyní, abyste zkontrolovali svou práci, spusťte znovu předchozí příkaz, abyste viděli, který modul je načten a měl by zobrazovat verzi PHP 7.2:

user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.2.conf
/etc/apache2/mods-enabled/php7.2.load

Pokud nevidíte stejné výsledky jako v několika posledních příkazech, znovu zkontrolujte pravopis a syntaxi posledních několika příkazů a ujistěte se, že sudo byl zadán, pokud nespouštíte jako uživatel root.

Chcete-li jej otestovat na svém webu, doporučujeme vytvořit soubor phpinfo, který můžete zobrazit na své doméně. Zobrazuje verzi PHP a také informace o aktuálních konfiguracích, proměnných a všech přidaných modulech. Vytvořte nový .php soubor v domovské složce vašeho webu nebo v kořenovém adresáři dokumentu Apache (/var/www/html ve výchozím nastavení) a zahrňte tento kód:

<?php phpinfo(); ?>

Pokud stránku navštívíte v prohlížeči, měla by vypadat nějak takto:

Pokud jste měli web již spuštěný a spuštěný na předchozí verzi PHP, otestujte jej nyní a zjistěte, zda se nevyskytují nějaké problémy. Pokud váš kód není kompatibilní nebo zobrazuje chyby, můžete se pokusit provést další diagnostiku, nebo pokud potřebujete stránky ihned zálohovat, můžete znovu přejít na nižší verzi PHP spuštěním a2dismod a a2enmod příkazy k deaktivaci PHP 7.2 a poté povolení 7.0 nebo jakékoli předchozí verze, kterou jste na serveru měli, a poté znovu restartujte Apache.

Na některých webech se nyní může zobrazit chyba, že modul chybí a nelze jej spustit, nebo pokud vyvíjíte nový web a máte seznam modulů, které jsou potřeba, další sekce vám může pomoci přidat nové moduly.

Přidávání modulů do PHP 7.2

Přechod na PHP 7.2 automaticky nezachová všechny stejné moduly z předchozích verzí PHP. Pokud nepotřebujete porovnávat seznam s předchozí verzí PHP, pak pro instalaci jakýchkoli základních modulů, které potřebujete, nejprve zadejte příkaz níže. Pokud však stisknete TAB, nestiskněte Enter dvakrát, měli byste získat seznam dostupných modulů specifických pro 7.2::

@test:~# sudo apt-get install php7.2[tab][tab]

Příklad výstupu:
php7.2 php7.2-enchant php7.2-mbstring php7.2-snmp
php7.2-bcmath php7.2-fpm php7.2-mysql php7.2-soap
php7.2-bz2 php7.2-gd php7.2-odbc php7.2-sqlite3
php7.2-cgi php7.2-gmp php7.2-opcache php7.2-sybase
php7.2-cli php7.2-imap php7.2-pgsql php7.2-tidy
php7.2-common php7.2-interbase php7.2-phpdbg php7.2-xml
php7.2-curl php7.2-intl php7.2-pspell php7.2-xmlrpc
php7.2-dba php7.2-json php7.2-readline php7.2-xsl
php7.2-dev php7.2-ldap php7.2-recode php7.2-zip

Toto není úplný seznam, takže možná budete muset vyhledat, jak nainstalovat další moduly, které budete potřebovat. Můžete zadat požadované moduly a můžete jich přidat více ve stejném instalačním příkazu, například:

user@test:~# sudo apt-get install php7.2-opcache php7.2-mbstring php-memcached

Pokud jste uložili seznam modulů z předchozí verze PHP pomocí příkazu dříve v příručce, můžete uložit seznam modulů v PHP 7.2 a porovnat je s předchozí verzí. Spustit:

php -m > /tmp/7.2.modulelist.txt

Chcete-li jej porovnat se seznamem, který byl vytvořen dříve, spusťte:

user@test:~# diff  /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt
15,16d14
< mysqli
< mysqlnd
21d18
< pdo_mysql
28d24
< soap
29a26
> sodium

Nebo pokud chcete vizuálnější způsob porovnání těchto dvou seznamů, spusťte:

user@test:~# vimdiff  /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt

Což zobrazí v terminálu stránku podobnou této:

V tomto příkladu se různé moduly MySQL a mýdlo zobrazují na seznamu modulů 7.0 vlevo, ale chybí ve verzi 7.2 vpravo a modul sodíku je na 7.2, ale nebyl ve verzi 7.0.

Takže pro tento příklad můžeme nainstalovat chybějící moduly pomocí:

user@test:~# sudo apt-get install php7.2-mysql php7.2-soap

Po této instalaci si můžeme uložit aktualizovaný seznam modulů a můžeme jej znovu porovnat:

user@test:~# php -m > /tmp/7.2.modulelist.updated.txt
diff /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.updated.txt
29a30
> sodium

Pouze sodíkový modul se mezi seznamy modulů liší, takže je nyní připraven k vývoji! Doufejme, že vám tato příručka pomohla s upgradem na PHP 7.2! Pokud máte nějaké problémy nebo potřebujete další pomoc se svým Liquid Web Ubuntu Serverem, dejte vědět našemu týmu podpory Linuxu!


Ubuntu
  1. Jak nainstalovat PHP 7.4 / 7.3 / 7.2 na Ubuntu 18.04 / Ubuntu 16.04

  2. Jak nainstalovat Composer na Ubuntu 20.04

  3. Jak nainstalovat PHP 7 na Ubuntu 14.04

  1. Jak nainstalovat PHP 8.0 na Ubuntu 20.04 / Ubuntu 18.04

  2. Jak nainstalovat XCache na Ubuntu 15.04

  3. Jak nainstalovat PHP 7.3 na Ubuntu 16.04

  1. Jak nainstalovat PHP 7.4 a 8.0 na Ubuntu 18.04 nebo 20.04

  2. Jak nainstalovat PHP na Ubuntu Linux

  3. Jak nainstalovat PHP na Ubuntu 18.04