ubuntu 搭建私有云盘 nextcloud

百度云不好用且有审查,google drive空间太小切要翻墙,我寻思着为啥不自己整一个呢?

VPS 商家推荐

云盘要求自然是存储空间大,网络不翻墙速度过得去就行。最重要的是还得便宜,这两天我试用了两个,感觉还不错,建议你先买一个月试试,好用再年付。

Hostsolutions.月付5.4刀,年付55刀,1T空间,10t流量。

优点是抗投诉,无版权,存什么都没问题,缺点是商家在罗马尼亚,ip也是罗马尼亚且不可选,我家移动网网速很差,裸连几乎不能用,所以我选择了另一家。

Crowncloud.月付5刀,年付50刀,500g存储,3T流量。

美国ip,除了晚高峰速度都是正常的,晚高峰可以用梯子解决,这样梯子的流量不会消耗很大,对于这个价格来说我觉得已经很棒了。

搭建

搭建过程其实和 WordPress 没啥区别,但为了文章的整体性还是把整个流程写一遍。

准备

sudo apt-get update && sudo apt-get upgrade -y 
sudo apt-get install unzip dpkg wget -y

安装 apache2

sudo apt-get install apache2 -y

将 /var/www/html 中的 index.html 删除

配置 MySQL

使用apt命令无法直接获取最新8.0版本的MySQL,需要手动下载deb包(https://dev.mysql.com/downloads/repo/apt/)安装。 以下命令在未来可能会有所不同,自行去网站获取最新

mkdir /temp 
cd /temp 
wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb #版本号可能会更新 

运行完之后,使用命令安装配置好的 MySQL 版本
apt update 
sudo apt-get install mysql-server 

安装完成后查看安装好的 MySQL 用户名和密码

cd /etc/mysql
sudo cat debian.cnf  

配置 PHP

sudo apt-get install php7.2 -y
sudo apt-get install libapache2-mod-php7.2 
sudo apt-get install php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring 
sudo apt-get install php7.2-intl php-imagick php7.2-xml php7.2-zip 

service apache2 restart 

安装 phpMyAdmin

官网:https://www.phpmyadmin.net 以下命令未来可能会不同

cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip
unzip phpMyAdmin-5.0.1-all-languages.zip
rm phpMyAdmin-5.0.1-all-languages.zip 

解压下来的文件夹重命名为phpmyadmin。

访问 http://ip/phpmyadmin ,填入刚刚查看的用户名和密码,然后创建 nextcloud 数据库

安装 nextcloud

官网: https://nextcloud.com/ ,以下命令未来可能不同

cd /var/www/html
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.0.zip
unzip nextcloud-18.0.0.zip
rm nextcloud-18.0.0.zip

sudo chown www-data nextcloud -Rf
sudo chmod 770 nextcloud -Rf

接下来访问 http://ip/nextcloud 就安装完成了

用户和密码输入上面查看的数据库用户和密码,数据库名字填刚刚创建的nextcloud。等待初始化完成即可开始使用

一些问题的解决

Nextcloud 自带一个安全检查,检查完后会有一堆问题

您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。

sudo a2enmod rewrite
cd /etc/apache2
sudo vim apache2.conf
复制进去
<Directory /var/www/html/nextcloud/>
         Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
</Directory>

重启
sudo service apache2 restart

后面两个 “……未正确设置以解析……..” 也会因为这个解决而被解决

PHP 内存限制低于建议值 512MB。

vim /etc/php/7.2/apache2/php.ini
找到 memory_limit 改为512mb

sudo service apache2 restart 

通过HTTP访问网站不安全。

需要域名,证书可以申请 Let’s Encrypt 免费 ssl 证书

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
sudo ./certbot-auto --apache

申请完还需要,去 nextcloud 设置中添加域名
vim /var/www/html/nextcloud/config/config.php

array (
           0 => 'xxx.xxx.xxx.xxx',
           1 => 'xxx.com'
   ),

HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒。

申请完证书就会有这个错误

a2enmod headers
vim /etc/apache2/sites-enabled/000-default-le-ssl.conf #文件可能有所不同
在域名的下一行添加
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

apt install php-apcu
service apache2 restart
vim /var/www/html/nextcloud/config/config.php

添加
'memcache.local' => '\OC\Memcache\APCu',

数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。

cd /var/www/html/nextcloud/
sudo -u www-data php occ db:add-missing-indices

数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。

cd /var/www/html/nextcloud/
sudo -u www-data php occ db:convert-filecache-bigint

完成

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇