Atualize o PHP 7.0 para 7.2 no Centos

3

Eu tenho um servidor de produção em funcionamento que executa o PHP 7.0 e quero atualizar para o 7.2.

Eu não encontrei nada online que sugira que PHP7.0 e 7.2 possam coexistir. Qual seria o procedimento adequado? Basta remover todos os pacotes php70w * e instalar todos os pacotes do php72w?

Este é um servidor de produção, os erros não devem causar falhas.

Obrigado.

    
por Michael 28.03.2018 / 07:31

3 respostas

6

Esta é a solução para o CentOS 6.xe 7.x:

yum install epel-release

em seguida, instale o Remi repo, para o Centos 6.x:

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm

e para o Centos 7.x:

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

verifique quais pacotes PHP estão instalados:

yum list installed php*

remova o PHP atual:

yum remove php*

instale os mesmos pacotes que foram instalados para o 7.0 usando o PHP 7.2, por exemplo:

yum install --enablerepo=remi-php72 php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo

verifique a versão do PHP instalada:

php -v

Você não precisa do PHP 7.0 e 7.2 coexistir no seu servidor. Se você tem um problema usando o PHP 7.2 Você sempre pode reinstalar o antigo PHP 7.0. Se não tiver certeza de que funcionará para você no servidor de produção, tente primeiro na máquina virtual. Mas funcionou para mim em muitos servidores de produção. O PHP não é um componente crítico do sistema operacional, portanto, o servidor nunca falhará se o PHP for alterado. É apenas o seu aplicativo da web que pode falhar quando mudar para 7.2, mas como eu escrevi é improvável e você pode reinstalar a versão mais antiga, se isso acontecer.

Esqueci-me do php.ini. Se você quiser manter suas customizações do php.ini em outra versão do PHP, faça uma cópia do php.ini antes de executar o yum remove php *. Após o PHP reinstale diff saved_php.ini php.ini e veja o que precisa ser mesclado.

    
por 28.03.2018 / 09:39
3

Sim, você pode instalar várias versões do PHP simultaneamente, sem precisar construir nada, apenas usando pacotes RPM.

É exatamente por isso que as coleções de software foram criadas.

Veja: Dicas de configuração do PHP (sobre como alternar para o FPM e usar coleções de software para versões recentes e / ou múltiplas php)

Para a coleta do PHP 7.2, veja também o Assistente de configuração (e escolha Múltiplas versões)

Mas, de fato, a solução do @NoAngel também funciona se você acha que uma única versão é suficiente, especialmente se você tiver um ambiente de teste.

    
por 28.03.2018 / 12:43
1

Sim, você pode manter várias versões ao mesmo tempo. Agora você tem 7.0 no servidor para que você possa baixar a fonte do site oficial do php e construí-lo para outro local.

Além disso, você pode usar mod_fcgid ou php-fpm para executar suas aplicações web PHP com a nova versão php. Você pode consultar abaixo os passos para construir o php a partir da fonte.

  1. Faça o download do arquivo fonte do php do espelho oficial do php.
  2. Extraia o arquivo morto em seu servidor e, em seguida, altere o diretório para o diretório extraído.
  3. Instalar dependências necessárias para compilação

yum install libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libicu-devel gcc-c++ libxslt-devel net-snmp-devel readline-devel aspell-devel unixODBC-devel libc-client-devel freetype-devel libvpx-devel enchant-devel libmcrypt-devel krb5-devel libtidy-devel bzip2-devel

  1. Use os comandos abaixo para configurar e construir o PHP.

./configure --prefix=/usr/local/php --enable-mbstring --with-curl --with-openssl --with-xmlrpc --enable-soap --enable-zip --with-gd --with-jpeg-dir --with-png-dir --with-mysqli --with-freetype-dir --enable-intl --with-xsl --with-mcrypt --with-zlib --enable-bcmath --enable-dba --enable-calendar --enable-exif --enable-ftp --enable-pcntl --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-opcache --with-gettext --with-bz2 --with-mhash --with-readline --with-tidy --with-libdir=lib64

nota: você pode alterar o prefixo se quiser alterar o diretório de instalação.

make && make install

Ele instalará binários e bibliotecas PHP no diretório prefix que você mencionou no comando configure.

  1. Agora, instale o módulo mod_fcgid no apache para usar a nova versão das execuções de scripts php

yum install mod_fcgid

crie um arquivo com o nome php-fcgi no diretório cgi-bin (o caminho possível é / var / www / cgi-bin) e adicione o conteúdo abaixo.

#!/bin/sh
PHPRC=/etc/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=0
exec  /usr/local/php/bin/php-cgi

Atribua permissão de execução ao arquivo cgi.

AddHandler php7-fastcgi .php
Action php7-fastcgi /cgi-bin/php-fcgi
Options -Indexes +FollowSymLinks +ExecCGI
DirectoryIndex index.php

<IfModule mod_fcgid.c>
         FcgidIdleTimeout 3600
         FcgidProcessLifeTime 3600
         FcgidBusyTimeout 3600
         FcgidIOTimeout 3699
         FcgidConnectTimeout 20
</IfModule>

Agora você pode usar este manipulador para qualquer virtualhost onde você quer usar a última versão do PHP.

Antes de fazer isso na produção, você deve ter que experimentá-lo no sistema local / dev para evitar erros inesperados. Também ./configure --help pode ajudá-lo a escolher os módulos PHP que você está usando atualmente no servidor de produção.

    
por 28.03.2018 / 10:30

Tags