Skip to content

Instantly share code, notes, and snippets.

@hollodotme
Last active August 11, 2022 06:23
Show Gist options
  • Save hollodotme/418e9b7c6ebc358e7fda to your computer and use it in GitHub Desktop.
Save hollodotme/418e9b7c6ebc358e7fda to your computer and use it in GitHub Desktop.
Installing php7-fpm with phpredis and xdebug extension on Ubuntu 14.04

Install php7.0-fpm

# remove php5 modules
apt-get autoremove --purge php5-*
# add php-7.0 source list by [Ondřej Surý](https://github.com/oerdnj)
add-apt-repository ppa:ondrej/php
# Update index
apt-get update
# Install php7.0-fpm with needed extensions
apt-get install php7.0-fpm php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-mysql php7.0-phpdbg php7.0-mbstring php7.0-gd php7.0-imap php7.0-ldap php7.0-pgsql php7.0-pspell php7.0-recode php7.0-snmp php7.0-tidy php7.0-dev php7.0-intl php7.0-gd php7.0-curl php7.0-zip php7.0-xml

UPDATE 2016-03-10

As mentioned by @jackmcpickle php-redis can now be installed with apt-get install php-redis and should be equivalent to the manual installation below. After installation phpinfo() says: Redis-Version 2.2.8-devphp7

Same with xdebug. apt-get install php-xdebug will install the newly released stable version 2.4.0 that has php7 support.

So the manual installations below are not needed any longer.


Build phpredis extension

git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout php7
phpize
./configure
make && make install
cd ..
rm -rf phpredis

Activate phpredis extension in fpm and cli

echo "extension=redis.so" > /etc/php/7.0/mods-available/redis.ini

ln -sf /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/fpm/conf.d/20-redis.ini

ln -sf /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/cli/conf.d/20-redis.ini

service php7.0-fpm restart

nginx vhost config

Replace unix:/var/run/php5-fpm.sock with unix:/var/run/php/php7.0-fpm.sock

service nginx restart

Install xdebug extension

# Download stable release of xdebug 2.4.0
wget -c "http://xdebug.org/files/xdebug-2.4.0.tgz"
# Extract archive
tar -xf xdebug-2.4.0.tgz

cd xdebug-2.4.0/

# build extension
phpize
./configure
make && make install

Enable the extension:

echo "zend_extension=xdebug.so" > /etc/php/7.0/mods-available/xdebug.ini

ln -sf /etc/php/7.0/mods-available/xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini
ln -sf /etc/php/7.0/mods-available/xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini

service php7.0-fpm restart

# Check it
php -m | grep -i xdebug

# should print:
xdebug
Xdebug
@jverdeyen
Copy link

Nice one! I've also added php7.0-curl when using Guzzle.

@emiglobetrotting
Copy link

How to enable ZTS to support pthread in this installation?

@hollodotme
Copy link
Author

AFAIK for enabling ZTS you need to build php on your own.

@terraboops
Copy link

Can anyone comment on the stability of php-redis in PHP7? It looks like they haven't released a stable build yet...

@hollodotme
Copy link
Author

Fixed ppa and mods-available path in redis section

@hollodotme
Copy link
Author

Added how to enable stable xdebug 2.4.0 extension

@jackmcpickle
Copy link

We're using php-redis with php7.0 and seems to be running ok.

@hollodotme
Copy link
Author

@tylermauthe Please see my update from 2016-03-10 above.
@jackmcpickle Thanks for sharing!

@nandes2062
Copy link

buenisimo muchas gracias por el aporte

@filipesiqueira
Copy link

helped me a lot. thank you so much!

@wbconnor
Copy link

For activating Redis extension with Apache2, I also had to do
sudo ln -sf /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/apache2/conf.d/20-redis.ini

@mamsysuser
Copy link

Nice one...thanks

@phpmongodb
Copy link

Installing shared extensions: /usr/lib/php/20151012/
cp: cannot create regular file '/usr/lib/php/20151012/#INST@10102#': Permission denied
Makefile:87: recipe for target 'install-modules' failed
make: *** [install-modules] Error 1

@sachindurgeb
Copy link

Thanks !

@Panoptik
Copy link

Panoptik commented Jul 6, 2017

Instead of creating symlinks manualy it would be better to use native tool phpenmod
phpenmod -v 7.0 redis

Installing shared extensions: /usr/lib/php/20151012/
cp: cannot create regular file '/usr/lib/php/20151012/#INST@10102#': Permission denied
Makefile:87: recipe for target 'install-modules' failed
make: *** [install-modules] Error 1

make && sudo make install

@usmanhalalit
Copy link

Thanks! That worked with PHP 7.1 too.

@stephane888
Copy link

Under certain conditions the following command does not work,
#apt-get install php-redis
#apt-get install php-xdebug
you must use (php 7.0)
#apt-get install php7.0-redis
#apt-get install php7.0-xdebug

@howtomakeaturn
Copy link

howtomakeaturn commented Jul 21, 2021

I love you all!

I love everyone who leaves a comment above that helps the others!

Thank you guys so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment