树莓派使用owncloud或者nextcloud建立私有云
owncloud和nextcloud的爱恨情仇,大家自行百度一下吧,知道了这些之后,也就会发现,为啥owncloud的安装和nextcloud的安装时如此的神似,我们先介绍一下owncloud 的安装方式,然后在对nextcloud进行类比。
1、LAMP的安装
开始安装owncloud之前,首先需要Apache, MySQL/MariaDB, PHP的支持,以下使用MySQL作为数据库进行安装
sudo apt-get install apache2 mysql-server libapache2-mod-php5
sudo apt-get install php5-gd php5-json php5-mysql php5-curl
sudo apt-get install php5-intl php5-mcrypt php5-imagick
第一行安装运行完之后,MySQL需要配置root用户的密码
2、安装owncloud
官方网址https://owncloud.org/install/
可以选择网页直接下载然后解压缩
也可以命令行下载(不过好像需要梯子,有时候用梯子速度也很慢,没搞懂是怎么回事,费了很大的劲总算是下载下来了<但是不知为啥解压缩除了问题>)
wget https://download.owncloud.org/community/owncloud-9.1.0.tar.bz2
下载完后可考虑进行MD5或SHA256校验,此处不再叙述
接下来复制owncloud文件夹至webserver的文件根目录下,若没有更改过Apache设置,则直接执行以下命令
sudo cp -r owncloud /var/www
至此,ownCloud安装完毕
3、Apache2服务器的配置
因为该步骤的都是在root的前提下进行的,所以也可以先sudo su 直接切换到root权限,但是我个人还是有点喜欢sudo apt-get install 这种风格的(问题不大)
cd /etc/apache2/sites-available/
vi owncloud.conf (这个文件是先前不存在的,相当于新建了一个)
将一下文字复制进owncloud.conf配置文件
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
注意格式不要乱
好几次都是复制的这个的代码,然后在重启Apache2的时候就会莫名的报错,
将配置文件symlink到/etc/apache2/sites-enabled下
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
创建文件链接后,可以看到/etc/apache2/sites-enabled/文件夹下多了一个owncloud.conf文件,此文件的更改和/etc/apache2/sites-available/下owncloud.conf文件的更改同步
接下来为可选设置,但建议还是设置一下
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
禁用服务器默认的认证方式:在上面提到的owncloud.conf文件中<Directory部分加入以下内容
Satisfy Any
也就是会成为这个样子
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
重启 Apache service apache2 restart
开启SSL
a2enmod ssl
a2ensite default-ssl
service apache2 reload
4、ownCloud 配置
首先,把owncloud目录的给你的HTTP user,树莓派原生系统下默认为www-data
chown -R www-data:www-data /var/www/owncloud/ (也是root权限)
5、将ownCloud开放到外网
开放外网之前先要进行安全设置
设置可信任域名
要使用固定域名或IP访问你的ownCloud,首先必须将其添加进/var/www/owncloud/config下的config.php文件下,更改内容如下
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'server1.example.com',
2 => '192.168.1.50',
),
第一行为树莓派本地,第二行为将要使用的固定域名,第三行为树莓派内网IP。如外网有固定IP,也可将固定IP加至此列表。
为owncloud文件夹设置权限
之前配置时已经设置过owncloud文件夹由www-data用户访问,即以下命令
chown -R www-data:www-data /var/www/owncloud/
为安全起见,建议将/var/www/owncloud/.htaccess和/var/www/owncloud/data/.htaccess设置为root用户可读写,www-data用户仅只读
chown root:www-data /var/www/owncloud/.htaccess
chown root:www-data /var/www/owncloud/data/.htaccess
注:ownCloud官网有提供一个权限设置脚本,建议不要使用,因上次树莓派被搞崩溃就是因为在执行此脚本时不知道什么原因将树莓派所有文件设置为www-data用户所有,连root用户都失去了权限。。。
设置域名默认访问页面
设置前域名默认指向Apache2默认页面,将/etc/apache2/sites-enabled/下的000-default.conf和default-ssl.conf文件中的
DocumentRoot /var/www/html
改为
DocumentRoot /var/www/owncloud
设置http自动转https访问
更改/etc/apache2/site-enabled/000-default.conf
在<VitualHost *:80>下面添加如下三行
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
端口转发
该设置的安全设置设置完毕后,即可对内网的树莓派进行端口转发,将其开放至外网。端口转发时建议将默认的80、443等端口转发为其他端口,因为80、443等端口可能被网络服务提供商禁用,导致无法顺利开放至外网。
对于动态IP,可考虑去no-ip类似网站申请一个免费域名,并将其定时更新脚本安装在树莓派上,设置为开机自动启动即可。
参考博客:http://blog.****.net/Meow323/article/details/52409142
下面来看一波nextcloud的安装方式
先附上官网的安装教程:
https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
apt-get install apache2 mariadb-server libapache2-mod-php7.0
apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip
其实第一步中的mariadb-server完全可以由mysql-server替换,虽然博主现在还没有学习关于数据库的东西,但是好像mysql才是最正统的
在安装mysql的时候会提示你设置密码,按步骤设置就好了。
官网给出的是+以Ubuntu16.04 LTS Server为例安装的,给出来的php的版本也比较高,但是总的来说还是先安装那一套LAMP,(不过我的是在php5的情况下,也就是安装owncloud的前提条件中的LAMP的配置把nextcloud配置好的)。
安装好LAMP以后就可以去官网下载nextcloud的压缩包了
wget https://download.nextcloud.com/server/releases/nextcloud-x.y.z.tar.bz2.asc
tar -xjf nextcloud-x.y.z.tar.bz2
可以访问一下 https://download.nextcloud.com/server/releases/ 这个网站能看到好多版本的
反正就是想方设法找到安装包,然后解压缩,附上nextcloud的官方下载页:https://nextcloud.com/install/
如果你也到owncloud的官网去下载过,你会发现这两个界面的风格出奇的相似、
同样我们将下载好的压缩包解压,然后复制到/var/www下面
官网给出这个通式,其实也就是
cp -r nextcloud /path/to/webserver/document-root
sudo cp -r nextcloud /var/www
下一步 vi /etc/apache2/sites-available/nextcloud.conf
跟安装owncloud一样,只不过是名称不同,加入以下代码,也只是将owncloud改为了nextcloud
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
同样去创建一个软连接
sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod setenvif
同样的执行这几个命令,在上边配置owncloud的过程中我们都用过
加这句话加入到<Directory >
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
service apache2 restart
打开SSL
a2enmod ssl
a2ensite default-ssl
service apache2 reload
sudo chown -R www-data:www-data /var/www/nextcloud/
到此为止就结伴完工了,更加详细的或者原版的教程可以看官方给的文章,在这里我只是对这几天反复搞owncloud和nextcloud做出的一点点小总结
访问你的地址 出次会提示你设置管理员账号和密码
输入数据库名称啥的(就是这张图的最下面的)
同时,我也还有一些问题没有解决,比如http的问题,安卓和苹果的手机端都是提示输入https的服务器地址,然后这个搭出来的应该算是http的地址。
Http的地址在电脑端还好,可以进行访问,在win的客户端也可以忽略安全性进行访问,然而加上
这一段以后,http就基本全崩了,只能用Chrome或者360浏览器访问了,而且会提示不安全,目前我的计算机网络的知识有限,所以没能解决这个问题。
另附nextcloud客户端的下载地址:客户端下载页https://nextcloud.com/clients/