Owncloud Server 端配置指南

CentOS 8 简易版

快速安装

不使用自定义域名,10 分钟内搞定。

安装 LAMP 依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
dnf update

# install web server
dnf install httpd httpd-tools -y
systemctl enable httpd
systemctl start httpd

# install MariaDB
dnf install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb

# install PHP 7
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
dnf module list php
dnf module reset php
dnf module enable php:remi-7.4
dnf install php php-opcache php-gd php-curl php-mysqlnd -y
php -v

systemctl enable php-fpm
systemctl start php-fpm
systemctl status php-fpm

setsebool -P httpd_execmem 1
systemctl restart httpd

# vim /var/www/html/info.php
<?php phpinfo(); ?>
# check it at http://ip_address/info.php

# install PHP extensions
dnf install php-curl php-gd php-intl php-json php-ldap \
php-mbstring php-mysqlnd php-xml php-zip php-opcache -y

安装 OwnCloud

https://download.owncloud.com/server/ 上找到需要安装的版本,复制下载链接:

1
2
3
4
wget https://download.owncloud.com/server/owncloud-version.tar.bz2
dnf install bzip2 -y
tar -jxf owncloud-version.tar.bz2 -C /var/www/
chown -R apache: /var/www/owncloud

配置 Web Server

创建 owncloud.conf

1
vim /etc/httpd/conf.d/owncloud.conf

保存以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Alias / "/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/owncloud

</Directory>

重启 web 服务器:

1
2
systemctl restart httpd
setsebool -P httpd_unified 1

配置数据库

在网页端打开 http://your-server-ip/owncloud,输入 admin 账号和密码,保存并登录即可。

Ubuntu 自定义域名安装

Prerequisite

参考文档:OwnCloud Server

设置初始数据

更新系统:

1
apt update

设置域名(可选):

1
my_domain="cloud.ajiew.me"

设置管理员和数据库密码:

1
2
3
4
5
sec_admin_pwd=$(openssl rand -base64 18)
echo $sec_admin_pwd > /etc/.sec_admin_pwd.txt

sec_db_pwd=$(openssl rand -base64 18)
echo $sec_db_pwd > /etc/.sec_db_pwd.txt

创建 occ 脚本

1
2
3
4
5
6
7
8
9
FILE="/usr/local/bin/occ"

cat <<EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM

chmod +x $FILE

安装依赖

如果是 Ubuntu 20+ 以上的系统,按照以下步骤(参考 manual_installation):

安装 PHP:

1
apt install php7.4-fpm php-cgi php-pear -y

如果已经安装了其它版本的 PHP,需要切换成 php7.4:

1
update-alternatives --set php /usr/bin/php7.4

更新 PEAR:

1
2
3
4
5
6
mkdir -p /tmp/pear/cache

pear clear-cache
pear update-channels
pear upgrade --force
pear version

安装核心依赖:

1
2
3
4
5
6
7
apt install -y \
apache2 libapache2-mod-php \
mariadb-server openssl redis-server wget php-imagick \
php-common php-curl php-gd php-gmp php-bcmath php-imap \
php-intl php-json php-mbstring php-mysql php-ssh2 php-xml \
php-zip php-apcu php-redis php-ldap php-phpseclib \
smbclient redis-server unzip openssl rsync imagemagick \

安装其它依赖:

1
2
3
4
apt install -y \
unzip bzip2 rsync curl jq \
inetutils-ping ldap-utils\
smbclient

配置 Apache

创建 VirtualHost 配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FILE="/etc/apache2/sites-available/owncloud.conf"

cat <<EOM >$FILE
<VirtualHost *:8000>
ServerName $my_domain
DirectoryIndex index.php index.html
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud>
Options +FollowSymlinks -Indexes
AllowOverride All
Require all granted

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
EOM

启用配置:

1
2
3
4
5
a2dissite 000-default
a2ensite owncloud.conf

# 如果修改了配置,需要重新加载
systemctl reload apache2

创建数据库

1
2
3
4
5
6
7
8
sed -i "/\[mysqld\]/atransaction-isolation = READ-COMMITTED\nperformance_schema = on" /etc/mysql/mariadb.conf.d/50-server.cnf

systemctl start mariadb

mysql -u root -e "CREATE DATABASE IF NOT EXISTS owncloud; \
GRANT ALL PRIVILEGES ON owncloud.* \
TO owncloud@localhost \
IDENTIFIED BY '${sec_db_pwd}'";

启用推荐的模块:

1
2
a2enmod dir env headers mime rewrite setenvif
systemctl restart apache2

安装 OwnCloud

下载

1
2
3
4
cd /var/www/

wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 && \
tar -xjf owncloud-complete-latest.tar.bz2 && chown -R www-data. owncloud

安装

1
2
3
4
5
6
7
8
occ maintenance:install \
--database "mysql" \
--database-name "owncloud" \
--database-user "owncloud" \
--database-pass ${sec_db_pwd} \
--data-dir "/var/www/owncloud/data" \
--admin-user "admin" \
--admin-pass ${sec_admin_pwd}

配置 IP 和域名

1
2
3
my_ip=$(hostname -I|cut -f1 -d ' ')
occ config:system:set trusted_domains 1 --value="$my_ip"
occ config:system:set trusted_domains 2 --value="$my_domain"

配置定时任务

1
2
3
4
5
6
7
8
9
occ background:cron

echo "*/15 * * * * /var/www/owncloud/occ system:cron" \
| sudo -u www-data -g crontab tee -a \
/var/spool/cron/crontabs/www-data

echo "0 2 * * * /var/www/owncloud/occ dav:cleanup-chunks" \
| sudo -u www-data -g crontab tee -a \
/var/spool/cron/crontabs/www-data

配置缓存和文件锁

1
2
3
4
5
occ config:system:set memcache.local --value '\OC\Memcache\APCu'

occ config:system:set memcache.locking --value '\OC\Memcache\Redis'

occ config:system:set redis --value '{"host": "127.0.0.1", "port": "6379"}' --type json

确保拥有权限

1
chown -R www-data. owncloud

测试和使用

首先,使用服务器 IP 地址登录:your.ip.address/index.php/login,如果测试能够打开,则说明服务安装成功,接下来可以配置自定义域名。

1
vim /var/www/owncloud/config/config.php

找到 trusted_domains 在其下的数组中添加你的域名:

1
2
3
4
5
array (
0 => 'localhost',
1 => 'your.ip.address',
3 => 'your.domain.name',
),

最后,打开你的域名的 DNS 配置,将目标域名解析到你的服务器地址。