Перекомпиляция PHP с xmlreader, xmlwriter включен - PullRequest
0 голосов
/ 08 марта 2011

Я заметил, что в PHP make, который я использую на устройстве dev, не включены расширения xmlreader и xmlwriter. Я понимаю, что мне нужно перекомпилировать PHP, чтобы включить эти расширения (или, может быть, точнее снять отключение, поскольку они включены по умолчанию?), Но у меня возникла проблема с установлением соединения в моей голове, откуда мне нужно запустить ./configure и сделать команды.

Вот моя команда 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 ]

2 голосов
/ 08 марта 2011

Если вы используете один из дистрибутивов с бинарными пакетами (например, openSUSE) - вы просто хотите установить пакет php-xmlwriter в качестве расширения.

Другой вариант - просто получить исходный код вашей версии.и скомпилируйте xmlwriter как модуль, используя phpize (дайте мне знать, если потребуется дополнительная помощь по этому вопросу).

Если это не сработает - вам нужно получить исходный код и скомпилировать все с нуля.В этом случае configure запускается из папки, в которую вы извлекаете исходный код.

Дополнительная информация, которую следует иметь в виду - любые расширения, которые вы установили прямо сейчас, - вам нужно либо скомпилировать их, либо пересобрать, используяисходный код, который вы получаете (если не совпадает версия php - тогда вы можете использовать уже установленные).

И, наконец, дистрибутивы обычно поставляются с несколькими двоичными файлами php (например, CGI, модуль apache, cli).Вам также нужно убедиться, что это (или любая другая нужная вам часть) включено в ваших командах настройки.

1 голос
/ 08 марта 2011

Просто запустите команду configure в каталоге, в который вы распаковали исходный код (например, /home/user/php-5.3.5), и не включайте эти два параметра. I.e.:

./configure -prefix=/usr ... <everything but --disable-xmlreader and --disable-xmlwriter>
...