让我们开始说,我已经阅读了这个 , 这在Remi博客,因为它涉及到这些存储库的问题。 博客条目根本没有帮助我,或者我错过了一些东西,但我不知道是什么。 我将在下面介绍我遵循的步骤,让我们看看我做错了什么。 我打算安装PHP 5.6.x和PHP 7.0作为SCL(因为我需要在两者上testing一些应用程序,并且由于某些Wordpress开发我需要保留对PHP 5.6.x的支持),我将通过SetHandler所以下面是步骤:
安装软件集合工具:
yum install scl-utils
下载一个包含系统信息库的包(在本例中为httpd24)
wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
安装回购包:
yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
安装集合:
yum install httpd24
开始使用软件集合:
scl enable httpd24 bash
启动httpd24服务(默认选项)
service httpd24-httpd start
安装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
启动PHP56-FPM:
service php56-php-fpm start
安装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
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)