【发布时间】:2016-05-14 09:49:18
【问题描述】:
我无法让Tiny web local server 使用 php.exe 生成网页 - 并学习 PHP。我已关注instructions from the Ritlabs page 并完全理解 Tiny web 仅使用写入 STDOUT 的控制台应用程序。我正在使用带有 ChromePortable 的 Windows,因为 IE 的“安全功能”旨在阻止此类活动。
为了让 Tiny Web 工作,cgi-bin 文件夹中的脚本必须与可执行文件正确关联,并且扩展名应该存在于 PATHEXT 环境变量中。 Tiny Web 从 Windows 注册表中读取文件关联来执行脚本。 Tiny web 没有配置文件。可执行文件必须是控制台程序而不是 GUI 应用程序。一些可执行文件需要加载脚本文件的选项,我倾向于使用批处理文件来按顺序获取参数。
例如gawk.bat
:Change to current batch file location - with gawk.exe
cd /D "%~dp0"
:Run
gawk.exe -f "%1" %~2
这将运行我的“http://localhost:88/cgi-bin/test.awk”并生成动态网页。我假设如果 php 脚本与批处理文件相关联,则 php.exe 将以类似的方式工作:
例如php.bat
:Change to current batch file location - with php.exe
cd /D "%~dp0"
:Run
php.exe -f "%1" -- %~2
我的 test.php 脚本包含:
<?php echo "Content-Type: text/plain\n\n";?>
<?php echo "Hello World - from PHP";?>
但是,这给了我一个错误:“CGI 脚本 /cgi-bin/test.php 没有返回任何内容”,尽管它在 DOS 命令提示符下完美运行!我尝试使用 php-cgi.exe "%1" 运行 .php,这给出了相同的服务器错误,并且在命令行前面添加了一个标题,然后按预期打印。
我不想(没有权限)安装 ISS 或任何其他软件。具有讽刺意味的是,我正在努力使用 Tiny web 运行 php cgi 脚本,但可以使用 COMSPEC、LUA51.EXE、GSLSHELL.EXE、CSCRIPT.EXE、GAWK.EXE 甚至 SQLITE3.EXE 生成动态页面!
第一季度。我是不是弄错了 test.php?
第二季度。我应该如何处理 php 文件以通过 STDOUT 将结果返回到 Tiny web?
第三季度。为了使这个便携,我很想为 Tiny.exe 周围的环境建立临时文件关联。如果我有管理员权限,我会在启动 Tiny web 的 run.bat 中冷使用 assoc 和 ftype。你工作场所的 windows 子管理世界有什么线索吗?
提前致谢。
【问题讨论】:
标签: php windows batch-file cmd localhost