Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
微型网络-can';t获取php.exe以返回数据_Php_Windows_Batch File_Cmd_Localhost - Fatal编程技术网

微型网络-can';t获取php.exe以返回数据

微型网络-can';t获取php.exe以返回数据,php,windows,batch-file,cmd,localhost,Php,Windows,Batch File,Cmd,Localhost,我无法使用php.exe生成网页并学习php。我遵循了这一原则,并完全理解Tiny web只使用写入标准输出的控制台应用程序。我正在使用带有ChromePortable的windows,因为IE的“安全功能”旨在阻止此类活动 要使Tiny Web正常工作,cgi bin文件夹中的脚本必须与可执行文件正确关联,并且扩展应存在于PATHEXT环境变量中。Tiny Web从windows注册表读取文件关联以执行脚本。没有用于Tiny web的配置文件。可执行文件必须是控制台程序,而不是GUI应用程序。

我无法使用php.exe生成网页并学习php。我遵循了这一原则,并完全理解Tiny web只使用写入标准输出的控制台应用程序。我正在使用带有ChromePortable的windows,因为IE的“安全功能”旨在阻止此类活动

要使Tiny Web正常工作,cgi bin文件夹中的脚本必须与可执行文件正确关联,并且扩展应存在于PATHEXT环境变量中。Tiny Web从windows注册表读取文件关联以执行脚本。没有用于Tiny web的配置文件。可执行文件必须是控制台程序,而不是GUI应用程序。一些可执行文件需要选项来加载脚本文件,我倾向于使用批处理文件来按顺序获取参数

e、 g.呆呆的

:Change to current batch file location - with gawk.exe
cd /D "%~dp0"
:Run
gawk.exe -f "%1" %~2 
这将运行my“”并生成动态网页。如果php脚本与批处理文件关联,我假设php.exe将以类似的方式工作:

e、 g.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 script/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生成动态页面

问题1。我是不是弄错了test.php

问题2。我应该如何处理php文件,通过标准输出将结果返回到Tiny web

第三季度。为了使其可移植,我希望为Tiny.exe周围的环境创建临时文件关联。如果我有管理员权限,我会在run.bat中使用assoc和ftype来启动Tiny web。在您的工作场所,windows的子管理员世界中有任何线索吗


提前感谢。

如果您分析TinyWeb源代码,它会以/cgi-bin/以下方式运行脚本:

如果扩展名为.EXE,它将直接运行,否则,它将使用Windows Win32 API调用FindExecutable查找此类文件扩展名的可执行文件:

然后,如果找到此文件扩展名的.exe可执行文件,它将与此可执行文件一起运行,并将脚本路径作为第一个命令行参数传递

若要检查是否存在与脚本扩展相关联的可执行文件,请在cgi bin文件夹中运行cmd.exe,并从命令行键入脚本名称,它应向屏幕提供输出。我的Windows机器上没有安装PHP,但我有Perl,如果我键入myscript.pl,它会向屏幕提供输出,因此它确认FindExecutable()找到了它。另外,当我键入perl.exe myscript.pl时,它也会生成正确的输出–TinyWeb就是这样运行的。运行cmd.exe并键入test.php时会发生什么情况?它是否打印所需的输出?顺便说一下,我没有听说有人能够用PHP运行TinyWeb。但是,如果您从命令行键入test.php,并且php.exe test.php工作,TinyWeb将能够运行您的php脚本