强制Apache HTTPD在32位运行

问题描述:

我一直在64位模式下运行Apache HTTPD,通过从二进制文件中除去32位体系结构(以及ppc部分)。我这样做是为了使它更适合python和mysql。强制Apache HTTPD在32位运行

但是,我有另一台机器需要它在32位模式下运行(它仍然有四个原始架构)。是否有可能确保它在32位模式下运行,并且针对它编译的任何内容都使用上述模式。

我的选择仅限于剥离它,还是有启动optiosn,我不知道。

您可以使用arch(1)命令更改使用的架构。这将尝试英特尔32位先PPC 32位:

% arch -i386 -ppc /usr/sbin/httpd 
+0

对于股票Apache的安装,你可以添加额外的httpd之前的参数也发送到了plist。它位于`/ System/Library/LaunchDaemons/org.apache.httpd.plist`中,您可以将它们添加到“ProgramArguments”键的数组中。 – 2010-12-03 18:00:48

注意,这样做将阻止加载任何64位共享的模块阿帕奇 - 如果你正在使用EntropyPHP,例如,这可能是一个问题。

这种方法将使Apache二进制文件的副本,并确保的apachectl(因此,正常OS配置)将正常启动的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