ФорумПрограммированиеPHP для идиотов → проверка наличия модуля на сервере

проверка наличия модуля на сервере

  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 20 февраля 2010 г. 13:08


    exec('/usr/local/bin/convert', $res);

    по идее если не возвращает ничего(пустой $res), значит модуля нет.
    однако и рабочие(установленные) модули также ничего не возвращают - не все.
    как гарантированно прочекать нужные на предмет наличия?
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 20 февраля 2010 г. 13:13, спустя 4 минуты 45 секунд

    Проверь наличие любой функции из модуля:
    echo function_exists('mysql_connect') ? 'mysql exists' : 'mysql not exists';
    echo function_exists('imagecreate') ? 'gd exists' : 'gd not exists';
    // etc.
    Work, buy, consume, die
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 20 февраля 2010 г. 13:18, спустя 4 минуты 51 секунду

    не вариант
    у меня их 7-10 (модулей)
    Спустя 240 сек.
    короче вопрос сводится к тому почему exec не возвращает вывод, при рабочем пути у некоторых модулей
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 20 февраля 2010 г. 13:23, спустя 4 минуты 58 секунд

    тока заметил, какой нафик exec, exec вызывает из php внешнюю программу, ты что там, бибилиотеки вызываешь? =)

    А, и наличие в смысле есть ли вообще, а не загружено ли?
    О, что нашёл http://ru2.php.net/manual/en/function.extension-loaded.php
    наверно можно как-то так:
    if (file_exists('/usr/local/bin/convert/', $res))
    {
       dl($res);
    }
    else
    {
       throw new Exception('Extension "' . $res . '" not found');
    }

    но говокод какой-то получается, если переименовать расширение, то получится гавно на палке
    Work, buy, consume, die
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 февраля 2010 г. 13:24, спустя 1 минуту 26 секунд

    /usr/local/bin/convert
    imagemagick?
    adw/0
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 20 февраля 2010 г. 13:34, спустя 9 минут 50 секунд

    работает
    file_exists('/usr/local/bin/convert/')

    :)
    не ищем легких путей епт.
    Спустя 181 сек.
    adw0rd,
    да
    и куча других
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 20 февраля 2010 г. 13:37, спустя 3 минуты 37 секунд

    ну ты понял, там точка должна быть между путём и именем расширения, путь тоже лучше не хардкодить, а брать из конфика php
    $extPath = ini_get('extension_dir') . DIRECTORY_SEPARATOR;
    if (file_exists($extPath . $extName)) // …
    Work, buy, consume, die
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 20 февраля 2010 г. 13:48, спустя 10 минут 59 секунд

    пути жестко прописаны в конфиге
    их просто надо было тупо прочекать

Пожалуйста, авторизуйтесь, чтобы написать комментарий!