安裝雲端硬碟系統owncloud

Linux虛擬主機安裝雲端硬碟系統ownCloud

什麼是owncloud?

ownCloud 是一個自由且開源的個人雲存儲解決方案,包括兩個部分:伺服器和客戶端。ownCloud 最早由 KDE 開發者 Frank Karlitschek 於 2010 年一月創建,目標是成為商業雲服務提供商的替代,並且還創建了nextcloud雲端硬碟系統的這麼一個分支。

與商業雲存儲服務不同,ownCloud 可以自由獲取無需付費,但相應地,用戶必須自行架設 ownCloud 的伺服器,這需要一點技術。不過也是有商業雲存儲服務提供商使用 ownCloud 作為伺服器,例如奧地利商的 OwnCube。

ownCloud 在客戶端可透過網頁介面,或者安裝專用的客戶端軟體來使用。網頁介面當然就是任何能開網頁的平臺都支持,而客戶端軟體也支持相當多平臺,Windows、Linux、iOS、Android 皆有。

除了雲存儲之外,ownCloud 也可用於同步日曆、電子郵件聯繫人、網頁瀏覽器的書簽;此外還有多人線上檔同步協作的功能(類似 google documents 或 Duddle 等等)。

owncloud的優勢

1.內網優勢
(1)內網檔即時同步速度提升、(大檔即使應用下載、修改、編輯等)如設計圖紙、3D、視頻檔、圖形圖像檔等
(2)各部門同步查閱檔等辦公效率大大提升
(3)提升數據安全性(如果需要提升安全係數可增加熱備伺服器等)

2.外網優勢
(1)外網同事等其他部門人員臨時外出只需要查閱某用戶共用檔即可查看辦公等
(2)支持移動端、PC端、Web端訪問提高辦公效率等其他、
(3)隨時隨地上傳至雲端,方便公司員工查閱修改等.
(4)無限速、安全性(需要和服務器系統有關)建議使用linux

安裝owncloud的環境需求

本文將簡單介紹在Ubuntu 20.04 LTS上快速安裝ownCloud,詳細安裝可以查看owncloud官方文檔上的詳細安裝指南下面簡單介紹一下可使用的安裝環境:
操作系統:Ubuntu 20.04 LTS

Php版本:

  • 7.3
  • 7.4(推薦)

數據庫:

  • SQLite
  • MYSQL/MariaDB(推薦)
  • PostgreSQL
  • Oracle 11g(僅限企業版)

Web伺服器:Apache

安裝owncloud

準備

設置域名

my_domain="Your.Domain.tld"
hostnamectl set-hostname $my_domain

更新系統
需要確保所有已安裝的軟件包都是最新的,並且PHP在APT存儲庫中可用。

apt update && \
  apt upgrade -y

創建occ幫助腳本
創建一個幫助腳本來簡化運行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

使幫助腳本可執行

chmod +x $FILE

安裝所需要的軟件包

apt install -y \
  apache2 \
  libapache2-mod-php \
  mariadb-server \
  openssl redis-server wget \
  php-imagick php-common php-curl \
  php-gd php-imap php-intl \
  php-json php-mbstring php-mysql \
  php-ssh2 php-xml php-zip \
  php-apcu php-redis php-ldap \
  php-opcache

安裝smbclient php模塊
如果想要通過SMB鏈接到外部存儲,需要安裝不確定smbclient php模塊

//安裝所需的包
apt-get install -y libsmbclient-dev php-dev php-pear
//使用pecl安裝不確定smbclient php模塊
pecl channel-update pecl.php.net
mkdir -p /tmp/pear/cache
pecl install smbclient-stable
echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini
phpenmod smbclient
systemctl restart apache2
//檢查是否激活成功
php -m | grep smbclient
//成功會顯示以下內容
libsmbclient
Smbclient

安裝推薦的軟件包

//其他有助於調試的工具
apt install -y \
  unzip bzip2 rsync curl jq \
  inetutils-ping  ldap-utils\
  Smbclient

配置Apache

//創建虛擬主機的配置
FILE="/etc/apache2/sites-available/owncloud.conf"
cat <<EOM >$FILE
<VirtualHost *:80>
#ServerName $my_domain #uncommment if variable was set
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

//啟用虛擬主機配置
a2dissite 000-default
a2ensite owncloud.conf

配置數據庫

設置transaction-isolation level後並啟用performance_schema

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 'replace-with-strong-password'";

啟用推薦的Apache模塊

a2enmod dir env headers mime rewrite setenvif
systemctl restart apache2

下載owncloud

cd /var/www/
wget https://download.owncloud.org/community/owncloud-complete-latest.tar.bz2 && \
tar -xjf owncloud-complete-latest.tar.bz2 && \
chown -R www-data. Owncloud

安裝owncloud

occ maintenance:install \
    --database "mysql" \
    --database-name "owncloud" \
    --database-user "owncloud" \
    --database-pass "replace-with-strong-password-from-before" \
    --data-dir "/var/www/owncloud/data" \
    --admin-user "admin" \
--admin-pass "another-strong-password"

注意:需要提供在此之前的數據庫用戶的密碼作為‘--database-pass’的參數;並為自己的雲管理用戶設置一個強密碼。

配置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"

配置cron作業

//將後台作業模式設置為cron
occ background: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

注意:如果需要從LDAP或active directory伺服器同步用戶,請添加下面這個額外的cron作業。每隔4小時,此cron作業將同步owncloud中的LDAP用戶,並禁用無法用於owncloud的用戶。此外,還會獲得一個/var/log/ldap-sync/user-sync.log用於調試的日誌文件。

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

配置緩存和文件鎖定

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

配置日誌輪換

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

到上面為止,我們已經完成owncloud的安裝,為了確保權限是否正確,我們還需要輸入一下內容:

cd /var/www/
chown -R www-data. Owncloud

現在我們可以通過瀏覽器指向owncloud,來確認它是否已準備好啟用HTTPS(例如:使用SSL)。
如果想要檢查是否安裝了正確的owncloud版本以及occ命令是否正常工作,可以執行下面的命令:

occ -V

本文的介紹安裝owncloud到這裡就結束了,一些注意事項和其他的owncloud的使用可以訪問owncloud的官方文檔

Latest posts by ICON Data Centre Limited (see all)