快捷搜索:  汽车  科技

网盘最近使用记录(免费的网盘一个个被告知停止服务)

网盘最近使用记录(免费的网盘一个个被告知停止服务)硬件: 小米路由3 usb移动硬盘 树莓派 介于我现有的设备及没有的预算我的方案如下:1、选择靠谱的网盘(虽然我也不知道,iCloud?OneDrive?)2、购买云服务器自建(感觉云磁盘空间不便宜啊,不差钱这个是不错的候选)3、购买网络NAS(京东淘宝一大堆,群晖? 推荐这个方案)

收费的免费的网盘一个个被告知停止服务,怎奈已经离不开它,自建之……

网盘最近使用记录(免费的网盘一个个被告知停止服务)(1)

需求:

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

目前已经用上了,不足的是域名后面要加端口号 嘿嘿~~~~~

猜您喜欢: