最近鼓捣服务器的想法很多,尝试了一下建立私有云盘,记录一下
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
然后再回到网盘的界面刷新一下,就能看到那个文件夹中手动复制过去的文件了