內容目錄
什麼是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的官方文檔。
- 使用手機Outlook登入公司信箱 - 2022-04-08
- 公司Email申請服務 - 2022-04-07
- 科技券計劃常見問題2 - 2022-04-06