安装httpd24,php56和php70作为SCL不工作与错误“文件未find”

让我们开始说,我已经阅读了这个 , 这在Remi博客,因为它涉及到这些存储库的问题。 博客条目根本没有帮助我,或者我错过了一些东西,但我不知道是什么。 我将在下面介绍我遵循的步骤,让我们看看我做错了什么。 我打算安装PHP 5.6.x和PHP 7.0作为SCL(因为我需要在两者上testing一些应用程序,并且由于某些Wordpress开发我需要保留对PHP 5.6.x的支持),我将通过SetHandler所以下面是步骤:

  1. 安装软件集合工具:

    yum install scl-utils 
  2. 下载一个包含系统信息库的包(在本例中为httpd24)

     wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm 
  3. 安装回购包:

     yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm 
  4. 安装集合:

     yum install httpd24 
  5. 开始使用软件集合:

     scl enable httpd24 bash 
  6. 启动httpd24服务(默认选项)

     service httpd24-httpd start 
  7. 安装PHP56作为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. 启动PHP56-FPM:

     service php56-php-fpm start 
  9. 安装PHP70作为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. testingApache安装并运行:

     http://mylocalip 

成功的话,我可以看到RedHat / CentOS的Apache默认页面。 迄今为止都很好。 我用下面的代码在/var/www/html/info.php下创build了一个文件:

  <?php phpinfo(); ?> 

当我试图通过跑步达到:

 http://mylocalip/info.php 

它说文件没有find,所以Apache是​​错误的地方,没关系,那么我编辑/opt/rh/httpd24/root/etc/httpd/conf/httpd.conf文件,并从/opt/rh/httpd24/root/var/www/html更改DocumentRoot /opt/rh/httpd24/root/var/www/html/var/www/html和我在相同的地方做了同样的改变,我发现了同样的问题 ,我重新启动了Apache并重试了一次,但是得到了同样的错误。 我已经检查了/var/www/html权限,这是他们的样子:

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

我在这里想念什么? 我做错了什么? 任何能给我一些想法或帮助吗?

我已经testing了相同的步骤,它适用于我:(

请检查你是否已经改变了所有,只有/ opt / rh / httpd24 / root / var / www到/ var / www(尽pipe我不明白你为什么要这样做):

 # 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"> 

然后,在上面的步骤失踪:切换php70-php-fpm听另一个端口(9002为我),并为其设置正确的SELInux:

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

然后,我为vhostpipe理创build2个名称(el6php56和el6php70),并添加Apacheconfiguration文件以将每个虚拟主机中的PHP文件redirect到正确的FPM服务:

 # 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> 

然后(默认/第一个虚拟主机将使用PHP 5.6)

  • http://el6php56/info.php显示PHP 5.6的phpinfo
  • http://el6php70/info.php显示PHP 7.0的phpinfo