nextcloud 搭建自己的存储服务器

前言
nextcloud 是owncloud的一个分支,对比参考。 此教程为在Arch Linux平台上搭建的教程,Arch Linux 软件源包含nextcloud。安装Arch时推荐格式化一个分区作为数据分区,日常使用也推荐将home单独一个分区。我只是用小主机搭建了可以内网使用的,外网使用需要公共ip,使用**云的不要拍砖(千万不要够买 orico 奥睿科 的任何产品). ssh服务启用,更多参考wiki
pacman -Syu openssh
systemctl start sshd.service
systemctl enable sshd.service

安装
nextcloud需要的软件为: Nextcloud requires several components:[1]
  • A web server: Apache or nginx
  • A database: MariaDB/MySQL, PostgreSQL or Oracle
  • PHP with additional modules

以上列表内容选择其中一个即可,我对apache和nginx都不熟悉,按首字母排序选择apache?。数据库推荐MariaDB,MariaDB是MySQL的一个变种。php为必须安装,你可以编译安装nextcloud。
执行命令安装相关包:
pacman -S nextcloud mariadb php php-intl php-admin php-apache

Pacman (hook)钩子 要在更新时自动升级Nextcloud数据库,需要创建pacman钩子:
/etc/pacman.d/hooks/nextcloud.hook



[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = nextcloud
Target = nextcloud-app-*

[Action]
Description = Update Nextcloud installation
When = PostTransaction
Exec = /usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/nextcloud/occ upgrade

配置mysql/mariadb。
mariadb需要初始化目录
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service

systemctl简单介绍,enable 开机自动启动,start 启动。

如果你是新安装mysql需要先创建root用户,然后再创建其它用户和分配权限。创建用户和分配权限不是必须操作,如果不创建用户和分配权限,它可以方便你和其他人删库跑路。

mysql -u root -p # 登录

mysql> CREATE DATABASE `nextcloud` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

mysql> CREATE USER `yourname`@'localhost' IDENTIFIED BY 'password';

# 授权允许访问
mysql> GRANT ALL PRIVILEGES ON `nextcloud`.* TO `nextcloud`@`localhost`;

配置PHP
编辑 /etc/php/php.ini
取消注释以下行或内容,删除前边的 #
extension=gd
iconv
#mysql
extension=pdo_mysql
extension=mysqli

配置Apache
Copy the Apache configuration file to the configuration directory:

cp /etc/webapps/nextcloud/apache.example.conf /etc/httpd/conf/extra/nextcloud.conf # 复制配置

<IfModule mod_alias.c>
    Alias /nextcloud /usr/share/webapps/nextcloud/
</IfModule>

<Directory /usr/share/webapps/nextcloud/>
    Options FollowSymlinks
    AllowOverride all
    Require all granted
    php_admin_value open_basedir "/srv/http/:/dev/urandom:/tmp/:/usr/share/pear/:/usr/share/webapps/nextcloud/:/etc/webapps/nextcloud:/home/nextcloud"
</Directory>
<!-- http 端口 -->
<VirtualHost *:80>
    ServerAdmin foo@foofarm.com
    DocumentRoot /usr/share/webapps/nextcloud
    ServerName nextcloud.foo.com
    ErrorLog /var/log/httpd/nextcloud.foo.info-error_log
    CustomLog /var/log/httpd/nextcloud.foo.info-access_log common
</VirtualHost>

Modify the file according to your preferences. By default it includes an alias for /nextcloud pointing to /usr/share/webapps/nextcloud.
And include it in /etc/httpd/conf/httpd.conf:
修改 /etc/httpd/conf/httpd.conf
加入
Include conf/extra/nextcloud.conf

修改 /etc/httpd/conf/httpd.conf
注释如下行
LoadModule mpm_event_module modules/mod_mpm_event.so
and uncomment the line:

取消注释如下行
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

LoadModule的列表最后添加
LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php

Include conf/extra/php7_module.conf

cat /etc/group #查看用户组

储存目录设置
可以看到有http用户组,这个就是webserver 的用户组,这一点和nextcloud官方文档的www不相同(可能是发行版缘故)。
初始化存储目录
mkdir -p /usr/share/webapps/nextcloud/data
chown http:http /usr/share/webapps/nextcloud/data
chown http:http /usr/share/webapps/nextcloud/apps
chmod 750 /usr/share/webapps/nextcloud/data
chmod 750 /usr/share/webapps/nextcloud/apps

创建数据目录,默认是在:/usr/share/webapps/nextcloud/data。之前说过单独分区,我是把单独分区挂载到home上,所以在home创建文件夹nextcloud。
mkdir nextcloud
chown http:http /home/nextcloud/
systemctl start httpd.service
systemctl enable httpd.service

输入你的服务器IP地址,例如192.168.1.101,可以看到让你配置数据库、用户名、和数据(文件)存放地址,填进去就好了。你的用户名(管理员)和密码(非明文)存放在/usr/share/webapps/nextcloud/data的php配置中.
由于是在安装后一个多月写的此文,所以可能部分细节忘记了

优化
进入nextcloud 点击头像,设置→管理→ 基本设置有优化提示,按照操作完成(需要linux基础)。 点击头像→用户,创建用户和管理用户
补充:http 用户组是和发行版有关,此文写的时间太久了
陈美丽 拥护品葱习惯法
给技术流点赞。10个字。
1901zxc已停用 ? 已停用 We shall meet in the place where there is no darkness.
雖然用不到, 但是這種認真寫長文的一定要點個贊

要发言请先登录注册