Rey*_*rPM 2 php php-fpm centos6 apache-2.4 scl
让我们开始说我已经在 Remi 博客上阅读了这个、这个和这个,因为它与这些存储库相关的问题。博客条目根本没有帮助我,或者我在这里遗漏了一些东西,但我不确定是什么。我将在下面公开我遵循的步骤,让我们看看我做错了什么。我计划将 PHP 5.6.x 和 PHP 7.0 安装为 SCL(因为我需要在两者上测试一些应用程序,并且由于某些 Wordpress 开发,我需要保持 PHP 5.6.x 支持)并且我将通过 SetHandler 使用 Apache 2.4.x所以下面是步骤:
安装软件集合工具:
yum install scl-utils
Run Code Online (Sandbox Code Playgroud)为您的系统下载带有存储库的软件包(在本例中为 httpd24)
wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
Run Code Online (Sandbox Code Playgroud)安装 repo 包:
yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
Run Code Online (Sandbox Code Playgroud)安装集合:
yum install httpd24
Run Code Online (Sandbox Code Playgroud)开始使用软件集合:
scl enable httpd24 bash
Run Code Online (Sandbox Code Playgroud)启动 httpd24 服务(默认选项)
service httpd24-httpd start
Run Code Online (Sandbox Code Playgroud)将 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
Run Code Online (Sandbox Code Playgroud)启动 PHP56-FPM:
service php56-php-fpm start
Run Code Online (Sandbox Code Playgroud)将 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
Run Code Online (Sandbox Code Playgroud)测试 Apache 已安装并运行:
http://mylocalip
Run Code Online (Sandbox Code Playgroud)成功了,我可以看到 RedHat/CentOS 的 Apache 默认页面。到目前为止一切都很好。我/var/www/html/info.php用以下代码创建了一个文件:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
当我尝试通过运行到达时:
http://mylocalip/info.php
Run Code Online (Sandbox Code Playgroud)
它说,没有发现这样的Apache会错了地方,那很好,然后我编辑下的文件文件/opt/rh/httpd24/root/etc/httpd/conf/httpd.conf和变化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
Run Code Online (Sandbox Code Playgroud)
我在这里想念什么?我做错了什么?任何人都可以给我一些想法或帮助吗?
我已经测试了相同的步骤,它对我有用:(
请检查您是否已将所有且仅 /opt/rh/httpd24/root/var/www 更改为 /var/www (尽管我真的不明白您为什么要这样做):
# 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">
Run Code Online (Sandbox Code Playgroud)
然后,在上述步骤中遗漏了:切换 php70-php-fpm 以侦听另一个端口(对我来说是 9002),并为其设置正确的 SELInux:
# semanage port -a -t http_port_t -p tcp 9002
Run Code Online (Sandbox Code Playgroud)
然后,我为 vhost 管理创建了 2 个名称(el6php56 和 el6php70),并添加了 Apache 配置文件以将每个 vhost 中的 PHP 文件重定向到正确的 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>
Run Code Online (Sandbox Code Playgroud)
然后(默认/第一个 vhost 将使用 php 5.6)
| 归档时间: |
|
| 查看次数: |
16644 次 |
| 最近记录: |