Před několika dny jsem musel upgradovat na PHP 7.1 na serveru nixcp.com, byl to velký upgrade, protože jsem spouštěl PHP 5.6.x.
Toto bylo na vrcholu mého seznamu úkolů poté, co jsem si přečetl, že PHP 7.1 bylo o 20 % rychlejší než PHP 7.0 (a všichni víme, že PHP 7.0 je přibližně dvakrát rychlejší než PHP 5.6.x), protože jsem posedlý rychlostí webu a webu. výkon, to byla šance otestovat PHP 7.1 a jeho výhody.
Nainstalujte PHP 7.1 na CentOS 7 Krok za krokem
Poté, co jsem prozkoumal, zda jsou všechny moje aplikace PHP kompatibilní, zahájil jsem proces upgradu z PHP 5.6.x na PHP 7.1 na CentOS 7.x 64 bitů. Toto je postup, který jsem použil na svém serveru.
Získejte seznam všech vašich aktuálních balíčků PHP, pro každý případ:
rpm -qa | grep php
Mělo by to vypadat podobně jako toto:
[[email protected]:~]rpm -qa | grep php php-common-5.6.30-1.el7.remi.x86_64 php-pear-1.10.3-1.el7.remi.noarch php-pecl-memcache-3.0.8-4.el7.remi.5.6.x86_64 php-devel-5.6.30-1.el7.remi.x86_64 php-mysqlnd-5.6.30-1.el7.remi.x86_64 php-mcrypt-5.6.30-1.el7.remi.x86_64 php56-php-common-5.6.30-1.el7.remi.x86_64 php-cli-5.6.30-1.el7.remi.x86_64 php-pecl-jsonc-devel-1.3.10-2.el7.remi.5.6.x86_64 php-pecl-igbinary-2.0.1-1.el7.remi.5.6.x86_64 php-gd-5.6.30-1.el7.remi.x86_64 php-mbstring-5.6.30-1.el7.remi.x86_64 php56-runtime-2.1-5.el7.remi.x86_64 php56-php-pecl-msgpack-0.5.7-1.el7.remi.x86_64 php-5.6.30-1.el7.remi.x86_64 php-pecl-jsonc-1.3.10-2.el7.remi.5.6.x86_64 php-xml-5.6.30-1.el7.remi.x86_64 php-process-5.6.30-1.el7.remi.x86_64 php-xcache-3.2.0-1.el7.remi.5.6.x86_64 php-pecl-memcached-2.2.0-3.el7.remi.5.6.x86_64 php-soap-5.6.30-1.el7.remi.x86_64 php-opcache-5.6.30-1.el7.remi.x86_64 php56-php-pecl-jsonc-1.3.10-1.el7.remi.x86_64 php56-php-pecl-igbinary-2.0.1-1.el7.remi.x86_64 php-pdo-5.6.30-1.el7.remi.x86_64 php-fpm-5.6.30-1.el7.remi.x86_64 php56-php-pecl-zip-1.13.5-1.el7.remi.x86_64 php-pecl-zip-1.13.5-1.el7.remi.5.6.x86_64 php-pecl-msgpack-0.5.7-1.el7.remi.5.6.x86_64 php-xmlrpc-5.6.30-1.el7.remi.x86_64 [[email protected]:~]
Nainstalujte Remi Repo pro CentOS 7.x
Již jsem měl nainstalované Remiho repo, ale pokud ne, můžete to udělat pomocí těchto příkazů:
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm
Poté povolte balíčky PHP-71 z vašeho úložiště Remi a spusťte tento příkaz:
yum-config-manager --enable remi-php71
Očekávaný výstup:
[[email protected]:~]yum-config-manager --enable remi-php71 Loaded plugins: fastestmirror, langpacks ==== repo: remi-php71 ======= [remi-php71] async = True bandwidth = 0 base_persistdir = /var/lib/yum/repos/x86_64/7 baseurl = cache = 0 cachedir = /var/cache/yum/x86_64/7/remi-php71 check_config_file_age = True compare_providers_priority = 80 cost = 1000 deltarpm_metadata_percentage = 100 deltarpm_percentage = enabled = True enablegroups = True ... ... ...
Poté spusťte yum update:
yum update -y
Pokud neupgradujete a chcete pouze nainstalovat PHP 7.1 na CentOS 7, stačí spustit:
yum install php php-devel php-gd php-mbstring php-mcrypt php-soap php-mysqlnd
Měl by aktualizovat všechny vaše aktuální balíčky PHP na PHP 7.1, jak vidíte níže:
Pokud se objeví tento problém:
You could try using --skip-broken to work around the problem ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: php-5.6.30-1.el7.remi.x86_64 has missing requires of httpd-mmn = ('0', '20120211x8664', None)
Lze to opravit instalací balíčku httpd, který nepoužívám, ale je vyžadován:
yum install httpd -y
Poté jsem zakázal httpd z procesu spouštění, abych se ujistil, že se nepokusí spustit společně s Nginx a nezpůsobí konflikt portu 80:
systemctl disable httpd
Odstraňte Xcache, protože jak vidím, není k dispozici pro PHP 7.1.x
yum remove php-xcache* -y
Pokud zachováte Xcache, může to vést k chybě yum, jak vidíte níže:
--> Finished Dependency Resolution Error: Package: 1:php-xcache-3.2.0-1.el7.remi.5.6.x86_64 (@remi-php56) Requires: php(zend-abi) = 20131226-64 Removing: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(zend-abi) = 20131226-64 Updated By: php-common-7.1.3-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 Available: php-common-5.4.16-42.el7.x86_64 (base) php(zend-abi) = 20100525-64 Available: php-common-5.6.29-1.el7.remi.x86_64 (remi-php56) php(zend-abi) = 20131226-64 Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 Error: Package: 1:php-xcache-3.2.0-1.el7.remi.5.6.x86_64 (@remi-php56) Requires: php(api) = 20131106-64 Removing: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(api) = 20131106-64 Updated By: php-common-7.1.3-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 Available: php-common-5.4.16-42.el7.x86_64 (base) php(api) = 20100412-64 Available: php-common-5.6.29-1.el7.remi.x86_64 (remi-php56) php(api) = 20131106-64 Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
Všiml jsem si jedné věci:několik balíčků je stále z verze PHP 5.6:
[[email protected]:~]rpm -qa | grep php56 php56-php-common-5.6.30-1.el7.remi.x86_64 php56-runtime-2.1-5.el7.remi.x86_64 php56-php-pecl-msgpack-0.5.7-1.el7.remi.x86_64 php56-php-pecl-jsonc-1.3.10-1.el7.remi.x86_64 php56-php-pecl-igbinary-2.0.1-1.el7.remi.x86_64 php56-php-pecl-zip-1.13.5-1.el7.remi.x86_64
Odstraňte je a nainstalujte verze 7.1 z Remi:
yum remove php56*
yum install yum install php71-php-common php71-runtime php71-php-pecl-msgpack php71-php-pecl-jsonc php71-php-pecl-igbinary php71-php-pecl-zip
A upgrade z PHP 5.6 na PHP 7.1 byl dokončen.
Nakonec se ujistěte, že restartujete http a php-fpm, aby se změny projevily:
systemctl restart nginx systemctl restart php-fpm
To je vše, nyní víte, jak upgradovat nebo nainstalovat PHP 7.1 na CentOS 7. Dejte mi prosím vědět, pokud máte nějaké dotazy nebo problémy po tomto návodu.
Instalace / upgrade na PHP 7.1 na CentOS 7 / RHEL 7 pomocí Remi RPM Repo byla naposledy upravena:5. dubna 2017 Esteban Borges