Как установить расширение PHP OCI8 в Mac OS X 10.8 Mountain Lion

Мне нужно использовать модуль OCI8 для PHP на Mountain Lion, который будет использовать мгновенный клиент oracle, который в настоящее время поддерживается только как 32-битный.

Я установил 32-битную версию мгновенного клиента oracle и протестировал ее с помощью sqlplus, и все кажется хорошо.

Однако теперь мне нужно заставить работать PHP-расширение OCI8, что привело меня к созданию 32-битного PHP-модуля для apache с помощью homebrew. Опять же, похоже, что это работает, но, насколько я понимаю, теперь потребуется 32-битная сборка Apache, встроенная версия кажется только 64-битной. Я не могу понять, как собрать 32-разрядный Apache, и я даже не уверен, что это требуется, поэтому я в некоторой степени в растерянности. Любая помощь очень ценится Аластером

РЕДАКТИРОВАТЬ:

На данный момент я отказался от собственной установки в пользу виртуализированной разработки с использованием Vagrant и Ubuntu: https://github.com/afhole/vagrant-lamp


person Alastair    schedule 25.10.2012    source источник


Ответы (3)


Перейдите туда: http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html

Используйте версию файлов 11.2.0.3.0 (64-разрядная).

РЕДАКТИРОВАТЬ: В приведенных ниже инструкциях измените строку:

sudo ln -s libclntsh.dylib.10.1 libclntsh.dylib

to

sudo ln -s libclntsh.dylib.11.1 libclntsh.dylib

Инструкции по установке находятся здесь: http://www.enavigo.com/2012/01/04/enables-oracle-oci8-php-extension-on-os-x-snow-leopard/

Он работает на моем Macbook Air под 10.8.2

person Brice Miramont    schedule 13.03.2013
comment
Потрясающе, похоже, что Oracle наконец-то выпустила 64-битные драйверы для Mac (интересно, когда именно), это было основным препятствием ранее - person Alastair; 13.03.2013
comment
Я написал об этом сообщение в блоге на установить расширение OCI8 в среде homebrew - person GiDo; 09.04.2013

Я пытаюсь сделать то же самое, и ответы в этой теме, похоже, работают:

Принудительно запускать Apache HTTPD в 32-битном режиме

Например. ты мог бежать

(sudo) arch -i386 apachectl start
(sudo) arch -i386 apachectl stop
(sudo) arch -i386 apachectl restart

чтобы заставить Apache работать в 32-битном режиме.

Если вы всегда хотите работать в 32-битном режиме, вы можете добавить команду arch к новому массиву <string> в <key>ProgramArguments</key> в /System/Library/LaunchDaemons/org.apache.httpd.plist.

person Samuel Lindblom    schedule 03.11.2012
comment
Я не уверен, что он может работать на Mountain Lion, поскольку httpd теперь кажется только 64-битным: $ file /usr/sbin/httpd /usr/sbin/httpd: Mach-O 64-bit executable x86_64 Вы тестировали это на 10.8 Mountain Lion? Я уже пробовал предложения в этом вопросе, и ни одно из них не помогло мне в 10.8. Я спросил про 10.8, и мой комментарий удалили. - person Alastair; 07.11.2012
comment
Скорее удалил бы мой ответ, так как я на расстоянии двух «репутаций» от возможности внести полезный вклад по этому вопросу. Однако я могу редактировать исходный вопрос и комментарии других людей. Иди разберись. В любом случае: arch -i386 /usr/sbin/httpd arch: posix_spawnp: /usr/sbin/httpd: Bad CPU type in executable - person Alastair; 07.11.2012

После долгих исследований я нашел надежное решение для настройки Apache с PHP и OCI8 в OS X. Вы можете установить библиотеки Oracle Instant Client где угодно, а затем все, что вам нужно сделать, это отредактировать файл конфигурации Apache launchd .plist, указав требуемые DYLD_LIBRARY_PATH, ORACLE_HOME , и LD_LIBRARY_PATH переменные среды, чтобы PHP действительно мог их видеть (они не будут видеть эти переменные среды из вашего ~/.bash_profile, когда PHP работает как модуль Apache).

Мне также удалось заставить OCI8 работать под 64-битной версией Apache и PHP на OS X 10.7.4 и OS X 10.8.4. Изначально я объединил 32- и 64-разрядные версии библиотек Oracle Instant Client в многоархитектурные толстые двоичные файлы. Это позволило использовать одни и те же библиотеки Oracle Instant Client в моей системе различными инструментами, некоторые из которых работали в 32-битном режиме, а другие - в 64-битном. В OS X 10.8 вы должны успешно использовать недавно выпущенные 64-разрядные версии библиотек Oracle Instant Client, не прибегая к запуску Apache в 32-разрядном режиме. Я постараюсь описать, чем я занимался, когда у меня будет больше времени, так как это также может быть полезно другим.

Вы можете просмотреть полный ответ о настройке переменных среды Apache для конкретных процессов здесь: https://stackoverflow.com/a/20670810/1914455

person bluebinary    schedule 19.12.2013