我正在试图在Leopard下运行一个PHP PDO MySQL驱动程序,我基本上遵循了Tom Gidden的想法,强制Apache运行i386而不是Leopard默认的x86_64。
根据汤姆的想法,我已经复制
/System/Library/LaunchDaemons/org.apache.httpd.plist
至
/Library/LaunchDaemons/org.apache.httpd.plist
并添加了一个标志运行在32位模式的Apache:
<string>arch</string> <string>-i386</string> <string>/usr/sbin/httpd</string> <string>-D</string> <string>FOREGROUND</string>
我也从Arch文档中确认/ Library / LaunchDemons应该在/ System / Library / LaunchDaemons之前处理
当我重新启动我的mac并通过Activity Monitor检查进程时,httpd进程被标记为“intel” – 这是我期望看到的。
但是,如果我打开系统首选项 – >通过取消选中并重新检查“Web共享”选项来共享并重新启动Apache,则Apache将以64位模式启动(如Activity Monitor中所示的“Intel(64位)”进程。不是我期望看到的!
所以我的问题是:
为什么我通过“系统偏好设置”看到启动Apache导致的行为与通过重新启动不同?
我应该删除/重命名/System/Library/LaunchDaemons/org.apache.httpd.plist文件,还是有更好的办法吗?
还是我只是在以疯狂的方式做事情?
谢谢你的帮助。
任何人??
如果您想在Apple设置之外执行某些操作并希望进行一致的控制,请考虑使用Macports 。 它将允许你完全控制你正在使用的Apache,MySQL和PHP的版本等。
依靠苹果公司的Apache + PHP套件的一个问题是,他们可以并将在一个软件更新没有更多的警告更新它。 这可以让你的你的AMP堆栈损坏:(
我相信你可以通过运行validation实际传递给应用程序的参数:
ps auxw | grep http
我知道什么时候我在使用服务,我真的很喜欢使用Lingon (尽pipe它不再被积极开发)。它能够很好地了解哪些任务是计划好的,它可以帮助检查您的任务是否处于活动状态或者没有,我相信它会检查你的plist文件的一致性(虽然,因为你从一个现有的文件开始,它可能是好的),编辑一个启动plist文件真的很好。 请务必查看专家模式,特别是查看现有文件,并注意在帮助菜单下,您可以访问所有相关的手册页。
您可能需要在plistconfiguration文件中更改服务的名称。 要检查它是否可用,您可以执行以下操作:
service --test-if-available org.apache.httpd && echo "Available" || echo "Not available" service --test-if-configured-on org.apache.httpd && echo "On" || echo "Off"
[但是用命令中的'org.apache.httpd'来代替它。 请注意,您可以运行
service --list
看到所有服务的列表,但不幸的是,数据不会转到标准输出,你不能pipe它。]
另一个有用的工具来帮助你解决这个问题是launchctl 。
要查看计划哪些任务,可以运行:
launchctl list
请注意,如果以用户身份执行操作,则会得到不同的结果,而不是以root身份执行操作。 我相信root会看到从/ System / Library / LaunchDaemons和LaunchAgents调度的任务,并且用户看到从/ Library / LaunchDaemons和LaunchAgents调度的任务。
Launchctl也可以让你安排/不定期的任务。 请注意,在configuration文件中,有一个关键字指明作业是否被禁用。 您可以编辑该文件,或者在使用launchctl load或unload命令时,可以使用-W标志覆盖当前设置并将其写回到磁盘。
您引用的站点列出了用于取消调度您的replace中的原始任务和计划的命令,如下所示:
sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist sudo launchctl load /Library/LaunchDaemons/org.apache.httpd.plist
这确实看起来是正确的(虽然我不确定第二个是否需要sudo)。
为什么apache启动与系统首选项不同? 我有两个猜测。
切换交换机时,我打开了控制台。 它没有在system.log中显示任何内容。 在/var/log/apache2/error.log中,它确实显示应用程序已closures并启动,但我不知道它是否是直接的。
我想我会做的是: