通过从二进制文件中剥离 32 位架构(连同 ppc 部分),我一直在 64 位模式下运行 Apache HTTPD。我这样做是为了使它更兼容 python 和 mysql。
但是我有另一台机器需要它以 32 位模式运行(它仍然具有所有四个原始架构)。是否可以确保它以 32 位模式运行,并且针对它编译的任何内容都使用所述模式。
我的选择是否仅限于剥离它,或者是否有我不知道的启动选项。
通过从二进制文件中剥离 32 位架构(连同 ppc 部分),我一直在 64 位模式下运行 Apache HTTPD。我这样做是为了使它更兼容 python 和 mysql。
但是我有另一台机器需要它以 32 位模式运行(它仍然具有所有四个原始架构)。是否可以确保它以 32 位模式运行,并且针对它编译的任何内容都使用所述模式。
我的选择是否仅限于剥离它,或者是否有我不知道的启动选项。
您可以使用该arch(1)
命令来更改所使用的架构。这将首先尝试 Intel 32 位,然后是 PPC 32 位:
% arch -i386 -ppc /usr/sbin/httpd
此方法将制作 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
请注意,这样做会阻止 apache 加载任何 64 位共享模块 - 例如,如果您使用的是 EntropyPHP,这可能是一个问题。