我正在尝试在我的服务器上使用一个调用其他脚本的PHP脚本。
名为call.php
的主脚本位于public_html
文件夹中,因此我可以使用my_website.com/call.php?action=some_script_name&arg1=value&arg2=some_other_value
向其发送HTTP请求。
如果action
脚本在public_html
中,我已经有了一种形成新请求(并执行它)的方法。例如,如果some_script.php
位于/public_html/scripts/some_script.php
,则我的HTTP请求将为my_website.com/scripts/some_script.php?arg1=value&arg2=some_other_value
。
我已经完成了,它可以正常工作。但是,我想将请求发送到不在public_html
(或其任何子目录)中的脚本。例如,如果我在/lib/otherscript.php
下有一个脚本,我也想调用它。
我尝试了../lib/otherscript.php?args_here
之类的请求,但这不起作用。
这是可能的,如果可以的话,我该如何做到这一点?
编辑:
(共享)服务器的实际文件结构如下所示(对于此示例):
/
public_html/
call.php
scripts/
some_script.php
lib/
otherscript.php
答案 0 :(得分:1)
您无法通过HTTP访问public_html
以外的内容;这是public_html
目录的重点。您有几个选择:
public_html
中的功能。执行此操作的最佳方法是使用URL作为参数的类或函数。无论哪种方式,如果功能敏感,您可能需要进行一些用户身份验证。如果它无害,您可以将其放入public_html
。如果不是,则需要进行身份验证/授权检查。
编辑,因为我最初误读了您的问题。
答案 1 :(得分:1)
如果您使用cPanel
,您可以使用绝对网址访问public_html
文件夹外的php文件,例如:<?php require_once('/home/username/lib/otherscript.php'); ?>
现在您可以将参数发布到public_html
文件夹中的任何脚本在女巫你已经包括otherscript.php
。
注意:您必须在绝对地址中使用您的cPanel用户名。