LINUX.ORG.RU

Почему возникает ошибка при компиляции php? - решено

 , ,


1

1

Добрый день! Я пытаюсь установить php-7.4.6 на Slackware 14.2 При компиляции получаю ошибку:

/tmp/php-7.4.6/ext/imap/php_imap.c:5084:22: ошибка: несовместимые типы для «mm_login»
PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char **pwd, long trial)
                      ^
In file included from /usr/local/lib64/c-client/include/c-client.h:41:0,
                 from /tmp/php-7.4.6/ext/imap/php_imap.h:52,
                 from /tmp/php-7.4.6/ext/imap/php_imap.c:48:


Последнее исправление: Nikidze (всего исправлений: 2)

Ответ на: комментарий от Nikidze

Для нового PHP тебе нужно скачать две папки, и положить их рядом:
1) https://ftp.nluug.nl/os/Linux/distr/slackware/slackware-current/source/n/php/
2) https://ftp.nluug.nl/os/Linux/distr/slackware/slackware-current/source/n/alpine/
После чего chmod +x на их SlackBuild'ы, и запусти сборочный слакбилд для php, он начнет собирать alpine, после чего начнет сборку самого php.

При этом нужно будет обновить библиотеки, argon, libedit, обновил же? Хотя об этом напишется если что...

stasolog
()
Ответ на: комментарий от stasolog

Верней argon, libedit, pcre2 нужно лишь поставить, а не обновлять, они есть на slackbuilds.org, так что все просто. Советую поставить sbopkg, если у тебя еще его нету.

stasolog
()

Добавь в теги slackware. Со старыми версиями та же ошибка? Попробуй php 7.3.x - https://www.php.net/downloads.

Вообще рекомендую установить Docker, если можно конечно, что бы по одной комманде получать готовый, настроенный PHP любой версии.

stasolog
()
# rm -rf /usr/local/lib64/c-client/
# sbopkg -i pcre2 -i libedit -i argon2


Забираете с любого зеркала Slackware-current в, скажем, /tmp/bld, целиком каталоги:

source/l/oniguruma/ -> /tmp/bld/l/onigurama/
source/n/alpine/    -> /tmp/bld/n/alpine/
source/n/php/       -> /tmp/bld/n/php/

Обязательное условие — из каталога php/ доступен каталог ../alpine/
# cd /tmp/bld/l/oniguruma
# bash *Build
# upgradepkg --install-new /tmp/onigurama-*t?z

# cd /tmp/bld/n/php
# bash *Build
...
Slackware package /tmp/php-7.4.6-x86_64-1.txz created.
# upgradepkg --install-new /tmp/php-*t?z

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от bormant

Спасибо!

Все скомпилировалось. Одна проблема при запуске из консоли

PHP Warning:  PHP Startup: Unable to load dynamic library 'wddx.so'
Nikidze
() автор топика
Ответ на: Спасибо! от Nikidze

В исходниках php-7.4.6 нет расширения wddx (нет каталога ext/wddx/).

https://www.php.net/ChangeLog-7.php#7.4.0

Version 7.4.0

28 Nov 2019

 - WDDX:
   - Deprecated and unbundled the WDDX extension.


Где-то забыты старые конфиги с упоминанием wddx. Скорее всего это
/etc/php.ini
содержащий строку
extension=wddx.so

Эту строчку нужно удалить.

PS.
Сам файл при установке получается из /etc/php.ini-production, есть смысл взять новый за основу, дополнив своими настройками из старого php.ini, если такие настройки были.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.