php脚本需通过服务器或命令行运行:①内置服务器(php -s);②apache+php模块;③cli模式(php script.php);④集成环境(xampp等);⑤docker容器。双击无法执行因php是服务端语言。

如果您编写了一个PHP文件,但双击或直接在浏览器中打开时无法执行,这是因为PHP是服务器端脚本语言,必须通过Web服务器或命令行环境解析运行。以下是运行PHP脚本的正确方式:
一、使用内置PHP开发服务器运行
PHP 5.4及以上版本自带轻量级内置Web服务器,适合本地开发与快速测试,无需安装Apache或Nginx。
1、打开终端(Windows为命令提示符或PowerShell,macOS/Linux为Terminal)。
2、使用cd命令切换到存放PHP文件的目录,例如:cd /var/www/myproject。
立即学习“PHP免费学习笔记(深入)”;
3、执行命令:php -S localhost:8000,启动服务器,默认路由指向当前目录下的index.php。
4、如需指定路由器脚本,运行:php -S localhost:8000 router.php,其中router.php用于处理请求分发。
5、在浏览器中访问 http://localhost:8000/your-script.php 即可运行对应脚本。
二、通过Apache + PHP模块运行
将PHP文件部署在已配置PHP支持的Apache服务器下,由Apache调用PHP模块解析执行,适用于模拟真实生产环境。
1、确认Apache已安装并正在运行,且libphp.so(Linux/macOS)或php_module(Windows)已加载。
2、将PHP文件(如test.php)放入Apache的文档根目录,例如:/var/www/html/(Linux)或C:\Apache24\htdocs\(Windows)。
3、确保httpd.conf或apache2.conf中包含类似LoadModule php_module modules/libphp.so及AddHandler php-script .php的配置。
4、重启Apache服务:sudo systemctl restart apache2(Ubuntu/Debian)或httpd -k restart(Windows)。
5、在浏览器中访问 http://localhost/test.php 执行脚本。
三、通过命令行(CLI)直接执行PHP文件
PHP CLI(Command Line Interface)模式不依赖Web服务器,直接输出脚本结果到终端,适合调试、定时任务或脚本工具开发。
1、确保PHP已加入系统环境变量,可在终端输入php -v验证版本。
2、使用cd进入PHP文件所在目录。
3、执行命令:php script.php,其中script.php为待运行的PHP文件名。
4、若脚本含echo或var_dump()等输出语句,结果将直接显示在终端中。
5、如需启用交互式执行,可运行:php -a进入交互模式,逐行输入PHP代码并回车执行。
四、使用集成环境(如XAMPP、WAMP、MAMP)运行
集成包已预配置Apache/Nginx、PHP和MySQL,一键启动即可运行PHP脚本,适合初学者或快速搭建本地开发环境。
1、下载并安装XAMPP(Windows/macOS/Linux)、WAMP(仅Windows)或MAMP(macOS/Windows)。
2、启动控制面板,依次开启Apache和MySQL服务(MySQL非必需,仅需PHP运行时可忽略)。
3、将PHP文件复制到对应htdocs目录,例如XAMPP为xampp/htdocs/,MAMP为MAMP/htdocs/。
4、确认Apache状态为“Running”,无端口冲突提示(默认端口80或8080)。
5、在浏览器中访问 http://localhost/your-script.php 运行脚本。
五、使用Docker容器运行PHP脚本
Docker提供隔离、可复现的PHP运行环境,避免本地依赖冲突,适合跨平台协作与CI/CD流程。
1、安装Docker Desktop并确保Docker服务正在运行。
2、创建一个空目录,放入您的PHP文件(如index.php)。
3、在同一目录下新建Dockerfile,内容为:FROM php:8.2-apache,并添加COPY index.php /var/www/html/。
4、在该目录下执行:docker build -t my-php-app . 构建镜像。
5、运行容器:docker run -d -p 8080:80 --name php-container my-php-app,然后访问 http://localhost:8080。











