如何在共享主机上的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 mode
或open_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