搭建自己的个人网盘owncloud

owncloud

最近打算把陈年已久的照骗拿到打印店洗掉,但是考虑到文件实在有些大(4K高清帅照),而且以前也用过一些方式搜到过度盘里面的DCIM文件夹,因此度盘在隐私性上面可能不太符合要求。一不做二不休,干脆这次直接装一个支持分享链接的个人网盘。PS:owncloud在AppStore有相应的app,因此也能省去数据转移的烦恼。


为什么是owncloud?

优点

  • 界面美观,插件丰富,PC端和手机端可以无缝对接。
  • 支持在线预览,可以分享链接,选择性加密。

缺点

  • 不支持文件夹整体上传(十分痛心)。
  • 文件上传大小限制(和服务器本身的设置有关,可以克服)。

环境和系统配置

  • 阿里云学生机1核2G 5M带宽 40G SSD(测试效果下载速度能达到300KB/s十分稳定,上传速度自己测试的2MB/s左右,度盘会员党就算了毕竟我也有,还是学生机的配置还是太辣鸡了,也不知道以后有没有机会搞个NAS...)
  • ubantu18.04
  • LAMP(Linux+Apache+Mysql+Php)

安装过程

搭建LAMP环境

安装Apache

sudo apt-get update
sudo apt-get install apache2

先更新软件源然后安装apache2
安装完成后浏览器输入:

http://your_ip_address 可以看到apache安装成功页面

安装Mysql

提前排坑:建议按照步骤完成并且记住初始密码。

sudo apt install mysql-server

安装mysql,会告诉你安装哪些包,一路Yes下来就行。

sudo mysql_secure_installation

去除危险的默认配置,会被问到是否使用密码登录校验(跳过这步完全可以)。如果选择Yes,这样就可以避免远程root用户的无密码登录操作。然后是选择密码难度(0/1/2):

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

2是最高等级,需要更复杂的密码。之后会设置密码,建议不要为空。
安装完成后使用

sudo mysql

就可以进入mysql命令行操作。

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> exit;

第一步查看登录表的信息,第二步更新登录表的权限必须使用密码登录,然后刷新权限表,确认后退出mysql。如果忘记mysql密码的话文末会附上排坑链接...

安装php

安装

sudo apt install php libapache2-mod-php php-mysql

更改dir.conf文件,移动index.php页面位置

sudo nano /etc/apache2/mods-enabled/dir.conf

更改前

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

更改后

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

重启apache

sudo systemctl restart apache2

测试php模块

sudo nano /var/www/your_domain/info.php

编写一个php文件

<?php
phpinfo();
?>

使用域名访问

http://your_domain/info.php 可以看到php模块页面

最后别忘了删除测试文件(对了rm -f 命令程序员常用一定要慎用记住

sudo rm /var/www/html/info.php

至此所有配件安装完成,如果后续网盘登录过程中提示相关php模块未安装可以返回此步骤继续安装相应缺少的扩展模块。

apt show package_name		//查找package
apt show your_module_name	//查找相应模块介绍
sudo apt install your_module1 your_module2...	//安装对应php模块

安装owncloud

add key

wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_16.04/Release.key -O Release.key
apt-key add - < Release.key

install

echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud-files

完成后在

http://your_ip/owncloud 打开网盘

配置数据库

mysql -uroot -p //登录
> create database owncloud; //创建数据库owncloud

提示:第一次登陆在ip后面加上mysql端口号3306
出现不能访问的权限问题要修改文件夹对应读写权限

chown -hR www-data owncloud

参考文献

LAMP安装过程
owncloud官网
Mysql忘记密码怎么办?莫慌~