linux文件上傳,給文件或目錄添加apache權(quán)限的方法
在LAMP環(huán)境中,測試一個(gè)簡單的php文件上傳功能時(shí),發(fā)現(xiàn)/var/log/apache2/error.log中出現(xiàn)如下php警告:
1. [Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/home/leotody/32883679.jpeg): failed to open stream: Permission denied in /var/www/upload_file.php on line 25, referer: http://localhost/info.html
2. [Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phps05ssU' to '/home/leotody/32883679.jpeg' in /var/www/upload_file.php on line 25, referer: http://localhost/info.html
提示沒有訪問權(quán)限,文件上傳的代碼如下:
if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { if(move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"])) { echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } else { echo "move error!"; } }
頁面中顯示"move error!",說明move_uploaded_file()函數(shù)執(zhí)行失敗。
通過查找資料,發(fā)現(xiàn)網(wǎng)上有說是selinux啟動(dòng)的原因,檢查系統(tǒng)并未啟動(dòng)selinux,查看upload目錄默認(rèn)權(quán)限ls -ld upload,結(jié)果為755:
1. drwxr-xr-x 2 root root 4096 2012-01-31 10:59 upload
將upload目錄權(quán)限改為777,sudo chmod 777 upload,再測試上傳功能成功。但這種修改權(quán)限的方法并不安全。
故可以改upload目錄的擁有者為www-data(即apache),sudo chown -R www-data:www-data upload,然后再測試上傳功能成功。
1. drwxr-xr-x 2 www-data www-data 4096 2012-01-31 10:59 upload
以上這篇linux文件上傳,給文件或目錄添加apache權(quán)限的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于ubuntu16 Python3 tensorflow(TensorFlow環(huán)境搭建)
這篇文章主要介紹了基于ubuntu16 Python3 tensorflow(TensorFlow環(huán)境搭建),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01在Ubuntu 14 上安裝 Nginx-RTMP 流媒體服務(wù)器的教程
RTMP流媒體協(xié)議是 一套 Adobe 開發(fā)的音頻視頻實(shí)時(shí)傳輸協(xié)議;nginx-rtmp 是一個(gè)基于nginx的 RTMP服務(wù)模塊,開源,免費(fèi),接下來通過本文給大家介紹在Ubuntu 14 上安裝 Nginx-RTMP 流媒體服務(wù)器,需要的朋友可以參考下2019-11-11Vmware虛擬機(jī)中CentOS安裝 CentOS安裝Qt的教程圖解
這篇文章主要介紹了Vmware虛擬機(jī)中CentOS安裝,CentOS安裝Qt的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Apache shiro的簡單介紹與使用教程(與spring整合使用)
Apache Shiro是一個(gè)強(qiáng)大而靈活的開源安全框架,它能夠干凈利落地處理身份認(rèn)證,授權(quán),企業(yè)會(huì)話管理和加密這篇文章給大家介紹了Apache shiro的簡單介紹與使用教程(與spring整合使用),感興趣的朋友一起看看吧2017-10-10Apache mod_rewrite中的REQUEST_URI使用實(shí)例
這篇文章主要介紹了Apache mod_rewrite中的REQUEST_URI使用實(shí)例,本文使用一個(gè)實(shí)例講解如何使用REQUEST_URI,需要的朋友可以參考下2015-01-01Linux操作文件的底層系統(tǒng)調(diào)用,探究父子進(jìn)程是否可以共享文件問題
這篇文章主要介紹了Linux操作文件的底層系統(tǒng)調(diào)用,探究父子進(jìn)程是否可以共享文件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03linux實(shí)現(xiàn)自動(dòng)部署tomcat腳本
這篇文章主要為大家詳細(xì)介紹了linux實(shí)現(xiàn)自動(dòng)部署tomcat的腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03linux服務(wù)器中的遠(yuǎn)程訪問問題小結(jié)
在php程序中運(yùn)用fopen或者socket的時(shí)候,報(bào)一下錯(cuò)誤php_network_getaddresses: getaddrinfo failed: Temporary failure in name2012-01-01