如何在 Mac OS X 上运行 PHP?

55

我最近升级到了Lion,并在系统偏好设置中启用了Web共享,但我无法让php工作。

我在网站根目录中添加了一个信息文件,但它只是以文本形式输出该文件。

info.php
with the content
<?php phpinfo(); ?>

3
通常我会安装一个虚拟机并在其中安装Debian操作系统。对于进行服务器编程来说,它的组织结构更好(在我看来)。 - Quentin
1
@Quentin 这是真的,但通常我只使用内置工具加上MySQL来进行简单的Web开发,特别是在离家外出时 -- 在MacBook Air上,您不希望占用任何不必要的内存或磁盘空间! :) - Matt Gibson
2
请问如果不在stackoverflow.com上发布问题,我们应该在哪里发布?superuser.com有能力回答这样的问题吗? - tmadsen
6个回答

106

(编辑:该方法似乎在10.9(Mavericks),10.10(Yosemite)和10.11(El Capitan)上运行良好,因此我想提醒任何新的略微沮丧的OS X更新者:D)

编辑您的/etc/apache2/httpd.conf文件,确保以下行:

LoadModule php5_module libexec/apache2/libphp5.so

...存在。我认为它在标准的OS X配置中默认是被注释掉的,但就我所记,您只需要取消注释,然后重新启动Apache:

sudo apachectl restart

然后你就可以开始了。


太好了,这在我的Lion安装上有效...最好使用已经存在和可用的软件,而不是下载额外的软件并安装它们... - Mahendra Liya
是的,这适用于10.9.5开箱即用,因为有这个额外的配置文件:/ etc/apache2/other/php5.conf。因此不要与<ifmodule>...等斗争。 - peter_the_oak
我从Yosemite升级到El Capitan后,这解决了问题。 - frazras
仍然可以在MacOS Mojave 10.14.4上运行,但请注意要取消注释的行现在是#LoadModule php7_module libexec/apache2/libphp7.so。谢谢! - George D Girton

28

更新:请注意,此篇文章是针对OS X(High Sierra之前的版本)编写的。如果你使用的是OSX 10.12或更新版本,请参考Andy Miller所撰写的这篇非常好的指南:macOS 10.15 Catalina Apache设置:多PHP版本


我也喜欢使用已经存在的东西。我不明白为什么会有人使用MAMP或AMPPS(或任何其他第三方的预装web服务器应用程序),因为Mac OS X默认就带有apache和PHP。

我尝试了几次才使它正常工作,以下是基本操作步骤,希望可以帮助大家节省一些时间。

与Matt Gibson所说的一样,请打开终端并键入以下命令:(sudo需要你的根密码)

sudo nano /etc/apache2/httpd.conf

然后通过去掉这行前面的 '#' 号来取消注释(可以使用ctrl+v作为向下翻页)

LoadModule php5_module libexec/apache2/libphp5.so

为了确保您可以在PHP中包含文件等内容,请滚动到“用户_www”(在我的情况下),并将其更改为:(其中“yourusername”是您登录的用户名)

User yourusername

在新的OS X Mountain Lion安装中,您可以将群组保留为默认值 "Group _www"。

默认情况下,Apache仅查找index.html文件,因此请搜索“DirectoryIndex index.html”并将其更改为:(当然,在结尾添加index.html是可选的)

DirectoryIndex index.php index.html index.htm

按下ctrl+x(并确认使用“y”)退出并保存。

然后重新启动apache:

sudo apachectl restart

我的 phpinfo(); 返回了 PHP 版本 5.3.15

==================

因为我觉得在用户目录下拥有本地站点很有用,所以我创建了一个目录 /Users/yourusername/Sites(在 Mountain Lion 上默认情况下不再存在)。

同样,通过 "sudo nano /etc/apache2/httpd.conf" 编辑 httpd.conf 文件,然后...

向下滚动到 "DocumentRoot" 并将其更改为:(其中 "yourusername" 是您登录的用户名)

DocumentRoot "/Users/yourusername/Sites/"

滚动到“# This should be changed to whatever you set DocumentRoot to.”所在的位置,并将下一行更改为:(其中“yourusername”是您登录时使用的用户名)

<Directory "/Users/yourusername/Sites/">

按下ctrl+x(并确认输入“y”)退出并保存。

重新启动Apache。


还在 OS X Yosemite 上进行了测试,结果完美无缺。 - Ronaldt
这些步骤非常完美!谢谢!它真的起作用了。(Yosemite 10.10.2) - Herb Meehan

4

I have one word for you. MAMP.


我喜欢xampp,但它在我的带有Lion的MacBook Pro上无法工作,这就是为什么我来到这里的原因 :) - Doug Molineux
1
@Pete 那不是Xampp,那是MAMP。大有不同。 - cwallenpoole
1
毫无疑问,我们应该培养理解非打包解决方案的能力,例如利用已有资源。这并不是解决问题,而是找到一个不同的方法来完成某件事 - 在我看来并不是最好的方法。 - landed
@landed 个人而言,我已经开始使用 port install 来安装所有东西了。虽然我不完全确定包管理器是否有实质性的区别。 - cwallenpoole

2

要在最新版本的macOS Mojave 10.14上激活PHP服务器,请按照以下步骤操作:

  1. 打开终端。按下command+spacebar,输入terminal并按enter键。

  2. 输入命令$ sudo nano /etc/apache2/httpd.conf以编辑nano中的httpd.conf文件,这是macOS中内置的文件编辑器。

  3. 输入密码。

  4. 现在通过按control+w来搜索loadmodule

  5. 找到名为#LoadModule php7_module libexec/apache2/libphp7.so的文件。

  6. 通过删除模块开头处的#符号来取消注释该文件。

  7. 现在通过按control+x退出编辑器,按y保存更改,按enter确认对httpd.conf文件进行更改。

  8. 现在通过输入命令

    $ sudo apachectl restart

    重新启动apache服务器。
  9. PHP服务器现在应该正在运行。

现在,您可以通过从默认服务器目录打开PHP文件来检查服务器的工作情况,或者也可以更改目录。


2
升级MAC OSX到10.14.5后,我的Apache配置文件被更新,所有之前的设置都被替换成默认设置。我无法在浏览器中打开任何PHP文件。我按照以下步骤操作解决了问题。
注意 - 在OSX 10.14.5中有Php7.1.23
我遵循的步骤如下 -
1.编辑位于/ etc / apache2 / httpd.conf下的httpd.conf文件。
2.下面给出的行已被注释。我通过删除#符号取消了注释,并保存了httpd.conf文件并重新启动了apache服务。
LoadModule php7_module libexec/apache2/libphp7.so
3.sudo apachectl restart
感谢您的解决方案,感谢您的帮助朋友们。
此致,
Vicky Jadhav(印度 - 浦那)

2

试试 phpbrew

它是一个易于构建和安装 PHP 的工具,支持任何版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接