Неустранимая ошибка: файл 'ext / standard / php_smart_str.h' не найден - PullRequest
1 голос
/ 06 марта 2019

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

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

В конце концов, я застрял с PECL, неспособным завершить intal, потому что не могу найти файл 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 Ответ

0 голосов
/ 13 марта 2019

Хорошо, вместо использования 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, ICU (http://site.icu -project.org / ), Autoconf, переустановил заголовочные файлы инструментов разработчика и, наконец, установил Intl расширение с использованием phpize.

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

...