网盘最近使用记录(免费的网盘一个个被告知停止服务)
网盘最近使用记录(免费的网盘一个个被告知停止服务)硬件: 小米路由3 usb移动硬盘 树莓派 介于我现有的设备及没有的预算我的方案如下:1、选择靠谱的网盘(虽然我也不知道,iCloud?OneDrive?)2、购买云服务器自建(感觉云磁盘空间不便宜啊,不差钱这个是不错的候选)3、购买网络NAS(京东淘宝一大堆,群晖? 推荐这个方案)
收费的免费的网盘一个个被告知停止服务,怎奈已经离不开它,自建之……
需求:1、能通过网页方式存取文件
2、能给定地址后台下载
3、有个手机客户端备份照片啥的
方案:1、选择靠谱的网盘(虽然我也不知道,iCloud?OneDrive?)
2、购买云服务器自建(感觉云磁盘空间不便宜啊,不差钱这个是不错的候选)
3、购买网络NAS(京东淘宝一大堆,群晖? 推荐这个方案)
介于我现有的设备及没有的预算我的方案如下:
硬件: 小米路由3 usb移动硬盘 树莓派
(如果小米路由的ssh打开了就不需要树莓派,打开不保修,我是刚买 唉~)
软件: OwnCloud Aria2 & YAAW KODExplorer
(第一个是网盘程序,第二个是离线下载,第三个是整个目录的管理程序 用于访问不在网盘里的文件)
搭建过程这边就不阐述了网上都有很详细的教程,这边说一下我遇到的一些问题
1、因为我的程序是放在树莓派上,而硬盘是插在小米路由上,然后挂载到树莓派上。
(上次写的搭建nas是插在树莓派上的,这次因为路由器上有云搬家插件,好把我之前的云文件同步下来)
这就涉及到owncloud里的data目录权限报错问题(0777或0770)
解:挂载时加上用户及权限指定(其中uid=33的是我的www-data用户uid,/etc/passwd中有对应)
mount -t cifs -o uid=33 rw dir_mode=0770 file_mode=0770 password= //192.168.31.1/XiaoMi-usb0 /mnt/MiStore
另:可以修改owncloud目录权限检查程序(不建议怎么做,可以做个特殊解决办法),修改方法如下:
编辑owncloud/lib/private/legacy/util.php (我用的版本是9)
在 public static function checkDataDirectoryPermissions($dataDirectory) 函数内
$errors = array(); 下面添加一句 return $errors; 即可
2、在使用KODExplorer时,我发现它居然能直接访问根目录,感觉太不安全了,需要对php的目录做一些限制。
(以下三种设置方法均需要PHP版本为5.3或者以上)
方法1)在nginx配置文件中加入
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
通常nginx的站点配置文件里用了include fastcgi.conf;,这样的,把这行加在fastcgi.conf里就OK了。
如果某个站点需要单独设置额外的目录,把上面的代码写在include fastcgi.conf;这行下面就OK了,会把fastcgi.conf中的设置覆盖掉。
这种方式的设置需要重启nginx后生效。
方法2)在php.ini中加入:
[HOST=www.xxx.com] open_basedir=/home/www/www.xxx.com:/tmp/:/proc/ [PATH=/home/www/www.xxx.com] open_basedir=/home/www/www.xxx.com:/tmp/:/proc/
这种方式的设置需要重启php-fpm后生效。
方法3)在网站根目录下创建.user.ini并写入:
open_basedir=/home/www/www.xxx.com:/tmp/:/proc/
这种方式不需要重启nginx或php-fpm服务。安全起见应当取消掉.user.ini文件的写权限。
关于.user.ini文件的详细说明:http://php.net/manual/zh/configuration.file.per-user.php
设置open_basedir的同时最好禁止下执行命令的函数,比如:
shell_exec('ls /etc')仍然查看到/etc目录的文件列表
shell_exec('cat /etc/passwd')仍可查看到/etc/passwd文件的内容
建议禁止的函数如下:
disable_functions = pcntl_alarm pcntl_fork pcntl_waitpid pcntl_wait pcntl_wifexited pcntl_wifstopped pcntl_wifsignaled pcntl_wexitstatus pcntl_wtermsig pcntl_wstopsig pcntl_signal pcntl_signal_dispatch pcntl_get_last_error pcntl_strerror pcntl_sigprocmask pcntl_sigwaitinfo pcntl_sigtimedwait pcntl_exec pcntl_getpriority pcntl_setpriority eval popen passthru exec system shell_exec proc_open proc_get_status chroot chgrp chown ini_alter ini_restore dl pfsockopen openlog syslog readlink symlink popepassthru stream_socket_server fsocket chdir
目前已经用上了,不足的是域名后面要加端口号 嘿嘿~~~~~