Неустранимая ошибка: файл ‘ext / standard /php_smart_str.h’ не найден

#php #macos #cakephp #pecl #intl

#php #macos #cakephp #pecl #intl

Вопрос:

Я скачал macOS Mojave и выполнил чистую установку на свой MacBook Pro середины 2012 года. Установлен XCode с помощью инструментов командной строки. Есть родной Apache и PHP, работающие с PEARL, PECL и последней версией ICU (63.1) для последующего использования расширения Intl.

Но все попытки международной установки потерпели неудачу. Перед чистой установкой я обнаружил intl.so на флеш-накопителе и использовал ICU версии 54, но это не лучший способ заставить вещи работать в среде разработки.

В конце концов, я застрял с PECL, неспособным завершить intall из Intl, потому что не могу найти файл php_smart_str.h.

Я также переустановил заголовочные файлы инструментов разработчика:

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Возможно ли создать среду разработки без Homebrew?

Когда я запускаю на терминале:

sudo pecl install intl

Возвращает следующее:

/private/tmp/pear/install/intl/intl_error.h:24:10: fatal error: 'ext/standard/php_smart_str.h' file not found

Сразу после создания libtool и запуска: make.

Комментарии:

1. Попробуй сначала побежать sudo pecl update-channels . ( src )

2. Спасибо @aynber но я тоже пробовал это и не сработало, та же ошибка.

Ответ №1:

Хорошо, вместо использования homebrew я действительно хотел использовать только родной apache и php, предварительно установленные на моем MacBook Pro с Mac OS Mojave, пытаясь поддерживать максимально чистую среду разработки, возможную для использования CakePHP.

Итак, на официальном сайте Pecl ( https://pecl.php.net/package/intl ), ясно, что пакет Intl больше не поддерживается и был заменен. Начиная с PHP 5.3.0, вам не нужно использовать Pecl для установки расширения intl, оно поставляется в комплекте с PHP.

Но он отсутствует при встроенной установке PHP 7.1.24 в Mac OS Mojave.

Затем я скачал PHP 7.1 с php.net, установлены инструменты командной строки XCode, отделение интенсивной терапии (http://site.icu-project.org /), Автоконфискация, переустановил заголовочные файлы инструментов разработчика и, наконец, установил расширение Intl с помощью phpize.

Важно: вам придется отключить SIP.