Принудительно запустить Apache HTTPD в 32-битной версии - PullRequest
2 голосов
/ 04 ноября 2008

Я запускаю Apache HTTPD в 64-битном режиме, убирая 32-битную архитектуру из двоичного файла (вместе с частями ppc). Я сделал это, чтобы сделать его более совместимым для Python и MySQL.

Однако у меня есть другая машина, которая требует, чтобы она работала в 32-битном режиме (в ней все четыре исходные архитектуры все еще работают). Можно ли убедиться, что он работает в 32-битном режиме и что все, что скомпилировано с ним, использует указанный режим.

Мои возможности ограничены его удалением или есть варианты запуска, о которых я не знаю.

Ответы [ 3 ]

3 голосов
/ 07 апреля 2009

Этот метод создает копию двоичного файла Apache и гарантирует, что apachectl (и, следовательно, обычная конфигурация ОС) правильно запустит 32-разрядную версию:

Сначала создайте 32-битную версию httpd:

sudo lipo -thin i386 /usr/sbin/httpd -output /usr/sbin/httpd.i386

Во-вторых, отредактируйте конфигурацию системы, чтобы она использовала новую версию вместо значения по умолчанию. Измените "/ usr / sbin / httpd" на "/usr/sbin/httpd.i386":

sudo vi /System/Library/LaunchDaemons/org.apache.httpd.plist

Наконец, перезапустите Apache:

sudo apachectl restart
3 голосов
/ 04 ноября 2008

Вы можете использовать команду arch(1), чтобы изменить используемую архитектуру. Сначала будет выбран Intel 32-bit, а затем PPC 32-bit:

% arch -i386 -ppc /usr/sbin/httpd
0 голосов
/ 07 ноября 2008

Обратите внимание, что это не позволит apache загружать любые 64-битные общие модули - например, если вы используете EntropyPHP, это может быть проблемой.

...