概要說明
phpdav是使用php語言開發的基於webdav協議的服務器文件管理系統軟件(主要適用於linux操作系統服務器文件管理)。
webdav(Web-based Distributed Authoring and Versioning),一種基於 HTTP 協議的通信協議。它擴展了HTTP,在HTTP標準方法(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH)以外添加了一些新的方法(PROPFIND、PROPPATCH、MKCOL、COPY、 MOVE、 LOCK、UNLOCK),使應用程序可對Web Server直接讀寫,並支持寫文件鎖定(Locking)及解鎖(Unlock),還可以支持文件的版本控制。可以說WebDAV是HTTP協議的超集。
由於現代主流電腦的操作系統(windows、mac)都內置了webdav客戶端軟件支持,所以只要你的服務器或者遠程開發機具備並開啓webdav協議服務,無論你辦公用的安裝windows操作系統的電腦還是mac本,無需下載安裝任何第三方軟件,就可以把要管理的遠程服務器文件目錄掛載成爲一塊本地硬盤來實現文件管理。
現代主流的webserver如apache,其webdav模塊沒有支持webdav協議的所有底層方法,並會在所有管理的文件目錄下建立一個.DAV名稱的文件目錄來儲存文件信息,破壞了文件目錄的原始性;nginx自帶的webdav模塊支持的webdav協議方法更少,但使用它客戶端電腦無法實現直接掛載……
phpdav實現了webdav所有必要的底層基本方法,服務器安裝使用後開啓webdav協議服務器,客戶端電腦無論是window操作系統還是mac本無需下載任何第三方軟件,就可以實現掛載服務器目錄爲本地網絡硬盤。在此網絡硬盤內可進行與本地磁盤驅動器內無差別的任何文件操作。
安裝說明
運行環境
nginx1.1以上版本(推薦)
php5.6以上版本
安裝步驟
從git上獲取全部代碼文件,放置在你要運行phpdav代碼文件的目錄下,如: /home/work/phpdav
2. 修改 conf/config.ini.php 裏
$cloud_root = null;
爲你要映射的目錄地址,注意要給你 php 的執行用戶讀寫執行權限 。
如你的php運行用戶及用戶組爲work, work; 你要映射的目錄爲/home/work/mycloud
建議你可以這樣做,執行shell命令
chown -R work:work /home/work/mycloud chmod -R 700 /home/work/mycloud
3. 修改nginx配置,參考如下
server { listen 443 ssl; #綁定的端口號,開啓ssl加密,當然也可以選用80或其它端口,不開啓ssl加密 server_name cloud.httpsdav.club; #綁定的域名 #如果不打算開啓ssl加密傳輸,此部分無需配置 ssl_certificate ssl/phpdav.crt; #ssl加密用的pem格式的證書文件地址 ssl_certificate_key ssl/phpdav.key; #ssl加密用的pem格式的祕鑰文件地址 ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; #啓動指定的協議 ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; access_log /home/phpdav/phpdav/logs/nginx/access.log main; charset utf-8; tcp_nodelay on; #關閉Nagle算法,數據包直接發送 client_max_body_size 0; #不限制body大小 client_body_in_file_only clean; #連接斷開後清除儲存的臨時數據文件 client_body_in_single_buffer on; #確定將整個客戶端請求主體保存在單個緩衝區中。 location / { root /home/work/phpdav/interface; #phpdav入口文件所在目錄 rewrite .* /index.php break; #把所有發來的http請求地址重寫爲請求phpdav入口文件地址 #下面的配置部分爲通用的轉發php執行配置 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; fastcgi_param REQUEST_ID $request_id; #如果你的nginx版本低於1.11.0;請去掉這行 fastcgi_keep_conn on; fastcgi_limit_rate 0; fastcgi_request_buffering on; fastcgi_cache_revalidate on; fastcgi_pass_request_headers on; fastcgi_force_ranges on; fastcgi_connect_timeout 600s; fastcgi_read_timeout 600s; } }
4.重啓nginx