在VPS(debian8)上建立私有云盘owncloud

最近鼓捣服务器的想法很多,尝试了一下建立私有云盘,记录一下

OwnCloud允许你运行完全由你控制的云存储服务器

本文转载修改自http://blog.topspeedsnail.com/archives/4148,版权归原作者所有

1.准备工作:我是用的是debian 8的vps,需要预先搭建一个环境,包括apache2,php和MariaDB/MySQL数据库

apt-get install mariadb-server mariadb-client apache2 libapache2-mod-php5 php5-json php5-gd php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

2.下载owncloud:出于安全考虑,建议对下载的文件进行校验,这里我忽略了此过程,需要的请移步原作者网页

wget https://download.owncloud.org/community/owncloud-9.1.8.tar.bz2

3. 解压,并拷贝至拷贝到Apache2网站文档目录,并修改权限

tar xjvf owncloud-9.1.8.tar.bz2

这里我使用网站根目录作为owncloud的目录

cp -r /root/owncloud/* /var/www/html

这里注意:需要确认将解压的所有文件都复制过去,博主在实际操作中,由于两隐藏文件.htaccess和.user.ini没有复制到项目根目录下,导致后面配置出错。感谢此文帮助https://blog.rooot.me/p/owncloud-debug.html,如果在使用中有其他错误,也可以参考此文,感谢。

然后修改文件权限

chown -R www-data:www-data /var/www/html

4. 配置数据库

首先登陆

mysql -u root -p

创建数据库

CREATE DATABASE myCloud;

创建用户并添加权限,这里创建了root用户,密码是11111111,后面在配置时需要输入

GRANT ALL ON myCloud.* TO root@localhost IDENTIFIED BY '11111111';

退出数据库

quit

5. 配置apache2

首先创建一个虚拟主机配置文件

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/owncloud.conf

然后编辑owncloud.conf配置,可以使用vim,也可以通过flashftp等软件进行编辑

找到ServerName一行,去掉行前注释;把ServerName的值改为你使用的域名,如:owncloud.123456.com。找到DocumentRoot,把值改为/var/www/html;最后在文件尾加入如下行(把网站文档目录修改为你的)

Alias /owncloud "/var/www/html/"
 
<Directory /var/www/html/>
  Options +FollowSymlinks
  AllowOverride All
 
 <IfModule mod_dav.c>
  Dav off
 </IfModule>
 
 SetEnv HOME /var/www/html
 SetEnv HTTP_HOME /var/www/html
</Directory>

让新配置的虚拟主机生效,创建链接

ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf

OwnCloud需要使用mod_rewrite模块。启用mod_rewrite模块,建议启用headers、env、dir和mime模块

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

重启Apache

service apache2 restart

6. 配置owncloud

使用浏览器访问:http://your_domain_or_ip,进入网页进行配置

下面需要填写数据库的信息,就按照之前配置数据库时,添加的用户和密码输入即可

7. 更新owncloud

首先根据情况做好备份

从官网https://owncloud.org/download/下载最新版本tar,然后备份原目录下config 和data

查看步骤3,将新文件夹中的config和data文件夹删除,然后将剩下的全部覆盖至原目录(建议将备份好config和data的原目录直接清空全新复制),然后将原备份好的config和data文件夹再复制回原目录,打开网页根据提示升级即可

注意,无法降级

 

在使用过程中,我希望能通过直接在服务器内将下载的文件复制到网盘中,但是网盘不会显示该文件,在搜索了之后,找到一个好用解决方案,记录一下

注意,此操作会重写数据表,因此请务必在执行前,取消所有的分享,特别是网盘中用户之间的分享,否则会导致文件系统出错。在执行完成后再重新分享即可

mysql -u root -p
show databases;
use myCloud;
show tables;
truncate oc_filecache;
exit

然后再回到网盘的界面刷新一下,就能看到那个文件夹中手动复制过去的文件了

发表回复