GNU/Linux >> Znalost Linux >  >> Linux

Jak upgraduji na nejnovější verzi PHP v CentOS pomocí yum?

Řešení 1:

Postupoval jsem podle návodu z Install Apache/PHP 5.4.10 na Fedoru 17/16, CentOS/RHEL 6.3/5.8 s mírnou úpravou. Trvalo to snad 10 min. Mé přesné příkazy jsou uvedeny níže. Všimněte si, že první příkaz musel být změněn oproti tomu, co je uvedeno v článku. Změna byla z epel-release-6-7.noarch.rpm do epel-release-6-8.noarch.rpm .

  1. Jak přidat repo, které poskytuje PHP 5.4, do yum?

    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
    
  2. Může to bez problémů nahradit současnou verzi PHP v CentOS? Pro mě fungovaly následující příkazy a žádná z mých stávajících webových stránek PHP se nerozbila. Váš počet najetých kilometrů se může lišit.

    yum --enablerepo=remi install httpd php php-common
    yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    service httpd restart
    
  3. Jak se mohu přepnout zpět na oficiální repo, když podporuje PHP5.4? Netestoval jsem příkazy k odstranění a opětovné instalaci PHP z repozitářů CentOS, ale měly by fungovat.

    # Remove the Remi packages. Note the reversed command order
    yum remove php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    yum  remove httpd php php-common
    # Install the CentOS packages. 
    yum install httpd php php-common
    yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
    
  4. Bude nějaký potenciál prolomit PHP moduly, které [sic] aktuálně používám? Ano. Použitím nejnovější verze CentOS (6.2?) se Zend nainstalovaným pomocí instalačního programu Zend výše uvedený upgrade zlomil Zend.

Všechny výše uvedené příkazy byly spuštěny jako root . Nejlepším postupem je přihlásit se jako neprivilegovaný uživatel a použít sudo . (Toto je vývojový VM s aktuálním snímkem...)

Také ve výchozím nastavení nepovolujte úložiště Remi - v minulosti jsem byl chytrý a ve výchozím nastavení jsem jej povolil a věci se pokazily, dokonce i s prioritou úložiště.

Řešení 2:

Zlepšení oproti jiné odpovědi Webtatic:

1. Pomocí průvodce na http://www.webtatic.com/packages/php54/:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

2. Nejprve musíte vidět, jaké stávající nainstalované balíčky je třeba nahradit, můžete to udělat pomocí yum shellu, abyste zkombinovali odstranění php-common a instalaci php54w-common v jedné transakci (takže sdílené závislosti nejsou odstraněny)

yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n

Neříkejte "y" výsledkům, ale poznamenejte si všechny balíčky uvedené v "Odstranění závislostí", např.

Removing for dependencies:
 php
 php-cli
 php-pear
 php-pecl-memcache
 php-mysql

Pokud jsou v tomto seznamu jiné balíčky než php*, nemůžete plynule přejít na Webtatic PHP 5.4, ale budete muset prozkoumat alternativy. Webtatic má náhradní balíčky pro všechny základní balíčky php (potvrzení viz balíčky uvedené na stránce s odkazem v 1.), takže by neměly nastat žádné problémy, pokud nepoužíváte jiná úložiště třetích stran, která mají balíčky nainstalované v závislosti na konkrétní verzi php nainstalováno.

Pro zbytek instalace (stále v yum shellu), stačí odstranit tyto balíčky a nainstalovat jejich protějšky php54w-*:

> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y

Poté byste měli v seznamu vidět pouze balíčky, které jste nastavili k odstranění a instalaci, a můžete instalaci potvrdit a přepnout. Jakékoli služby aktuálně spuštěné s načteným php budou muset být restartovány, například httpd nebo php-fpm.

Vzhledem k tomu, že je to „bezproblémové“, jakékoli změny softwaru, ke kterým dojde v době, kdy uživatelé mají přístup na webovou stránku, by měly mít důsledky plně pochopené. Odebírání a přidávání sdílených knihoven, když je proces ještě nenačetl, by se mohly potenciálně načíst, zatímco sdílená knihovna tam není. Je lepší provádět upgrady softwaru, jako je tento, offline a nejlépe nejprve testovat na neprodukčním stroji, abyste ověřili, že proces funguje podle očekávání.

3. Chcete-li přejít na hypotetický základní balíček CentOS php54 (CentOS 5 používal předponu php53), stačí provést výše uvedené kroky a nahradit odstranění php odstraněním php54w a instalaci php54w instalací php54, např.

yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y

Nicméně pokud jde o přechod na hypotetický základ php54, pravděpodobně nebudou existovat žádné alternativy pro některé balíčky (např. v CentOS 5 nebylo žádné rozšíření php53-pecl-memcache) a Webtatic má balíčky, které nejsou dostupné v základu CentOS (např. php54w -pecl-zendopcache). Pokud chybí, pak obvykle nemáte jinou možnost, než použít pecl přímo k jejich instalaci.

4. Jakýkoli upgrade PHP může obsahovat chyby a webové stránky by měly být znovu otestovány. To není specifické pro Webtatic, ale obecná myšlenka, že nové funkce přinášejí nové chyby.

Na rozdíl od úložiště Remi v přijaté odpovědi úložiště Webtatic EL6 nikdy nepoužívá stejné názvy balíčků jako základní úložiště CentOS, takže nepřepíše instalaci/upgrade balíčků, na které nechcete přejít, a jako takové je ve výchozím nastavení povoleno.

Prohlášení:Jsem vlastníkem/správcem Webtatic


Linux
  1. Upgradujte verzi PHP na 7.0 v CentOS 6/7

  2. Jak upgradovat Fedora Linux na nejnovější verzi

  3. Jak upgradovat verzi PHP na PHP 8.0 na Ubuntu

  1. Upgradujte verzi PHP na 5.5 v CentOS 6

  2. Upgradujte verzi PHP na 5.6 v Centos 6

  3. Jak upgradovat AWS CLI na nejnovější verzi?

  1. Jak upgradovat verzi Git>=1.7.10 na CentOS 6

  2. Jak upgradovat Sendmail na nejnovější verzi na CentOS

  3. Jak upgradovat git na nejnovější verzi na CentOS