一、環境
1)Linux系統:CentOS 7.7.1908
2)owncloud-8.0.16.tar.bz2
下載地址:https://owncloud.org/download/older-versions/
3)VMware11 安裝 Linux 虛擬機、Windows7 環境
二、安裝LAMP
#安裝軟件包 yum install -y httpd php php-mysql mariadb-server mariadb php-dom php-mbstring php-gd php-pdo #啟動服務 systemctl start httpd systemctl start mariadb #查看數據庫啟動狀態 systemctl status mariadb #關閉防火牆 systemctl stop firewalld.service #開機禁用防火牆自啟 systemctl disable firewalld.service #查看防火牆狀態 systemctl status firewalld.service #關閉selinux,此處是臨時關閉,后續需永久關閉 setenforce 0 #查看各項服務監聽情況 netstat -ntlp
三、安裝OwnCloud
#上傳並解壓owncloud安裝包,將owncloud-8.0.16.tar.bz2上傳至/opt/owncloud目錄 #如果提示無法解壓,可安裝 yum install bzip2 tar -jxvpf owncloud-8.0.16.tar.bz2 #拷貝解壓后的文件夾至php服務器根目錄 cp -r owncloud /var/www/html/ #開放目錄權限 chown -R apache:apache /var/www/html/owncloud/ chmod -R 777 /var/www/html/owncloud/
四、創建數據庫
#設置root密碼為123456 mysqladmin -u root password "123456" #登錄數據庫 mysql -u root -p #數據庫命令操作,創建owncloud數據庫 MariaDB [(none)]> create database owncloud; MariaDB [(none)]> show databases; MariaDB [owncloud]> exit #重啟httpd服務 service httpd restart
五、訪問測試
訪問地址:http://192.168.1.13/owncloud,設置初始管理員賬號,和數據庫連接信息
六、添加開機啟動項
1)將啟動腳本 owncloud 復制到目錄 /etc/rc.d/init.d/ 下
#!/bin/sh #chkconfig: 2345 80 90 #description:owncloud start shell systemctl start httpd systemctl start mariad
2)添加執行權限:chmod +x owncloud
3)添加到開機啟動項:chkconfig --add owncloud
4)設置開機啟動:chkconfig owncloud on
5)查看開機啟動項是否添加成功:chkconfig –list
6)永久關閉 selinux
修改/etc/selinux/config 文件 將SELINUX=enforcing改為SELINUX=disabled 重啟機器即可
七、配置 OwnCloud 存儲目錄
1)配置 VMware 共享目錄 I:\OwnCloudData,映射目錄名稱 owncloud_data
2)Linux 虛擬機安裝VMware Tools 工具
#進入/mnt目錄 cd /mnt mkdir cdrom #vmware 點擊 "虛擬機"->"安裝VMware Tools" #掛載 mount -t iso9660 /dev/cdrom /mnt/cdrom #將vmware tools安裝包拷貝出來 cd /mnt/cdrom cp VMwareTools-9.9.2-2496486.tar.gz /opt cd /opt #解壓並安裝 #在安裝前,確保gcc、binutils、make、kernel等安裝包已安裝 tar -zxvf VMwareTools-9.9.2-2496486.tar.gz cd vmware-tools-distrib/ #安裝,一路回車即可 ./vmware-install.pl
是不是很復雜,還容易掛,對的,其實 CentOS7 之后,可以通過一個簡單的命令直接安裝 vmtool。︿( ̄︶ ̄)︿ 我絕不是故意寫后面的,哈哈哈哈哈
#一步到位安裝完成 yum install open-vm-tool
3)Linux 虛擬機掛載 Windows 共享目錄為 OwnCloud 存儲目錄
(注意:默認掛載使用 root:root 權限,而 owncloud 存儲目錄需要使用 apache:apache 的權限,此處掛載命令,需要指定用戶和組的ID,可通過查看 /etc/passwd 和 /etc/group 來查看 apache 用戶和 apache 組的ID,此處都是 48)
#掛載vmware共享目錄
sudo /usr/bin/vmhgfs-fuse .host:/owncloud_data /mnt/hgfs -o allow_other -o uid=48 -o gid=48 -o umask=022
4)修改 OwnCloud 的存儲目錄
#關閉httpd服務 service httpd stop #將linux上 /var/www/html/owncloud/data 存儲目錄內容下載到windows共享目錄中 #修改owncloud的存儲路徑配置 cd /var/www/html/owncloud/config #備份配置文件 cp config.php config.php.bak #修改配置文件datadirectory(存儲路徑)值為/mnt/hgfs
#vi config.php
5)開機自動掛載,修改啟動腳本 /etc/rc.d/init.d/owncloud,添加掛載命令
#!/bin/sh #chkconfig: 2345 80 90 #description:owncloud start shell systemctl start httpd systemctl start mariadb sudo /usr/bin/vmhgfs-fuse .host:/owncloud_data /mnt/hgfs -o allow_other -o uid=48 -o gid=48 -o umask=022
6)在使用掛載的磁盤情況下,會報如下更改權限錯誤,此時需關閉數據目錄的權限檢查,在高版本 owncloud 或 nextcloud 中,可在config.php里面加上,'check_data_directory_permissions' => false,進行關閉。可惜我們用的是 owncloud-8.0.16,並沒有提供這項配置(高版本環境依賴,需要升級 php,也很麻煩),這里可以通過修改 php 的代碼,通過數據目錄權限檢查函數返回空數組的方式,規避該問題。
7)打開 /var/www/html/owncloud/lib/private 目錄,備份 util.php,通過 vi 打開 util.php,找到 checkDataDirectoryPermissions 方法,將內部實現注釋掉(/**/),返回空數組即可。
8)重啟 httpd 服務
#重啟httpd服務
service httpd restart
八、Windows 下搭建 OwnCloud
原計划是在 Windows 下搭建,根據網絡資料,owncloud 支持 windows 的最高版本只到 8.0.16,依賴於 wampserver 環境,但是搭建后發現存在無法創建中文目錄和上傳中文文件名的文件的問題(創建或上傳后亂碼),統一服務器編碼后仍未解決,故改為在 Linux 虛擬機上搭建,並使用 VMware 共享磁盤存儲的方式
wampserver3.2.0_x64.exe
下載地址:https://sourceforge.net/projects/wampserver/
問題原因暫不明確,后續找到解決方案后完善 >_<
九、FAQ
1、提示根目錄下沒有 .ocdata,但實際有該文件![]()
原因:VMware 共享文件夾掛載使用的是默認 root:root 權限,需改為 apache:apache 權限。
解決:修改掛載命令為 sudo /usr/bin/vmhgfs-fuse .host:/owncloud_data /mnt/hgfs -o allow_other -o uid=48 -o gid=48 -o umask=022
十、參考資料
搭建OwnCloud私有雲:https://blog.csdn.net/qq_28938933/article/details/82828454
VMware 掛載共享磁盤:https://jarviswwong.com/ubuntu-vmware-hgfs-permissions-problem.html
搭建高版本 owncloud:http://www.likecs.com/show-35989.html







