2017-01-18 3 views
0

Я бегу litespeed 5.1.11 на моем Centos 6.8 VPS (PHP 5.6.29). Я использую cUrl в своем php-коде. Когда я запускаю свой код при просмотре в качестве веб-страницы, все прекрасно работает, но когда я запускаю команду, это дало мне ошибку:
Fatal error: Call to undefined function curl_init()
Как это исправить?litespeed - Fatal error: Call to undefined function curl_init()

компилировать мой PHP с этим конфигурационными параметрами:

'./configure' '--prefix=/usr/local/lsws/lsphp5' '--disable-fileinfo' '--with-bz2' '--enable-zip' '--with-curl' '--with-mysql' '--with-mysql-sock' '--with-sqlite' '--with-tidy' '--with-xpm-dir' '--enable-pdo' '--with-pdo-sqlite' '--with-pdo-mysql' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-soap' '--with-gettext' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-mcrypt' '--with-mysqli' '--with-openssl' '--with-pic' '--with-png-dir' '--with-zlib' '--with-pcre-regex' '--with-gd' '--enable-shmop' '--enable-track-vars' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-magic-quotes' '--enable-mbstring' '--with-iconv' '--enable-json' '--with-litespeed'

И раздел Curl в phpinfo:

+1

Похоже, что вы используете два отдельных php-движка: один для вашей «веб-страницы», поэтому, скорее всего, это модуль внутри некоторого http-сервера, а один для «команды», поэтому версия CLI. Обычно для них существуют отдельные конфигурации. Вероятно, 'cURL' не был загружен/включен для версии CLI. – arkascha

+0

@arkascha Спасибо за комментарий. Я использую эту команду: '/ usr/local/bin/lsphp/my/code.php'. Как я могу найти конфигурационный файл CLI? –

+1

Вы получаете путь от информации, предоставленной движком: '/ usr/local/bin/php -i | grep php.ini' – arkascha

ответ

0

Я решить мою проблему. Я должен добавить это к Configure Parameters.

'--exec-prefix=/usr' '--with-exec-dir=/usr/bin'

Теперь я компилирую мой PHP с этим настройки параметров:

--disable-fileinfo --with-bz2 --enable-zip --with-curl --with-mysql --with-mysql-sock --with-sqlite --with-tidy --with-xpm-dir --enable-pdo --with-pdo-sqlite --with-pdo-mysql --enable-bcmath --enable-calendar --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-soap --with-gettext --with-jpeg-dir=/usr --with-kerberos --with-mcrypt --with-mysqli --with-openssl --with-pic --with-png-dir --with-zlib --with-pcre-regex --with-gd --enable-shmop --enable-track-vars --enable-sockets --enable-sysvsem --enable-sysvshm --enable-magic-quotes --enable-mbstring --with-iconv --enable-exif --enable-ucd-snmp-hack --enable-xml --enable-json --libdir=/usr/lib64 --with-libdir=lib64 --exec-prefix=/usr --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-pcre-regex=/usr --with-gmp --with-layout=GNU --with-system-tzdata --with-apxs2=/usr/sbin/apxs --with-libxml-dir=/usr

Теперь я использую /usr/bin/lsphp /my/code.php или php /my/code.php запустить свой код с командной строкой.

+1

См. https://rpms.remirepo.net/wizard/, и установите php-litespeed ... гораздо проще –

+0

@RemiCollet Спасибо. Я тестирую его, но он показывает мне: 'Нет пакета php-litespeed. ' –

+0

https://rpms.remirepo.net/enterprise/6/php56/x86_64/repoview/php-litespeed.html –

1

После пересборки PHP, вы должны получить оба lsphp и PHP файлы. Если префикс был/usr/local/lsws/lsphp5, ваши скомпилированные двоичные файлы должны быть в/usr/local/lsws/lsphp5/bin /, тогда для CLI попробуйте php с вашим кодом.

/USR/местные/LSws/lsphp5/bin/PHP /my/code.php

/USR/местные/бен/lsphp или/USR/местные/бен/PHP не выглядеть, как ваш скомпилированы, поскольку они не находятся в папке префикса.

Кроме того, я не знаю, есть ли у вас какие-либо конкретные причины для компиляции PHP самостоятельно, поскольку большинство людей просто будут использовать пакеты RPM либо из репозитория LiteSpeed, либо из репозитория Remi. Установка намного проще, и она должна быть права.

https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:rpm

Смежные вопросы