所以我在 centos7 中创建了一个 samaba 共享,以便能够使用 Windows 10 读写。 但是,当调用 is_writable 时,我在同一个 centos VM 上运行的 apache 服务器上的 PHP 脚本返回 false。
我尝试将所有者设置为没有人,Apache,并在共享上root以进行测试,并且由于该站点是严格的内部站点,因此我将权限设置为0777。我已将该文件夹移动到 apache 可访问的目录中。fileperms(( 返回 16895,get_current_user(( 返回 root。
if(is_writable('/var/www/html/Barcodes/') == false){
echo ' Hmm no write ';
echo fileperms('/var/www/html/Barcodes/');
chmod('/var/www/html/Barcodes/', 0777);
echo ' ';
echo fileperms('/var/www/html/Barcodes/');
echo ' '. get_current_user();
die;
}
它应该返回 true,然后我尝试在 php 中设置 perms 并测试更改,没有骰子。
编辑:我禁用了 SELinux,由于安全漏洞,这不是真正的答案,但它确实使 php 能够在共享文件夹中进行 r/w。所以问题归结为CHCon和httpd和Samba。
你为什么嘶吼?要创建目录,只需转到:
mkdir($PATH, 0777);