|
自编译ipxe启动,调用php文件在服务端写一配置文件,可以保存启动服务器ip或其它相关参数,目的是方便pe读取ipxe环境下的变量参数。
用群晖6.2的web station服务,php7.4,局域网启动时能成功建立并写入文件,pe读入成功。
但从外网用域名云启动时,同样调用相同php文件与参数,却总是提示 http 4xx client error (http://ipxe.org/1d0364c9), 对php不太熟悉,是否php文件执行写文件分区域权限?
菜单部分源码 :
- :Function_listinfo #item --gap -- ${ListInfo_top}
- set list_idx:int32 1
- iseq ${visableSystemVal} 1 && item --gap ||
- params --name ListInfoParams ||
- :list_begin
- param --params ListInfoParams ListInfo_${list_idx} ${ListInfo_${list_idx}:string} ||
- iseq ${list_idx} ${ListNo} && goto list_end ||
- iseq ${visableSystemVal} 1 && item --gap -- ${ListInfo_${list_idx}} ||
- inc list_idx && goto list_begin
- :list_end #item --gap -- ${ListInfo_end}
- #goto ${returnMenuPoint}
- :MenuEndtoChoose
- param --params ListInfoParams ListInfoCount ${ListNo} ||
- isset ${boot_server} && param --params ListInfoParams boot_server ${boot_server} ||
- isset ${pxeinfo_ini} && param --params ListInfoParams pxeinfo_ini ${pxeinfo_ini} ||
- imgfetch ${ini_base_path}/pxeinfo.php##params=ListInfoParams ||
复制代码
phpinfo.php内容如下:
- <?php
- //use $argv[1], $argv[2], etc to retrieve url parameters
- echo "#!ipxe\n";
- // ListInfoParams
- $paramsCount = $_REQUEST['ListInfoCount'];
- $boot_Server = $_REQUEST['boot_server'];
- $pxeinfo_ini = $_REQUEST['pxeinfo_ini'];
- // echo "echo $paramsCount";
- $myfile = fopen($pxeinfo_ini, "w") or die("Unable to open file!");
- $txt = "boot_Server:".$boot_Server."\nInfomation Count:".($paramsCount-2)."\n\n";
- //第一条为标题,最后一条为无用自增条
- fwrite($myfile,$txt);
- $idx = 1;
- while ($idx < $paramsCount){
- fwrite($myfile,$_REQUEST["ListInfo_".$idx]."\n");
- $idx++;
- }
- fclose($myfile);
- ?>
复制代码
|
|