问题
如何在 RHEL 7.2 中安装 PHP 5.6 和 Apache ?
解决
默认情况下,RHEL 7.2 仅包含 php5.4 和 php5.5。要使用 php5.6,请使用 RHSCL 存储库,并手动配置 httpd .conf 以使用它们。
因为 RHEL 无法通过 php5.6 支持 mod_php,所以您必须使用 php-fpm 并通过 mod_proxy_fcgi 运行它。
1. 启用 RHSCL 存储库作为源,并通过运行以下命令来安装 httpd 和 php56 程序包:
sudo yum update rh-amazon-rhui-client.noarch sudo yum-config-manager --enable rhui-REGION-rhel-server-rhscl sudo yum install httpd rh-php56 rh-php56-php rh-php56-php-fpm
要安装其他模块(例如,php-mysql 模块),可使用如下命令进行搜索和安装:
sudo yum search rh-php56 sudo yum install rh-php56-php-mysql
2. 使用以下命令启动并检查 rh-php56-php-fpm:
sudo systemctl start rh-php56-php-fpm.service sudo systemctl status rh-php56-php-fpm.service
3. 通过运行以下命令修改 httpd conf,以便使 mod_proxy_fcgi 与 php-fpm 配合使用:
sudo vi /etc/httpd/conf/httpd.conf
将以下内容添加到 IncludeOptional conf.d/*.conf 之前:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/ var /www/html/$1
使用 :wq 命令保存配置。
PHP-FPM 默认在 127.0.0.1:9000 下运行。要处理您的根 Web 文件夹下的所有 php 文件,请使用如下地址:
fcgi://127.0.0.1:9000/<您的网站应用程序的根文件夹>/$1
注意 :有关 PHP-FPM 的更多信息,请参阅使用 mod_proxy_fcgi 和 php-fpm 的 apache httpd 2.4.x 上的高性能 PHP。
4. 重新启动 Apache,然后运行以下命令检查其状态:
sudo systemctl restart httpd.service sudo systemctl status httpd.service
5. 运行以下命令创建测试文件:
sudo vi /var/www/html/info.php
将以下内容添加到新文件:
<?php phpinfo(); ?> 使用 :wq 命令保存配置。
验证配置
要验证您的配置是否已成功加载,请在 EC2 管理控制台中找到您的实例的公有 IP 地址。在实例上打开一个浏览器,然后导航到 实例的公有 IP 地址 >/info.php.
注意 :如果页面加载失败,请确保与实例关联的安全组允许端口 80 上的入站流量。
如果您确认其工作正常,可以运行以下命令来将 Apache 和 php-fpm 设置为在系统启动时启动。
sudo systemctl enable httpd.service sudo systemctl enable rh-php56-php-fpm.service