Я заметил, что в сборке PHP, которую я использую для разработки, не включены расширения xmlreader и xmlwriter. Я понимаю, что мне нужно перекомпилировать PHP, чтобы включить эти расширения (или, может быть, более точно удалить отключение, поскольку они включены по умолчанию?), Но у меня проблема с установкой соединения в моей голове, откуда мне нужно запустить ./configure и создать команды.
Вот моя команда настройки из вывода phpinfo ():
'./configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' \
'--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' \
'--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' \
'--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' \
'--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' \
'--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' \
'--cache-file=../config.cache' '--with-libdir=lib' '--with-config-file-path=/etc' \
'--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' \
'--disable-rpath' '--without-pear' '--with-bz2' '--with-exec-dir=/usr/bin' \
'--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' \
'--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' \
'--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-pcre-regex=/usr' \
'--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' \
'--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' \
'--enable-sysvmsg' '--with-kerberos' '--enable-ucd-snmp-hack' '--enable-shmop' \
'--enable-calendar' '--without-mime-magic' '--without-sqlite' \
'--with-libxml-dir=/usr' '--enable-xml' '--with-system-tzdata' \
'--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--disable-dom' \
'--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' \
'--disable-xmlwriter' '--without-sqlite3' '--disable-phar' '--disable-fileinfo' \
'--disable-json' '--without-pspell' '--disable-wddx' '--without-curl' \
'--disable-posix' '--disable-sysvmsg' '--disable-sysvshm' '--disable-sysvsem'
Обратите внимание, что он был скомпилирован с помощью --disable-xmlreader и --disable-xmlwriter. Согласно документации на http://www.php.net/manual/en/ xmlwriter.installation.php, я вижу, что это расширение включено по умолчанию. Как мне "отменить" отключение этого расширения?
Моя цель - иметь возможность использовать набор классов PHPExcel (http://phpexcel.codeplex.com/) но получаю фатальную ошибку, потому что один из классов пытается расширить класс XMLWriter.
2 ответа
Если вы используете один из дистрибутивов с бинарными пакетами (например, openSUSE), вы можете просто установить пакет php-xmlwriter как расширение.
Другой вариант - просто получите исходный код своей версии и скомпилируйте xmlwriter как модуль, используя phpize (дайте мне знать, если потребуется дополнительная помощь).
Если это не сработает - вам нужно будет получить исходный код и скомпилировать все с нуля. В этом случае configure запускается из папки, в которую вы распаковываете исходный код.
Следует иметь в виду еще одну вещь - любые расширения, которые вы установили прямо сейчас - вам нужно будет либо скомпилировать, либо перестроить с использованием полученного вами источника (если версия php не совпадает - тогда вы можете использовать уже установленные).
И, наконец, дистрибутивы обычно содержат несколько двоичных файлов php (например, CGI, модуль apache, cli). Вам нужно будет убедиться, что это (или любая другая часть, которая вам нужна) также включена в ваших командах настройки.
Просто запустите команду configure в каталоге, в который вы извлекли исходный код (например, /home/user/php-5.3.5), и не включайте эти два параметра. То есть:
./configure -prefix=/usr ... <everything but --disable-xmlreader and --disable-xmlwriter>
locate php-5.3.2
и не вижу исходных файлов. Однако я нашел /var/cache/yum/remi/packages/php-5.3.2-2.el5.remi.i386.rpm. Должен ли я просто загрузить / извлечь последнюю версию и запустить на ней команду настройки?
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.