编程语言
首页 > 编程语言> > 如何在共享主机上的php中的public_html外部创建文件

如何在共享主机上的php中的public_html外部创建文件

作者:互联网

我正在尝试在php中的public_html外部创建文件:

fopen(“ / home / sites / foo.org / backup-ticketing / asu.sql”; w)

但是,我收到此错误消息.我确定我应该能够以某种方式做到这一点,但我只是无法弄清楚.文件夹的权限为711.

[Wed Aug 01 14:33:54 2012] [error] [client 84.3.2.16] PHP Warning:
fopen(/home/sites/foo.org/backup-ticketing/asu.sql) [function.fopen]: failed to open stream:
Operation not permitted in
/home/sites/foo.org/public_html/back/asu.php on line 4

您能告诉我什么是正确的方法吗?

感谢您提供的许多建议,我现在有其他信息:

php.ini是public_html中的问题,但是我想保持原样,但/ back /文件夹应该可以这样做.

这是我的设置:

 file_uploads = Off
 upload_tmp_dir = /var/php_tmp
 upload_max_filesize = 0M
 allow_url_fopen = Off
 allow_url_include = Off
 safe_mode = Off 
 display_errors = off
 magic_quotes_gpc = off
 magic_quotes_runtime =    off
 max_file_uploads=0 
 disable_functions=passthru,exec,phpinfo
 open_basedir  = /home/sites/foo.org/public_html/ 

解决方法:

似乎已启用PHP的Safe modeopen_basedir,阻止您执行自己想做的事情-因此完全不允许这样做,因此是不可能的.

您可以检查是否允许您写到公共目录之外的其他目录,通常../tmp或../temp在那里并且可写.

您也许可以找出open_basedir允许使用的路径

echo ini_get('open_basedir');

解决问题的另一种方法:将文件放在公共目录的子目录中,并使用.htaccess进行保护(用户/密码,拒绝除IP之外的所有IP等).

编辑:

>通过htacces用用户名/密码保护目录:使用htaccess generator,或
>仅允许从某些IP访问:创建文件并将其命名为.htaccess,内容如下

拒绝,允许

所有人都否认

允许从888.888.888.888

标签:php,shared-hosting
来源: https://codeday.me/bug/20191201/2077320.html