我从 Remi repo 安装了 PHP7
sudo yum -y install httpd
sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm
sudo yum -y --enablerepo=remi,remi-test install php70
scl enable php70 'php -v'
sudo ln -s /usr/bin/php70 /usr/bin/php
并且它通过 CLI 运行。现在我想让它与 apache 一起工作,但我找不到可以作为第二个参数传递给 LoadModule 的 so
LoadModule php7_module unknown_path
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
这是使 PHP7 与 apache2 协同工作的正确方法吗?
答案1
默认情况下“php70”(软件集合)不安装mod_php。
yum install php70-php
并检查您是否没有任何其他 mod_php(例如“php”基础包提供的 mod_php)
答案2
对于那些希望使用remi-php70
存储库安装 PHP 7 的人(现在 PHP 7.0.0 已经发布),您可以使用您熟悉和喜爱的相同包名称安装包,例如:
php
php-cli
php-common
php-devel
php-fpm
php-gd
php-mbstring
php-pdo
- ETC。
答案3
对于任何尝试在 Centos 6.7 上从 PHP 5.6 升级到 7.0.1 的人:
我今天设法让它工作起来,几乎像 @mbalparda 列出的那样,但没有使用 epel-release(尽管一些 epel 存储库已启用并正在使用中)
我从 IUS 获得了 php 5.6(https://ius.io/GettingStarted/) 回购 (https://centos6.iuscommunity.org/ius-release.rpm) 安装,所以我通过以下方式删除了它们:
# yum list installed | grep php5
php56u.x86_64 5.6.14-1.ius.centos6
php56u-cli.x86_64 5.6.14-1.ius.centos6
php56u-common.x86_64 5.6.14-1.ius.centos6
...
所以
# yum erase php56u php56u-cli php56u-common php56u-mcrypt php56u-mysqlnd ...
然后是列出的命令:
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm
# yum install php70-php php70-php-cli php70-php-common php70-php-mcrypt php70-php-mysqlnd ...
# scl enable php70 'php -v'
# sudo ln -s /usr/bin/php70 /usr/bin/php
# service httpd restart
答案4
如果您安装了旧版本的 php(例如 5.6),请不要忘记执行以下操作:
cd /etc/httpd/conf.d/
mv php.conf php.conf.dis
重新启动 apache 就可以了。