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

Для нового 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 ()
# 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)
Ответ на: Спасибо! от 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)