我根据这篇文章设置了apache
https://help.ubuntu.com/community/ApacheMySQLPHP
我在/etc/apache2/sites-available/mysite
创建了一个新的网站配置
并将文档根目录更改为:
DocumentRoot /home/gapton/public_html
<Dictory />
..
..
</Directory>
<Directory /home/gapton/public_html/>
...
...
...
...
</Directory>
和我sudo a2dissite default && sudo a2ensite mysite
禁用并启用它们,重新启动apache2并且工作正常。
然后我设置vsftpd并将vsftpd.conf
文件配置为:
local_enable=YES
write_enable=YES
通过Notepad ++与用户'gapton'连接,我在test.php
下创建了一个名为home/gapton/public_html
的文件。它似乎不会被Apache读取。我做了sudo chmod -R 755 ~/public_html
,它会加载好。
但是,通过vsftpd创建的任何后续文件都不可读。
由于我在通过FTP连接时已登录到唯一帐户gapton
,因此任何新创建的文件都应归gapton
所有?当apache尝试访问文件/文件夹位置时,会发生什么凭据?
如何配置它以便apache可以读取gapton
创建的所有文件? (另外,这是否可取?)
感谢。
答案 0 :(得分:1)
我发现了问题。
在旧版本的vsftpd中,写入文件时应用的umask默认为022。
在当前版本中,此默认值已更改为077.此掩码读取4
写入2
并为除所有者以外的所有人执行1
。
将vsftpd.conf
文件中的umask值更改回022已解决了我的问题。希望这有助于vsftpd的未来用户面临同样的问题。