Ubuntu 22.04安装ownCloud教程

 下面的安装过程请根据自己的实际情况对应调整,特别是密码请设定自己。

1. 设置您的域名

my_domain="owncloud.ijiyuan.net "

echo $my_domain


hostnamectl set-hostname $my_domain

hostname -f

2. 更新您的系统

apt update && \

  apt upgrade -y

3. 创建 occ 帮助脚本

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

4. 使帮助脚本可执行

chmod +x $FILE

5. 安装所需的软件包

sudo add-apt-repository ppa:ondrej/php -y

sudo apt update && sudo apt upgrade


apt install -y \

  apache2 \

  libapache2-mod-php7.4 \

  mariadb-server openssl redis-server wget \

  php7.4 php7.4-imagick php7.4-common php7.4-curl \

  php7.4-gd php7.4-imap php7.4-intl php7.4-json \

  php7.4-mbstring php7.4-gmp php7.4-bcmath php7.4-mysql \

  php7.4-ssh2 php7.4-xml php7.4-zip php7.4-apcu \

  php7.4-redis php7.4-ldap php-phpseclib

6. 安装 smbclient php 模块

apt-get install -y php7.4-smbclient

echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini

phpenmod smbclient

systemctl restart apache2

7. 检查是否激活成功

php -m | grep smbclient


应该显示以下输出

libsmbclient

smbclient

8. 安装推荐的软件包

apt install -y \

  unzip bzip2 rsync curl jq \

  inetutils-ping  ldap-utils\

  smbclient

9. 配置 Apache 创建虚拟主机配置

FILE="/etc/apache2/sites-available/owncloud.conf"

cat <<EOM >$FILE

<VirtualHost *:80>

# uncommment the line below if variable was set

#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

10. 测试配置

apachectl -t


应当输出

apachectl -t

AH00112: Warning: DocumentRoot [/var/www/owncloud] does not exist

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Syntax OK

11.处理警告

安装 ownCloud 后,第一个警告将会解决。第二个消息可以使用以下命令解决。检查文件中的条目是否仅出现一次apache2.conf

echo "ServerName $my_domain" >> /etc/apache2/apache2.conf

12. 启用虚拟主机配置

a2dissite 000-default

a2ensite owncloud.conf

13. 配置数据库

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; \

  CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'Passw0rd'; \

  GRANT ALL PRIVILEGES ON *.* TO 'owncloud'@'localhost' WITH GRANT OPTION; \

  FLUSH PRIVILEGES;"

14. 启用推荐的 Apache 模块

a2enmod dir env headers mime rewrite setenvif

systemctl restart apache2

15. 下载 ownCloud

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

16. 安装 ownCloud

occ maintenance:install \

    --database "mysql" \

    --database-name "owncloud" \

    --database-user "owncloud" \

    --database-pass "Passw0rd" \

    --data-dir "/opt/owncloud/data" \

    --admin-user "admin" \

--admin-pass "Passw0rd"

17. 配置 ownCloud 的受信任域

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"

18. 配置 cron 作业

occ background:cron

19. 设定cron作业

将 cron 作业的执行设置为每 15 分钟一次,并在每天晚上 2 点清理块

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

20. 同步LDAP用户

从 LDAP 或 Active Directory 服务器同步用户,请添加此额外的cron 作业,下面配置是6小时

echo "1 */6 * * * /var/www/owncloud/occ user:sync \

  'OCA\User_LDAP\User_Proxy' -m disable -vvv >> \

  /var/log/ldap-sync/user-sync.log 2>&1" \

  | sudo -u www-data -g crontab tee -a \

  /var/spool/cron/crontabs/www-data

mkdir -p /var/log/ldap-sync

touch /var/log/ldap-sync/user-sync.log

chown www-data. /var/log/ldap-sync/user-sync.log

21. 配置缓存和文件锁定

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

22. 配置日志轮换

FILE="/etc/logrotate.d/owncloud"

sudo cat <<EOM >$FILE

/var/www/owncloud/data/owncloud.log {

  size 10M

  rotate 12

  copytruncate

  missingok

  compress

  compresscmd /bin/gzip

}

EOM

23. 确保权限正确

cd /var/www/

chown -R www-data. Owncloud

24. 检查您是否安装了正确版本的 ownCloud 以及 occ 命令是否正常运行

occ -V

echo "Your ownCloud is accessable under: "$my_ip

echo "Your ownCloud is accessable under: "$my_domain

echo "The Installation is complete."

25.启用SSL

apache2启用ssl

sudo a2enmod ssl

  添加下面配置

<VirtualHost *:443>

       ServerName owncloud.ijiyuan.net

       DocumentRoot /var/www/owncloud

       DirectoryIndex index.html index.php


       ErrorLog ${APACHE_LOG_DIR}/owncloud.error.log

       CustomLog ${APACHE_LOG_DIR}/owncloud.access.log combined


       <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>

      

       SSLEngine on

       SSLCertificateFile      /etc/apache2/ssl/qxssl.crt

       SSLCertificateKeyFile   /etc/apache2/ssl/qxssl.key

      

       Protocols h2 http/1.1


       Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

       Header always set X-Frame-Options SAMEORIGIN

       Header always set X-Content-Type-Options nosniff

       Header set X-XSS-Protection "1; mode=block"

       Header always set Referrer-Policy strict-origin-when-cross-origin

</VirtualHost>


# intermediate configuration

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1

SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

SSLHonorCipherOrder     off

SSLSessionTickets       off


SSLUseStapling On

SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

修改80转向

Redirect permanent / https://owncloud.ijiyuan.net/

重启

systemctl restart apache2

26.禁用指定用户双因素认证

如果启用了双因素认证,用户因更换设备导致无法登陆,使用下面方法解决

禁用

sudo -u www-data ./occ twofactorauth:disable [options] [--] <uid>

启用

sudo -u www-data ./occ twofactorauth:enable [options] [--] <uid>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海科技服务

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值