3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
在windows瀏覽器地址直接輸入該php文件
檢查執(zhí)行結(jié)果是否如下警告:
Warning: fopen(xxx.txt): failed to open stream: Permission denied in /usr/local/www......
這是因?yàn)槟J(rèn)下selinux是開(kāi)啟的,會(huì)阻值修改文件。
查看SELinux狀態(tài):
1、/usr/sbin/sestatus -v ##如果SELinux status參數(shù)為enabled即為開(kāi)啟狀態(tài)
SELinux status: enabled
2、getenforce ##也可以用這個(gè)命令檢查
關(guān)閉SELinux:
1、臨時(shí)關(guān)閉(不用重啟機(jī)器):
setenforce 0 ##設(shè)置SELinux 成為permissive模式
##setenforce 1 設(shè)置SELinux 成為enforcing模式
2、修改配置文件需要重啟機(jī)器:
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled
重啟機(jī)器即可
另外,如果以上還是不能解決的話要設(shè)置一下目錄的權(quán)限策略
chcon -R -t httpd_sys_content_t /home/html

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
翻譯:
file_put_contents(/PHP/admin/tp/runtime/temp/71dafaa2a0ea0d586666de9d67f301a7.php):無(wú)法打開(kāi)流:權(quán)限被拒絕
解決辦法:
文件或目錄需要的權(quán)限是很大的,如果你只給一般權(quán)限肯定是不行的,通常都是給runtime權(quán)限:777

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
1、查看一下你寫(xiě)入的文件路徑是否正確
2、那個(gè)文件是否有寫(xiě)入的權(quán)限
3、file_put_contents方法是否存在
依據(jù)你給的代碼圖片,將其修改了一下,你試試看看行不行:
<?php if ( $_POST [ 'Submit' ] == '注冊(cè)' ){ $a = 'file.txt' ; $c = $_POST [ 'user' ]; // 如果$c是一個(gè)數(shù)組,先f(wàn)oreach循環(huán) - 組裝成需要寫(xiě)入發(fā)內(nèi)容 if ( is_array ( $c )){ foreach ( $c as $k => $v ) { $html = '這是寫(xiě)入的內(nèi)容' . "\r\n" ; $html .= '寫(xiě)入的內(nèi)容要是字符串!' . "\r\n" ; $html .= '.....' ; } $c = $html ; } // 寫(xiě)入 if ( file_exists ( 'file_put_contents' )){ file_put_contents ( $a , $c ); } else { $handle = fopen ( $a , 'w+' ); fwrite( $handle , $c ); fclose( $handle ); } } ?> |
- 3 回答
- 0 關(guān)注
- 970 瀏覽
添加回答
舉報(bào)