Hai*_*ood 85 php file-io file-permissions
我正在尝试将查询写入文件以进行调试.该文件在database/execute.php.我想写的文件是database/queries.php.
我正在尝试使用 file_put_contents('queries.txt', $query)
但我得到了
file_put_contents(queries.txt)[function.file-put-contents]:无法打开流:权限被拒绝
我有queries.txt文件chmod'd到777,问题是什么?
Jas*_*son 65
尝试调整目录权限.
从终端运行chmod 777 database(从包含数据库文件夹的目录)
如果正确chmodd,apache和nobody将无法访问此目录.
另一件事是echo"getcwd()".这将显示当前目录,如果这不是'/something.../database/',那么您需要将'query.txt'更改为服务器的完整路径.
aze*_*ati 13
就是你可以制作Apache (www-data)文件夹的所有者
sudo chown -R www-data:www-data /var/www
Run Code Online (Sandbox Code Playgroud)
那应该立即开始file_put_contents工作.但为了更安全,您最好还设置如下所示的权限
find /var/www -type d -print0 | xargs -0 chmod 0755 # folder
find /var/www -type f -print0 | xargs -0 chmod 0644 # files
Run Code Online (Sandbox Code Playgroud)
/var/www到php文件的根文件夹意识到这已经很老了,但是没有必要手动将查询写入这样的文件.MySQL内置了日志记录支持,您只需要在开发环境中启用它.
查看"常规查询日志"的文档:
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
从此链接stackoverflow-image save 收集信息不适用于 chmod 777以及用户 azerafati 和 Loek Bergman:
如果您查看 /etc/apache/envvars 文件,您将看到类似以下内容:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
Run Code Online (Sandbox Code Playgroud)
Apache 在用户名“www-data”下运行
“0755”表示文件所有者可以读/写/执行,但组和其他用户不能写。因此,在您的终端中,cd 到包含“images”文件夹的文件夹。然后输入:
find images -type d -exec chmod 0755 {} \;
find images -type f -exec chmod 0755 {} \;
sudo chown -R www-data:www-data images
Run Code Online (Sandbox Code Playgroud)
您必须先更改权限,然后才能更改所有者。出现提示时输入您的密码。这将使“www-data”成为图像文件夹的所有者。
您的上传现在应该可以工作了。