以前の記事
php 7.4.x ソース構築時、libzipのエラー
php 7.4.x ソース構築時、libzipのエラーで手間取ったので、そのエラーの覚え書きを・・・ 2021/5/8更新、↓この記事の内容が正しいです。 php configure ./configure --with-apxs2=/us...
は、間違いでした。
以下が本来の手法(のはず(汗))です・・・
libzip 1.7.3
libzip-1.7.3(この時点で最新版)
を
cmake3 -DCMAKE_INSTALL_PREFIX=/usr/local/libzip make make install
↑ とインストール
/usr/local/libzip/lib64/pkgconfig/
以下に「libzip.pc」があるのだが・・・
libzip.pc
の中身は、
prefix=/usr/local/libzip exec_prefix=${prefix} bindir=${exec_prefix}/bin libdir=${exec_prefix}/lib64 includedir=${prefix}/include zipcmp=${exec_prefix}/bin/zipcmp Name: libzip Description: library for handling zip archives Version: 1.7.3 Libs: -L${libdir} -lzip Libs.private: -lbz2 -llzma -lssl -lcrypto -lz Cflags: -I${includedir}
php configure
configure設定時に、
# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/:/usr/local/libzip/lib64/pkgconfig/"
↑ と、libzip.pc の位置を環境変数で指定する(後半の指定がlibzipのもの)
# export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/libzip/lib64/pkgconfig/"
↑ と行っても大丈夫。
php 7.4.xのconfigure時に、「–with-zip」というオプションで行えばいいような気がするが・・・
./configure --with-apxs2=/usr/local/apache2/bin/apxs -with-mysqli --with-pdo-mysql --enable-mbstring --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-gd --with-jpeg --with-webp --with-xpm --with-zlib --with-zip --with-snmp --enable-sockets --with-freetype --enable-cgi --with-curl --enable-intl --with-gettext --with-openssl --enable-bcmath --enable-exif
上記、configureは、正常終了する
php make エラー
しかし、make時に
-lsqlite3 -lxml2 -lnetsnmp -lssl -lssl -lcrypto -lm -lcrypt -lxml2 -lxml2 -lxml2 -lzip -lz -lssl -lcrypto -lcrypt -o sapi/cli/php ext/zip/.libs/php_zip.o: In function `php_zip_status_sys': /root/src/php-7.4.19/ext/zip/php_zip.c:439: undefined reference to `zip_get_error' /root/src/php-7.4.19/ext/zip/php_zip.c:440: undefined reference to `zip_error_code_system' /root/src/php-7.4.19/ext/zip/php_zip.c:441: undefined reference to `zip_error_fini' ext/zip/.libs/php_zip.o: In function `php_zip_status': /root/src/php-7.4.19/ext/zip/php_zip.c:421: undefined reference to `zip_get_error' /root/src/php-7.4.19/ext/zip/php_zip.c:422: undefined reference to `zip_error_code_zip' /root/src/php-7.4.19/ext/zip/php_zip.c:423: undefined reference to `zip_error_fini' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setEncryptionName': /root/src/php-7.4.19/ext/zip/php_zip.c:2252: undefined reference to `zip_file_set_encryption' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setCompressionName': /root/src/php-7.4.19/ext/zip/php_zip.c:2369: undefined reference to `zip_set_file_compression' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getExternalAttributesIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2213: undefined reference to `zip_file_get_external_attributes' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getExternalAttributesName': /root/src/php-7.4.19/ext/zip/php_zip.c:2184: undefined reference to `zip_file_get_external_attributes' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setExternalAttributesIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2148: undefined reference to `zip_file_set_external_attributes' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setExternalAttributesName': /root/src/php-7.4.19/ext/zip/php_zip.c:2123: undefined reference to `zip_file_set_external_attributes' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getCommentName': /root/src/php-7.4.19/ext/zip/php_zip.c:2313: undefined reference to `zip_file_get_comment' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getCommentIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2337: undefined reference to `zip_file_get_comment' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setCommentName': /root/src/php-7.4.19/ext/zip/php_zip.c:2062: undefined reference to `zip_file_set_comment' /root/src/php-7.4.19/ext/zip/php_zip.c:2062: undefined reference to `zip_file_set_comment' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setCommentIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2090: undefined reference to `zip_file_set_comment' ext/zip/.libs/php_zip.o: In function `c_ziparchive_renameName': /root/src/php-7.4.19/ext/zip/php_zip.c:2509: undefined reference to `zip_file_rename' ext/zip/.libs/php_zip.o: In function `c_ziparchive_renameIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2479: undefined reference to `zip_file_rename' ext/zip/.libs/php_zip.o: In function `c_ziparchive_addFromString': /root/src/php-7.4.19/ext/zip/php_zip.c:1868: undefined reference to `zip_file_add' ext/zip/.libs/php_zip.o: In function `c_ziparchive_addEmptyDir': /root/src/php-7.4.19/ext/zip/php_zip.c:1646: undefined reference to `zip_dir_add' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getStatusString': /root/src/php-7.4.19/ext/zip/php_zip.c:1603: undefined reference to `zip_get_error' /root/src/php-7.4.19/ext/zip/php_zip.c:1604: undefined reference to `zip_error_strerror' ext/zip/.libs/php_zip.o: In function `php_zip_object_free_storage': /root/src/php-7.4.19/ext/zip/php_zip.c:1042: undefined reference to `zip_discard' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setEncryptionIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2276: undefined reference to `zip_file_set_encryption' ext/zip/.libs/php_zip.o: In function `c_ziparchive_setCompressionIndex': /root/src/php-7.4.19/ext/zip/php_zip.c:2393: undefined reference to `zip_set_file_compression' ext/zip/.libs/php_zip.o: In function `php_zip_add_file': /root/src/php-7.4.19/ext/zip/php_zip.c:304: undefined reference to `zip_file_add' ext/zip/.libs/php_zip.o: In function `c_ziparchive_close': /root/src/php-7.4.19/ext/zip/php_zip.c:1550: undefined reference to `zip_discard' ext/zip/.libs/php_zip.o: In function `zm_startup_zip': /root/src/php-7.4.19/ext/zip/php_zip.c:3197: undefined reference to `zip_libzip_version' ext/zip/.libs/php_zip.o: In function `c_ziparchive_getStatusString': /root/src/php-7.4.19/ext/zip/php_zip.c:1605: undefined reference to `zip_error_fini' ext/zip/.libs/php_zip.o: In function `zm_info_zip': /root/src/php-7.4.19/ext/zip/php_zip.c:3231: undefined reference to `zip_libzip_version' ext/zip/.libs/zip_stream.o: In function `php_zip_ops_read': /root/src/php-7.4.19/ext/zip/zip_stream.c:63: undefined reference to `zip_file_get_error' /root/src/php-7.4.19/ext/zip/zip_stream.c:65: undefined reference to `zip_error_strerror' /root/src/php-7.4.19/ext/zip/zip_stream.c:66: undefined reference to `zip_error_fini' collect2: error: ld returned 1 exit status make: *** [sapi/cli/php] Error 1
↑ これでもエラーとなる
どうやってもうまくいかない。
configure時の
--with-libzip --enable-zip --with-libzip=DIR --without-libzip
などのオプションは、7.4.xxでは無くなっている
libzip 0.11では、make可能であるが、古い・・・
↑と、libzip 0.11では正常に設定ができる。
peclでインストール
./configure --with-apxs2=/usr/local/apache2/bin/apxs -with-mysqli --with-pdo-mysql --enable-mbstring --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-gd --with-jpeg --with-webp --with-xpm --with-zlib --with-snmp --enable-sockets --with-freetype --enable-cgi --with-curl --enable-intl --with-gettext --with-openssl --enable-bcmath --enable-exif --with-pear
↑ と、php、configure時、zipオプションを外す
–with-pear
で、
/usr/local/bin/pecl
がインストールされる
# make (略) crypto -lm -lcrypt -lxml2 -lxml2 -lxml2 -lz -lssl -lcrypto -lcrypt -o sapi/cgi/php-cgi Generating phar.php Generating phar.phar PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled. invertedregexiterator.inc directorygraphiterator.inc directorytreeiterator.inc clicommand.inc pharcommand.inc phar.inc Build complete. Don't forget to run 'make test'.
↑ コンパイル出来ました。
# pecl install -f zip WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update downloading zip-1.19.2.tgz ... Starting to download zip-1.19.2.tgz (325,915 bytes) ..................................................................done: 325,915 bytes 19 source files, building (略) Build process completed successfully Installing '/usr/local/lib/php/extensions/no-debug-zts-20190902/zip.so' install ok: channel://pecl.php.net/zip-1.19.2 configuration option "php_ini" is not set to php.ini location You should add "extension=zip.so" to php.ini
↑と、peclコマンドで、zipを入れます。
そして「php.ini」に「extension=zip.so」を追加します。
↑ libzip 1.7.3
の最新版が入りました。