15

I installed PHP7 from Remi repo with

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

and it is working via CLI. Now I want to make it work with apache but i can't find a so to pass as a second argument to LoadModule

LoadModule php7_module        unknown_path  
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Is this the correct approach to make PHP7 to work with apache2?

mbalparda
  • 263
  • 1
  • 2
  • 8

5 Answers5

27

By default "php70" (Software Collection) don't install the mod_php.

yum install php70-php

And check you haven't any other mod_php (such as the one provided by "php" base package)

Remi Collet
  • 2,111
  • 1
  • 12
  • 12
  • Hi Remi. I just installed on centos 6.7 (`yum install php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring`) and while the install worked flawlessly my sites are still being served in php 5.6. How do I "switch" nginx over to php 7? – Codemonkey Dec 04 '15 at 08:47
  • Since fcgi passes over 127.0.0.1:9000 I assume I need to somehow disable 5.6 on that port and make it be php 7 instead... but my mind's gone blank! I'm guessing that if I uninstalled all of the 5.6 stuff first, and then installed 7, that would also resolve it? – Codemonkey Dec 04 '15 at 08:48
  • If you nedd a single php version, you can disable "php-fpm" and use "php70-php-fpm" instead. If you need both, change the listen option in the pool definition, and nginx configuration. – Remi Collet Dec 04 '15 at 09:02
  • 3
    Fantastic, thanks. For anyone else in the same boat this does the trick: `service php-fpm stop`, `service php70-php-fpm start`. You'll find php.ini and php-fpm conf files in `/etc/opt/remi/php70/` rather than just in `etc`. – Codemonkey Dec 04 '15 at 10:27
  • @RemiCollet I installed php 5.6 using remo repos. Know how can I upgrade 5.6 to 7? I need only one version. Thansk. – Handsome Nerd Dec 22 '15 at 08:00
  • @RemiCollet does `php70-php` work with httpd24 ? I'm getting conflict errors when trying to install it on an aws server with (only) httpd24 installed ? (it's requesting httpd as a dependency rather than httpd24) – goredwards Jun 23 '16 at 12:38
  • 1
    It works with "httpd" in base system. But if you use httpd24, you probably don't need "mod_php", rather use php-fpm (SetHandler to proxy is supported in recent versions) – Remi Collet Jun 23 '16 at 13:37
6

FYI for those looking to install PHP 7 using the remi-php70 repository (now that PHP 7.0.0 has been released), you can install packages using the same package names you know and love, for example:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • etc.
geerlingguy
  • 1,357
  • 2
  • 17
  • 29
  • How? php54 seems to be the default with remi-release-7.rpm? – giorgio79 Apr 09 '16 at 18:17
  • 1
    @giorgio79 if you enable `remi-php70.repo` and disable all other php versions from the remi repos, running `yum install php-fpm` by default uses 7.0, but this does NOT work with 7.1 (or other future releases) – sofly Jul 20 '16 at 22:07
  • My finding is: if more than one repository is configured in /etc/yum.repos.d that offers a particular php package, I get whatever the 1st installed (alphabetically) repository offers and to install other versions from the REMI repositories I must explicitly state the release, e.g. `yum install php74` instead of `php`. Once I remove all repositories but the one containing the release I want (in this case, `remi-php74`), running `yum install php` not only installs php from remi-php74, but also configures it as `/usr/bin/php` instead of `/usr/bin/php74.` – CODE-REaD Sep 30 '22 at 18:05
2

For anyone else trying to upgrade from PHP 5.6 to 7.0.1 on Centos 6.7:

I managed to get this working today almost like @mbalparda has listed but without using epel-release (though a few epel repos are enabled and in use)

I had php 5.6 from IUS (https://ius.io/GettingStarted/) repo (https://centos6.iuscommunity.org/ius-release.rpm) installed, so I removed them by:

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

and so

# yum erase php56u php56u-cli php56u-common php56u-mcrypt php56u-mysqlnd ...

followed by the listed commands:

# 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
site80443
  • 113
  • 1
  • 1
  • 7
  • 1
    mixing php70-* and php56u-* package in the same command seems very strange. Probably unwanted. And if you want a single version, using the SCL is not the simplest solution. Simplest is to enable remi-php70 repository and "yum update". Remember to try the new wizard: http://rpms.remirepo.net/wizard/ – Remi Collet Dec 31 '15 at 16:43
  • @RemiCollet thanks for pointing out the typo, edited the post to reflect the same - I meant to write php70-php-mysqlnd etc but copy-pasted / edited wrongly ... Also, the wizard seems superb. Thanks! – site80443 Jan 01 '16 at 12:36
  • This worked for me to downgrade from PHP 7.2 to PHP 7.0 – Vignesh Chinnaiyan May 20 '20 at 00:23
2

PHP70 also seems to install everything under /etc/opt/remi/php70/:

you'll need to run:

source /opt/remi/php70/enable
user1455180
  • 149
  • 2
  • 4
    You should elaborate. Why do you need to run that? What does it do? How does it help the OP find the Apache module? – Marki Apr 30 '16 at 13:34
  • If PHP 7 still doesn't work you'll need to run it to make it work. It will add a line in apache to load the php70 module. – user1455180 May 18 '16 at 06:34
  • 1
    this will stop working if you logout and log back in. this is the problem i am facing. – Edward Apr 28 '17 at 09:49
  • 1
    What the heck this one burned me on my 7.4 install! Added the PATH entries as needed and it's working. Sheesh no idea why it was designed like that! – emmdee Jan 06 '20 at 23:36
1

If you have older php version (like 5.6) installed, don't forget to do something like this:

cd /etc/httpd/conf.d/
mv php.conf php.conf.dis

Restart apache and that should do it.