没有CHMOD 777,无法在NGINX中创建文本文件或将其追加到文本文件中

使用Lightsail NGINX实例,并在PHP文件中获得一行内容,该行无法满足我的需要


$s = 'Hello world';

$myfile = file_put_contents('log.txt', $s.PHP_EOL , FILE_APPEND | LOCK_EX);

我希望它创建log.txt文件(如果不存在)。如果有,我要附加它。它也不做。


如果创建该文件,它将无法正常工作。仅当我通过SSH将文件更改为777时,它才能工作。


但是,将来的工作是制作文件,因此出于777安全性之外的原因,这种手动方法将不可行。


我知道这取决于安全性设置,但实际上不确定如何做才能使其尽可能安全,同时仍然允许PHP访问创建/附加到文本文件的权限。


看来我有一个叫www-data的用户。我试过了:


sudo chown -R www-data:www-data html

sudo chmod -R g+s html

仍然无法创建文件。


如果我将错误报告放在上面,则会得到:


file_put_contents(log.txt): failed to open stream: Permission denied


呼如林
浏览 215回答 3
3回答

交互式爱情

我认为,实现目标的更好方法是chown命令。这将更改文件的所有权。试运行chown username yourfile您也可以将其用于文件夹chown -R username yourfolder就您而言,您可能需要更改文件log.txt的所有权

冉冉说

尝试将所有权更改为nginx用户。chown nginx: log.txt
打开App,查看更多内容
随时随地看视频慕课网APP