Instale o httpd24, o php56 e o php70, pois o SCL não está funcionando com o erro “file not found”

2

Vamos começar dizendo que li isto , e this em Remi Blog desde a questão relacionada a esses repositórios. As entradas do blog não estão me ajudando em tudo ou estou faltando alguma coisa aqui, mas não tenho certeza do que é. Vou expor abaixo quais passos eu segui e vamos ver o que estou fazendo errado. Estou planejando instalar o PHP 5.6.xe o PHP 7.0 como SCL (porque eu preciso testar alguns aplicativos em ambos e preciso manter o suporte ao PHP 5.6.x devido a algum desenvolvimento do Wordpress) e vou usar o Apache 2.4.x através do SetHandler Abaixo seguem os passos:

  1. Instale as ferramentas de coleções de software:

    yum install scl-utils
    
  2. Baixe um pacote com repositório para o seu sistema (neste caso para httpd24)

    wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
  3. Instale o pacote repo:

    yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
    
  4. Instale a coleção:

    yum install httpd24
    
  5. Comece a usar coleções de software:

    scl enable httpd24 bash
    
  6. Iniciar o serviço httpd24 (opção padrão)

    service httpd24-httpd start
    
  7. Instale o PHP56 como SCL:

    yum install php56 php56-php-common php56-php-cli php56-php-fpm php56-php-gd php56-php-intl php56-php-mbstring php56-php-mcrypt php56-php-opcache php56-php-pdo php56-php-pear php56-php-pecl-apcu php56-php-imagick php56-php-pecl-xdebug php56-php-pgsql php56-php-xml php56-php-mysqlnd php56-php-pecl-jsonc php56-php-pecl-zip php56-php-process php56-runtime
    
  8. Inicie o PHP56-FPM:

    service php56-php-fpm start
    
  9. Instale o PHP70 como SCL:

    yum install php70 php70-php-common php70-php-cli php70-php-fpm php70-php-gd php70-php-intl php70-php-mbstring php70-php-mcrypt php70-php-opcache php70-php-pdo php70-php-pear php70-php-pecl-apcu php70-php-imagick php70-php-pecl-xdebug php70-php-pgsql php70-php-xml php70-php-mysqlnd php70-php-pecl-jsonc php70-php-pecl-zip php70-php-process php70-runtime
    
  10. O teste do Apache está instalado e em execução:

    http://mylocalip 
    

E sucesso eu posso ver a página padrão do Apache para RedHat / CentOS. Tudo bem até agora. Eu criei um arquivo em /var/www/html/info.php com o seguinte código:

    <?php
     phpinfo();
    ?>

Quando tento alcançar executando:

http://mylocalip/info.php

Ele diz que o arquivo não foi encontrado, então o Apache está indo para o lugar errado, tudo bem, então edito o arquivo em /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf e altero DocumentRoot de /opt/rh/httpd24/root/var/www/html para /var/www/html e fiz a mesma alteração em todos os lugares o mesmo problema , reiniciei o Apache e tentei novamente, mas recebi o mesmo erro. Eu verifiquei as permissões de /var/www/html e é assim que elas aparecem:

# ls -l /var/www/
drwxrwsr-x 3 apache root 4096 Nov 13 04:51 html

o que eu sinto falta aqui? O que estou fazendo errado? Alguém pode me dar algumas idéias ou ajudar nisso?

    
por ReynierPM 14.11.2015 / 02:30

2 respostas

6

Eu testei os mesmos passos, funciona para mim: (

Por favor, verifique se você alterou tudo e somente / opt / rh / httpd24 / root / var / www para / var / www (apesar de eu realmente não entender por que você quer isso):

# grep www /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf | grep -v "^#"
DocumentRoot "/var/www/html"
<Directory "/var/www">
<Directory "/var/www/html">
    # Redirect permanent /foo http://www.example.com/bar
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">

Então, faltando nos passos acima: mude o php70-php-fpm para escutar outra porta (9002 para mim), e configure o SELInux correto para ele:

# semanage port -a -t http_port_t -p tcp 9002

Em seguida, eu crio 2 nomes (el6php56 e el6php70) para o gerenciamento de vhost, e adiciono o arquivo de configuração do Apache para redirecionar os arquivos PHP em cada vhost para o serviço FPM correto:

# cat /opt/rh/httpd24/root/etc/httpd/conf.d/vhost.conf 
<VirtualHost *:80>
    ServerName el6php56
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

<VirtualHost *:80>
    ServerName el6php70
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9002"
    </FilesMatch>
</VirtualHost>

Então (o padrão / primeiro vhost irá usar o php 5.6)

  • link exibe phpinfo para PHP 5.6
  • link exibe o phpinfo para o PHP 7.0
por 14.11.2015 / 07:23
0

Eu acabei de me deparar com isso. Eu vejo que você está usando / opt / rh / httpd24 / root / var / www em vez de / var / www, porque você gostaria de usar httpd24-http. Afaik existe uma diferença na forma como o SELinux opera / opt / rh / httpd24 / root / var / www e / var / www. Tente "setenforce 0" para verificar se é um problema do SELinux. Use 'setenforce 1' para voltar a aplicar.

A configuração do php70 está aqui: / etc / opt / rh / rh-php70

    
por 04.09.2018 / 21:11