在Mac上双击并运行Php脚本

9

如果已经回答了这个问题,我很抱歉。

为什么在Mac上不能直接运行PHP代码而不使用终端呢?我的意思是当你双击HTML文件时,它会自动在浏览器中打开,但是对于PHP来说并不是这样。如果我尝试双击PHP文件,它会用一些文本编辑器打开。

希望能得到帮助。


1
PHP需要一个PHP解释器,通常只在Web服务器上才能使用。看看XAMPP,你可以在本地主机上搭建一个Web服务器,并在本地计算机上执行你的PHP脚本。 - Realitätsverlust
但是 Mac 自带安装了 PHP。我可以运行 PHP 文件,但我需要手动输入文件名[路径名]。 - TryingToLearn
1
你应该先学习计算机课程,了解什么是可执行文件和什么不是,学习文件的默认应用程序,最后再学习PHP代码如何执行以及代码的读取/执行方式(绝对不是浏览器)。 - user2742371
@Houssni 兄弟,当然它在服务器端运行。 - TryingToLearn
7个回答

53

如果您使用的是Mac电脑,可以尝试以下步骤:

  1. 打开终端(terminal)

  2. 使用cd命令进入文件夹

  3. 启动php服务器:php -S 127.0.0.1:8000

  4. 在浏览器中输入网址http://localhost:8000/file-name.php


2
谢谢,这是唯一重要的解决方案。 - masterial

14

我认为你可能不了解PHP是什么......

HTML是一种标记语言,浏览器可以直接理解。如果浏览器打开文件,它就能处理文件内容。

由于PHP是一种编程语言,所以需要一个解析器来解释代码。这个解析器就是你的PHP可执行文件。这个程序能够理解PHP并且运行代码,然后把结果返回出来。这个结果可以是一个HTML网页、图片或者其他内容。

既然你说你在用Mac系统,这里有一个快速介绍如何建立你自己的Web服务器:

在Mac OSX上,PHP和Apache(本例中使用的服务器)已经预先安装和配置好了,你只需要像这样开始使用它:

进入你的系统偏好设置,确认 Web Sharing 已经启用。

在Finder中打开 /Library/WebServer/Documents/localhost,所有放在那里的文件都会被本地Web服务器(Apache和PHP,如果你想知道的话)处理。把你的文件放到那里,然后打开你的Web服务器并访问 http://localhost/YourFile.php,它会调用文件 YourFile.php 并展示脚本输出的结果。

编辑:

如果你在使用PHP脚本,例如Bash脚本,请参考@andreas-baumgart提供的回答。


兄弟,我知道Php是服务器端的语言,但我对Mac还很陌生。顺便说一下,Web共享已经被移除了,只需要使用sudo apachectl start命令启用即可。 - TryingToLearn
2
@rak,但是你的问题写得像是一个不知道什么是Web服务器...或者你需要它来在浏览器中打开你的网站的人。 - SimonSimCity
我第一次使用Mac,所以我认为当我们双击它时,它应该能够工作,因为服务器已经开启了。 - TryingToLearn

9
要在MAC中运行PHP,您需要启动内置的Apache Web服务器并启用已安装的PHP。按照以下步骤完成:
1. 转到 /etc/apache2/httpd.conf 并更改权限为 sudo chmod 777 httpd.conf。 2. 然后打开上面的文件以取消注释 #LoadModule php5_module libexec/apache2/libphp5.so 行。 3. 使用终端中的命令 sudo apachectl start 启动内置的apache服务器。
现在可以使用 php -f filename.php 在终端中创建和运行 .php 文件,并且也可以在浏览器上使用 http://localhost/filename.php 运行它。

6
您不能直接执行普通的PHP脚本,因为它们不是可执行程序,而是源代码。因此,它们只包含一个解释器创建可执行代码的指令。要运行您的PHP脚本,您需要将其传递给PHP解释器。在您的情况下,您可以通过提供shebang来实现。
要通过双击运行脚本,请尝试以下操作:
1. 使用chmod +x yourscript.php使脚本可执行。 2. 在文件内容中添加相应的Shebang:#!/usr/bin/env php。 3. 在Finder中选择一个PHP文件,按CMD-i并将“打开方式”更改为“Terminal.app”。

4

虽然回复晚了,但我也在研究如何做到这一点,这是我搜索结果中的一个,所以我想提供两个解决方案,因为我最终自己都想到了这两个方案。

解决方案1

简单的方法是通过编写包装文件来执行您正在处理的脚本。创建一个带有以下代码的文件:

#!/usr/bin/php
<?php

include('name-of-php-script.php');

?>

将其保存为wrapper.command。wrapper的名称并不重要,但是command扩展名告诉Finder这是一个要在终端中打开的shell脚本。文件本身只执行包含的任何php脚本。

解决方案#2

具体问题需要一些工作。

首先,请确保php脚本的第一行是:

#!/usr/bin/php

这是Mac OS X预安装版本PHP的安装位置。您可以通过在终端中运行此命令来验证:

whereis php

一旦您在php脚本中添加了Shebang行,就已经为自动执行做好了准备。
要使其可双击执行,您需要执行以下步骤: 右键单击PHP脚本并单击“获取信息”。 单击“打开方式”,单击默认选项以查看所有可用选项。 选择“其他...”
将“启用:”从“推荐应用程序”切换到“所有应用程序”,并选中“始终使用此应用程序打开”。选择Terminal作为应用程序。最后,您必须单击“全部更改...”按钮
OS X会验证您是否希望将Terminal设置为打开.php文件的默认应用程序。
这将使每个php文件默认在终端中打开,但除非它们包含#!/usr/bin/php行,否则它们实际上不会运行。

3

尝试 MAMP

MAMP 4为Web开发人员带来了更多机会。我们现在支持MySQL 5.6,并且Nginx已经完全集成。服务器启动时间得到了改善。

enter image description here


0

因为.php文件本身并不是“可执行”的,它们只是带有PHP扩展名的文本文件。

您需要使用php解释器来运行该文件以执行其内容。


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