Ноя
10

php и ssh




  • Безымянный 18547

  • Установка PEAR


  • # aptitude install apache2 php5-cli libapache2-mod-php5 php5-mysql mysql-server-5.0 mysql-client-5.0
    Все :)

    В наличии апач+пхп+mysql :)
    Для некоторых скриптов мне понадобилось расширение php, которого нет в репозиториях.

    http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php

    # aptitude install php5-dev php5-cli php-pear buid-essential openssl-dev zlib1g-dev
    По ссылке предлагают качать и собирать libssh2
    Но библиотека (и dev) есть в стандартном репозитории

    # aptitude install libssh2-1 libssh2-1-dev
    # cd /usr/src
    # pecl bundle ssh2
    По идее дальше должно быть достаточно сделать
    # pecl build ssh2/package.xml
    (да и вообще две последние команды заменить pecl install -f ssh2), но...
    make: *** [ssh2.lo] Error
    /usr/src/ssh2/ssh2.c:481: error: too many arguments to function 'libssh2_session_methods'

    Объяснение что к чему и решение http://pecl.php.net/bugs/bug.php?id=11779
    -#if LIBSSH2_APINO < 200412301450
    +#if LIBSSH2_VERSION_NUM < 0x001000

    Еще раз
    # pecl build ssh2/package.xml

    Build complete.
    Don't forget to run 'make test'
    Installing shared extensions: /var/tmp/pear-build-il/install-ssh2-0.10/usr/lib/php5/20060613+lfs/
    running: find "/var/tmp/pear-build-il/install-ssh2-0.10" -ls
    256872 4 drwxr-xr-x 3 il il 4096 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10
    256900 4 drwxr-xr-x 3 il il 4096 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10/usr
    256901 4 drwxr-xr-x 3 il il 4096 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10/usr/lib
    256902 4 drwxr-xr-x 3 il il 4096 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10/usr/lib/php5
    256903 4 drwxr-xr-x 2 il il 4096 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10/usr/lib/php5/20060613+lfs
    256899 168 -rwxr-xr-x 1 il il 167814 Oct 19 15:56 /var/tmp/pear-build-il/install-ssh2-0.10/usr/lib/php5/20060613+lfs/ssh2.so

    Вроде бы все хорошо, только где ssh2.so?
    в ls /usr/lib/php5/20060613+lfs/ тоже нет, sudo find / -name ssh2.so -print ничего не находит.
    Скомпиляли и удалили...
    Сохраняем ssh2.c и полностью удаляем папку с ssh2 и ssh2*.tgz

    Снова
    # pecl bundle ssh2
    # cd ssh2
    # phpize && ./configure --with-ssh2 && make
    # find . -name ssh2.so -print | xargs ls -l
    -rwxr-xr-x 1 il src 167814 2007-10-19 16:28 ./.libs/ssh2.so
    -rwxr-xr-x 1 il src 167814 2007-10-19 16:28 ./modules/ssh2.so
    Ура!
    # sudo cp modules/ssh2.so /usr/lib/php5/20060613+lfs/
    Далее надо включить этот экстеншн. Обычно пишется, что это делается в php.ini . Но если все делать как сдесь указано - то надо создать файлик /etc/php5/conf.d/ssh2.ini с содержанием
    # cat ssh2.ini
    # configuration for php SSH2 module
    extension=ssh2.so

    Сборка в пакетик:
    Создать в /usr/src директорию php5-ssh. В ней - DEBIAN. В ней файлик control
    $ cat php5-ssh/DEBIAN/control
    Package: php5-ssh
    Version: 5.2.4-2
    Section: web
    Priority: optional
    Architecture: i386
    Depends: libc6 (>= 2.5), phpapi-20060613+lfs, php5-common (= 5.2.4-2), libssh2-1 (>= 0.17)
    Maintainer: Ilya I. Ashchepkov <koctep@gmail.com>
    Description: ssh2 module for php5
    This package provides ssh module for php
    далее файлики копируем /etc/php5/conf.d/ssh2.ini и /usr/lib/20060613+lfs/ssh2.so
    в эту директорию, так, что бы соблюдалось дерево.
    $ chmod -R 0755 php5-ssh
    $ dpkg-deb -b php5-ssh
    $ dpkg -i php5-ssh.deb
    Вроде бы все.
    P.S. Баги все эти давно уже извесны. Почему до сих пор нет официальных фиксов со стороны разработчиков php - не понятно.


























































  • Безымянный 18547

  • Установка PEAR



  • Социальные сети

    Рубрики

    Последние записи