Обновление XCache на MAMP

Пытаясь скомпилировать Xcache версии 3.x для MAMP, phpize ищет предыдущую версию PHP, которая поставляется с Xcache 2.x.

пароль: /Applications/MAMP/bin/php/php5.5.3/xcache-3.1.0

$ phpize
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/main/php.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/Zend/zend_modules.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:        
Zend Module Api No:     
Zend Extension Api No:  

Проблема появилась, когда я обновился до OSX 10.9.


person staminna    schedule 04.11.2013    source источник


Ответы (1)


Сборка XCache против MAMP

  1. командная строка настройки
  2. загрузить и настроить источник php
  3. построить xcache

Командная строка настройки

Вам нужно настроить Bash для использования правильной команды php. Поскольку вы хотели собрать MAMP с 5.5.3, вы можете запустить следующую команду в командной строке:

$ export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH

Вы также можете добавить указанное выше в ~/.bashrc, чтобы в будущих сеансах использовалась правильная команда php — добавьте к .bashrc:

$ echo 'export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH' >> ~/.bashrc

Теперь, когда вы запускаете:

$ which php

Вы должны увидеть: /Applications/MAMP/bin/php/php5.5.3/php

Загрузите и настройте исходный код php

Загрузите исходный код php5.5.3 с http://www.php.net/releases/. MAMP не включает исходный код PHP, поэтому вам необходимо предоставить и настроить его при создании расширений из исходного кода.

Извлеките архив и переименуйте папку просто в php и поместите ее в /Applications/MAMP/bin/php/php5.5.3/include/ — это означает, что теперь у вас должен быть путь /Applications/MAMP/bin/php/php5.5.3/include/php/.

Когда вы бежите:

$ /Applications/MAMP/bin/php/php5.5.3/include/php/configure

Вы должны увидеть кучу вывода. Если вы видите ошибку, проверьте, правильно ли вы скопировали исходный код.

Теперь вы можете начать создавать расширения для PHP 5.5.3.

Примечание. Возможно, вам придется создать включаемую папку

Поскольку MAMP не поставляется с исходным кодом, они решили опустить папку include — продолжайте и создайте ее, поскольку это обычное место для поиска исходного кода php при создании расширений из исходного кода.

Если у вас есть скомпилированная версия php5.x, расположенная по адресу /path/to/php5.x/, исходный код php должен быть найден по адресу /path/to/php5.x/include/php/.

Сборка XCache из исходников

После загрузки исходного кода XCache распакуйте архив и cd в него:

$ cd /path/to/xcache-source-code

Предполагая, что вы загрузили xcache-3.1.0 в папку «Загрузки» OSX, вы можете запустить это:

$ cd ~/Downloads/xcache-3.1.0

Из папки с исходным кодом XCache выполните следующие команды, чтобы собрать и установить расширение Xcache:

$ phpize
$ ./configure --enable-xcache --with-php-config=/Applications/MAMP/bin/php/php5.5.3/bin/php-config
$ make 
$ make install

Если все прошло успешно, вы увидите xcache.so в каталоге расширений.

Теперь вы можете включить расширение, добавив extension=xcache.so в свой php.ini. Если вы используете MAMP Pro, важно отредактировать php.ini через Файл > Редактировать шаблон > php.[версия].ini — в противном случае, если вы используете Basic, вы можете запустить этот однострочный код:

$ open -a TextEdit `php -i | grep 'Load.*Config.*File.*=>' | sed s/'.* => '/''/`

Теперь в php.ini найдите другие директивы «расширения» и добавьте extension=xcache.so в список.

Убедитесь, что он установлен, запустив:

$ php -i | grep xcache

Вы должны увидеть настройки Xcache. При перезапуске MAMP XCache будет включен.

Спасибо JT.

С 5.5.3 отключить Zend OPcache

MAMP 2.2 поставляется с Zend OPcache включен для PHP 5.5.3. Это может вызвать проблемы для XCache.

Если вы используете XCache, обязательно отключите Zend OPcache. В php.ini найдите *[OPcache] и закомментируйте строку:

zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/…/opcache.so"

как

;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/…/opcache.so"
person Mark Fox    schedule 23.11.2013
comment
Итак, во-первых, я не вижу включаемую папку. У меня есть папка lib. Я сделал то же самое, но в папке lib. Во-вторых, я полностью теряю тебя на cd xcache-dir. У меня нет xcache-dir! - person Plot; 12.12.2013
comment
Обновлен ответ на ваши вопросы. - person Mark Fox; 13.12.2013