ติดตั้ง ownCloud และใช้ user เดียวกับของ ftp server

จาก Wiki Opensource

ปรับปรุงครั้งล่าสุดวันที่ 10-09-2564
เขียนโดย วิบูลย์

สภาพแวดล้อม

  • ติดตั้ง ownCloud ลงบน ubuntu server 20.04
  • ติดตั้ง ownCloud แบบเลือกใช้กับ MySQL Database
  • ติดตั้ง ownCloud เลือกใช้ user เดียวกับ ftp server
  • หากต้องการใช้ user จาก RADIUS server กับ ftp server และ ownCloud ให้อ่านเรื่อง ติดตั้ง ftp server + lib-pam-radius + authen psu-passport และ ldaps


วิธีทำ
อ่านคำแนะนำฉบับภาษาอังกฤษ แนะนำให้ติดตั้งผ่าน repository (http://owncloud.org/install/#instructions-packages) ดังนี้

sudo apt install mysql-server
sudo apt install apache2 php7.4 php7.4-mysql libapache2-mod-php7.4 php7.4-ldap
sudo apt install php7.4-zip php7.4-xml php7.4-intl php7.4-mbstring php7.4-gd php7.4-curl

echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/server:/10/Ubuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/isv:ownCloud:server:10.list

curl -fsSL https://download.opensuse.org/repositories/isv:ownCloud:server:10/Ubuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/isv_ownCloud_server_10.gpg > /dev/null

sudo apt update
sudo apt install owncloud-complete-files

สร้าง database ใน MySQL server ดังนี้

sudo mysql -uroot -p
CREATE DATABASE ocdb CHARACTER SET 'UTF8';
CREATE USER 'ocuser'@'localhost' IDENTIFIED BY 'ocpass';    
GRANT ALL PRIVILEGES ON ocdb.* TO 'ocuser'@'localhost'  WITH GRANT OPTION;
FLUSH PRIVILEGES;


เข้าเบราว์เซอร์ และใส่ address ดังนี้
http://server-ip/owncloud/

Create an admin account
username: admin ตั้งชื่อได้ตามต้องการ
password: ******* ตั้งรหัสผ่านได้ตามต้องการ

Storage & database คลิกสามเหลี่ยมเพื่อเลือก

Data folder ใส่ข้อมูล
/var/www/owncloud/data

Configure the database
เลือก MySQL/MariaDB

ใส่ข้อมูล
Database user: ocuser
Database password: ocpass
Database name: ocdb
localhost

เมื่อใส่ข้อมูลถูกต้องตามที่สร้าง MySQL Database จะเข้าสู่หน้าเว็บ admin ได้
แต่จะมีคำแนะนำว่า ให้ใช้งานผ่าน https

ให้ติดตั้ง https ตามวิธีของท่าน (หากทดสอบ อาจข้ามขั้นตอนนี้)

คลิกที่ Apps แล้วเลือก +Apps
เลือก External user support คลิก Enable

กลับมาที่ Terminal ของ server

ใส่ข้อมูลเกี่ยวกับ External user support ที่เราจะใช้กับ ftp user
sudo vi /var/www/owncloud/config/config.php
เพิ่มข้อมูลในช่วง ####
####
'user_backends' => array (
array (
'class' => 'OC_User_FTP',
'arguments' => array ('localhost'),
),
),
####

ตัวอย่างผลลัพธ์
cat /var/www/owncloud/config/config.php
<?php
$CONFIG = array (
'instanceid' => 'oc8015c6f446',
'passwordsalt' => 'afd9d0a35f37877c235e50ff4df498',
'secret' => '9cac108ed230048591e0eae4416d3a0cc3eda09e011c72afe226f712e56883a8222971f5a1409e595890259d9bdd397c',
'trusted_domains' =>
array (
0 => '192.168.xxx.xxx',
),
'datadirectory' => '/var/www/owncloud/data',
'overwrite.cli.url' => 'http://192.168.xxx.xxx/owncloud',
'dbtype' => 'mysql',
'version' => '7.0.4.2',
'dbname' => 'ocdb',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'ocuser',
'dbpassword' => 'ocpass',
'installed' => true,
####
'user_backends' => array (
array (
'class' => 'OC_User_FTP',
'arguments' => array ('localhost'),
),
),
####
);

ต่อไปกลับไปที่เบราว์เซอร์เข้าใช้งานด้วย user ที่ใช้งานกับ ftp server ที่เราติดตั้ง เสร็จแล้ว เช่น bobby จะเห็นว่าเข้าใช้งานได้
หมายความว่า user ที่เรา เข้าใช้งาน ftp ด้วยคำสั่ง ftp user@localhost ได้นั้นจะเข้าใช้งานกับ ownCloud ได้ทันที

ต่อไปเข้าใช้งานด้วย user admin เพื่อ Create Group ชื่อ ftpuser
แล้วเปลี่ยน Groups ให้ user bobby นั้นอยู่ในกรุ๊ป ftpuser (ถ้าต้องการ)
แต่ช่อง Group Admin ยังคงเป็นคำว่า Group Admin