Giter Club home page Giter Club logo

Comments (25)

luiscoms avatar luiscoms commented on May 9, 2024 42

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.

GuillaumeSeren avatar GuillaumeSeren commented on May 9, 2024 16

This works great, thanks @luiscoms

# Enable and configure xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug

from php.

jaredm4 avatar jaredm4 commented on May 9, 2024 12

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.

ekandreas avatar ekandreas commented on May 9, 2024 7

'''
RUN pecl install xdebug-beta &&
docker-php-ext-enable xdebug
'''

from php.

sazo avatar sazo commented on May 9, 2024 6

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

kojiromike avatar kojiromike commented on May 9, 2024 5

@jaredm4 it might not save much effort, but it would simplify things for users expecting a consistent interface for installing extensions.

from php.

starikovs avatar starikovs commented on May 9, 2024 4

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.

j16sdiz avatar j16sdiz commented on May 9, 2024 3

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.

helderco avatar helderco commented on May 9, 2024 1

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.

rainbow-alex avatar rainbow-alex commented on May 9, 2024 1
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.

ephrin avatar ephrin commented on May 9, 2024

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.

captn3m0 avatar captn3m0 commented on May 9, 2024

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.

starikovs avatar starikovs commented on May 9, 2024

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

jjelev avatar jjelev commented on May 9, 2024

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

helderco avatar helderco commented on May 9, 2024

@j16sdiz have you tried mine?

from php.

roelvanduijnhoven avatar roelvanduijnhoven commented on May 9, 2024

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.

jaredm4 avatar jaredm4 commented on May 9, 2024

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

roelvanduijnhoven avatar roelvanduijnhoven commented on May 9, 2024

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.

jaredm4 avatar jaredm4 commented on May 9, 2024

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.

ephrin avatar ephrin commented on May 9, 2024

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

ekandreas avatar ekandreas commented on May 9, 2024

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.

yosifkit avatar yosifkit commented on May 9, 2024

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.

abdelwahabzbal avatar abdelwahabzbal commented on May 9, 2024

thank you @ekandreas 👍

from php.

tianon avatar tianon commented on May 9, 2024

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.

ztwo79 avatar ztwo79 commented on May 9, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.