为何在perl cgi程序中不能创建和写文件?
初学perl cgi程序开发,在cgi中认证客户端的连接信息,并做记录,写入日志文件log_yyyymmdd.csv中,日志文件存在时自动写入,不存在时先创建再写入。
我在linux上使用root,用sysopen函数,在cgi-bin/log路径下创建、读写文件都可以,但通过web请求调用cgi,无论创建文件还是写入文件都失败,只有读文件可以。我想可能是权限的问题,web server调用cgi时,用户不是root,如何配置才能在cgi程序中创建和写文件??
请高人指点,不胜感激。
[解决办法]
先弄明白1. cgi程序运行的用户 2. 有cgi-bin/log下建,写文件的权限的账户或组
想办法把它俩往一块凑。
1. 修改cgi的运行账户,或者
2. 把cgi的账户加到有写权限的组里
3. 更改cgi-bin/log的权限,使之包含cgi用户
我觉得第二种办法最好
[解决办法]
试试chmod -R 777 cgi-bin/log