Comments (25)
Add in your Dockerfile
# Enable and configure xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
Reference: http://stackoverflow.com/questions/30594804/
from php.
This works great, thanks @luiscoms
# Enable and configure xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
from php.
While we could add a docker-php-pecl-* type script, it wouldn't save you any effort. It's still a simple one liner in your Dockerfile to do it currently.
Installing php-redis and xdebug:
RUN pecl install -o -f redis xdebug \
&& rm -rf /tmp/pear \
&& echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini \
&& echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so" > /usr/local/etc/php/conf.d/xdebug.ini \
If we did make a script, it really would just automate the last portion of my paste above.
from php.
'''
RUN pecl install xdebug-beta &&
docker-php-ext-enable xdebug
'''
from php.
+1 got the same problem installing xdebug.
I ended up installing git via apt-get and clone xdebug repos into /usr/src/php/ext/ and then use docker-php-ext-install xdebug.
Worked like a charm.
from php.
@jaredm4 it might not save much effort, but it would simplify things for users expecting a consistent interface for installing extensions.
from php.
BTW, I installed php-redis extension this way:
RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/2.2.7.tar.gz \
&& tar xfz /tmp/redis.tar.gz \
&& rm -r /tmp/redis.tar.gz \
&& mv phpredis-2.2.7 /usr/src/php/ext/redis \
&& docker-php-ext-install redis
I think any other php extension can be installed the same way and without PECL which I don't have by default in ubuntu.
Details is here http://stackoverflow.com/a/31623759/202550
from php.
Need a docker-php-pecl-install
script.
The example have "magic" constant like "no-debug-non-zts-20121212". Would be great if the installer script can handle that without hardcoding.
from php.
As mentioned on #115, I use my own docker-php-pecl-install script.
I like the reduced boilerplate:
FROM php:5.6-fpm
COPY docker-php-pecl-install /usr/local/bin/
RUN docker-php-pecl-install xdebug-2.3.3 uploadprogress-1.0.3.1 redis-2.2.5
from php.
Failed loading /usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so: /usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so: cannot open shared object file: No such file or directory
@ephrin please add that one_line_install_specific_extension_from_pecl_script :)
from php.
thanks.
the issue could be closed?
or we could really make the issue as one_line_install_specific_extension_from_pecl_script job?
from php.
To install xdebug from source, I used this (found this issue later)
cd
curl "http://xdebug.org/files/xdebug-2.3.3.tgz" -o xdebug.tar.gz
cd xdebug-2.3.3
phpize
./configure --enable-xdebug --with-php-config=/usr/local/bin/php-config
echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"' > /usr/local/etc/php/conf.d/xdebug.ini
from php.
@jaredm4, thanks for your answer. I'm looking for a way of installing php-redis and I have a few questions. Do I need to install any dependencies before installing redis that way (I use FROM php:fpm)? and do I need to install pecl
or it's already included? Thanks.
from php.
@lazycommit did you install mongo successfully?
RUN pecl install mongo
ADD mongo.ini /usr/local/etc/php/conf.d/
mongo.ini:
extension=mongo.so
Doesn't work for me on php:5.6-fpm
from php.
@j16sdiz have you tried mine?
from php.
Got the same error when I tried this. You finally nailed it @rainbow-alex ? If so: got any hint on how to fix this?
from php.
@roelvanduijnhoven @rainbow-alex More than likely, the folder name changed. Go to /usr/local/lib/php/extensions/ after installing xdebug, take note of the new folder name containing xdebug, and install it like I pasted above (without that custom script).
from php.
Thanks. That solved it.
@rainbow-alex If you install xdebug directly on the container it will tell what the filename is. Thus docker run pecl install -o -f xdebug
will yield the correct path on the console.
from php.
Granted, not a good solution as it prevents the Dockerfile from being portable. A pecl install script would be nice, that could determine that path when installing and prevent that issue.
from php.
@rainbow-alex not topical anymore. Pecl installs normally and existent scripts are good as is to enable an extension.
For more diving into the issue (and some mixin of extension installation flags issue) there are two variants of feature todos:
a) implement some script (interceptor) for pecl to be able to pass config flags for its prompt;
or (as the replacement of ugly a.:)
b) use pecl or natively make a download of extension to be able to pass flags to ./configure
by docker-php-ext-*
scripts as already provided.
**For inspiration look into phpbrew :)
from php.
This doesn't work with php:7.0.1-apache:
RUN pecl install xdebug && \
docker-php-ext-enable xdebug
I think that xdebug is in some kind of beta right now for PHP7. Correct?
from php.
Looks like it still is just a release candidate:
[2015-12-12] - Xdebug 2.4.0RC3 is out!
This is the third release candidate of the 2.4 series. The 2.4 series adds support for PHP 7
http://xdebug.org/
from php.
thank you @ekandreas 👍
from php.
Thanks for all the discussion and useful information! I'm closing since there's nothing to change in the image (given that the existing scripts handle this reasonably well), but this thread should serve as a useful reference for folks looking for help doing this kind of thing in the future. 👍
from php.
I have a project using old mongo extension which is deprecated . Unable to install by pecl. Got a error message "No releases for package "pecl/mongo" exist" when I tried to install mongo extension by running
pecl install mongo
I end up install mongo extension manually. Below is work for me.
RUN apt-get update \
&& apt-get -y install libssl-dev \
&& curl -L -o /tmp/mongo.tar.gz https://github.com/mongodb/mongo-php-driver-legacy/archive/1.6.14.tar.gz \
&& tar xfz /tmp/mongo.tar.gz -C /tmp/ \
&& mkdir -p /usr/src/php/ext/mongo \
&& mv /tmp/mongo-php-driver-legacy-1.6.14/* /usr/src/php/ext/mongo \
&& rm -r /tmp/mongo.tar.gz /tmp/mongo-php-driver-legacy-1.6.14 \
&& cd /usr/src/php/ext/mongo \
&& phpize \
&& ./configure \
&& make all \
&& docker-php-ext-install mongo\
&& docker-php-ext-enable mongo\
from php.
Related Issues (20)
- Possibility to use additional flags in configure HOT 1
- Accessing apache files HOT 1
- [php:8.3-apache] apt-get update is not working anymore (GPG error) HOT 1
- [php:8.3-apache] HIGH Vulnerability on apache <=2.4.57 HOT 4
- curl error on php:8.2-apache (bookworm) HOT 1
- Add Support for shmop HOT 1
- Remove archive php.tar.xz from final images HOT 1
- php8.2.15 removed ftp extension HOT 12
- Connectivity issue after php:8.0-fpm HOT 13
- Error during build prod.Dockerfile
- Changes on httpd without reload HOT 6
- Configuring PHP directives without custom images HOT 5
- Can't install php7.4-sybase package on php:7.4-apache-bullseye HOT 3
- iconv ASCII//TRANSLIT invalid argument HOT 2
- Php
- Add mlocati/docker-php-extension-installer to base image HOT 1
- Update apache 2.4.57-2 to 2.4.58-1 HOT 4
- ext-sockets won't compile in official Docker image 8.3.3-fpm-alpine3.19 HOT 2
- Interpreter does not resolve builtin functions when provide nonexistente file to opcache.preload option HOT 1
- Can't rename the php.ini-development HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from php.