OwnCloud là phần mềm máy chủ để đồng bộ hóa dữ liệu và chia sẻ tệp với giao diện web dễ sử dụng, có sẵn theo giấy phépmã nguồn mở. OwnCloud có thể được cài đặt trên máy chủ web Linux hoặc Windows, dễ cấu hình và có tài liệu hướng dẫn trực tuyến toàn diện. Máy khách gốc có sẵn cho Windows, MacOS và Linux (Ứng dụng dành cho máy tính để bàn). Ngoài ra còn có ứng dụng di động cho Android và iOS.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt và cấu hình ownCloud 9.1 trên máy chủ CentOS 7. Tôi sẽ chỉ cho bạn cách cấu hình ownCloud với Nginx và PHP 7 (dưới dạng FPM) và MariaDB dưới dạng hệ thống cơ sở dữ liệu.
Bây giờ hãy cài đặt Nginx từ kho lưu trữ Epel.
Bây giờ chúng ta phải thêm một kho lưu trữ khác cho php7-fpm. Có một số kho lưu trữ cho PHP 7 có sẵn trên mạng, tôi sẽ sử dụng kho lưu trữ webtatic ở đây.
Thêm kho lưu trữ webtatic:
Tiếp theo, cài đặt PHP7-FPM với một số gói bổ sung để cài đặt ownCloud.
Kiểm tra phiên bản PHP từ thiết bị đầu cuối máy chủ để đảm bảo cài đặt thành công.
Chỉnh sửa cấu hình php7-fpm mặc định bằng vim.
Ở dòng 8 và 10, hãy đổi người dùng và nhóm thành 'nginx'.
Ở dòng 22, hãy đảm bảo php-fpm đang chạy dưới cổng máy chủ 9000.
Bỏ chú thích các dòng 366-370 cho các biến môi trường hệ thống php-fpm.
Lưu tệp và thoát khỏi trình soạn thảo
Tiếp theo, tạo một thư mục mới cho đường dẫn phiên trong thư mục '/var/lib/' và thay đổi chủ sở hữu thành người dùng 'nginx'.
Khởi động php-fpm và nginx, sau đó thêm nó để khởi động khi khởi động.
Cấu hình PHP7-FPM đã hoàn tất.
Khởi động dịch vụ MariaDB và cấu hình mật khẩu gốc MariaDB.
Nhập mật khẩu gốc của bạn khi được yêu cầu.
Mật khẩu root của MariaDB đã được thiết lập, bây giờ chúng ta có thể đăng nhập vào shell MySQL để tạo cơ sở dữ liệu và người dùng mới cho ownCloud. Chúng ta sẽ tạo cơ sở dữ liệu mới '
Chúng ta sẽ tạo cơ sở dữ liệu mới 'owncloud_db' dưới người dùng 'ownclouduser' với mật khẩu 'ownclouduser@'. Vui lòng chọn một mật khẩu khác và an toàn hơn cho cài đặt của bạn!
Nhập truy vấn MySQL bên dưới để tạo cơ sở dữ liệu mới và người dùng mới.
Cơ sở dữ liệu 'owncloud_db' với người dùng 'ownclouduser' đã được tạo.
Tạo thư mục mới cho tệp SSL.
Sau đó tạo tệp chứng chỉ SSL mới bằng lệnh OpenSSL bên dưới.
Nhập thông tin chi tiết cho chứng chỉ SSL theo yêu cầu của lệnh OpenSSL. Sau đó, thay đổi quyền của tất cả các tệp chứng chỉ thành 600 bằng lệnh chmod.
Đi đến thư mục tmp và tải xuống ownCloud 9.1 ổn định mới nhất từ trang ownCloud bằng wget.
Giải nén tệp zip ownCloud và di chuyển đến thư mục '/usr/share/nginx/html/'.
Tiếp theo, đi đến thư mục gốc web nginx và tạo thư mục 'data' mới cho owncloud.
Thay đổi chủ sở hữu của thư mục 'owncloud' thành người dùng và nhóm 'nginx'.
Tạo tệp cấu hình máy chủ ảo mới 'owncloud.conf' trong thư mục 'conf.d'.
Dán cấu hình máy chủ ảo ownCloud bên dưới.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Cuối cùng, hãy kiểm tra cấu hình Nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ.
Cài đặt công cụ quản lý SELinux bằng lệnh yum này lệnh.
Sau đó thực hiện các lệnh bên dưới với tư cách là root để cho phép ownCloud chạy dưới SELinux. Nhớ thay đổi thư mục ownCloud trong trường hợp bạn sử dụng thư mục khác để cài đặt ownCloud.
Tiếp theo, bật dịch vụ firewalld và mở cổng HTTP và HTTPS cho owncloud.
Khởi động firewalld và cấu hình để bắt đầu khi khởi động.
Mở cổng HTTP và HTTPS bằng lệnh firewall-cmd, sau đó tải lại tường lửa.
Phần cấu hình máy chủ đã hoàn tất.
Nhập tên người dùng và mật khẩu quản trị viên mới của bạn, sau đó nhập thông tin xác thực cơ sở dữ liệu và nhấp vào 'Hoàn tất thiết lập'.
Trình quản lý tệp bảng điều khiển quản trị.
Cài đặt người dùng.
Cài đặt quản trị.
Owncloud đã được cài đặt thành công với Nginx, PHP7-FPM và MariaDB trên Máy chủ CentOS 7.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt và cấu hình ownCloud 9.1 trên máy chủ CentOS 7. Tôi sẽ chỉ cho bạn cách cấu hình ownCloud với Nginx và PHP 7 (dưới dạng FPM) và MariaDB dưới dạng hệ thống cơ sở dữ liệu.
Điều kiện tiên quyết
- Máy chủ CentOS 7
- Quyền root
Bước 1 - Cài đặt Nginx và PHP7-FPM
Trước khi bắt đầu cài đặt Nginx và php7-fpm, chúng ta phải thêm kho lưu trữ EPEL chứa phần mềm bổ sung không có trong kho lưu trữ cơ sở CentOS. Cài đặt EPEL bằng lệnh yum này.
Mã:
yum -y install epel-release
Mã:
yum -y install nginx
Thêm kho lưu trữ webtatic:
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json
Mã:
php -v
Bước 2 - Cấu hình PHP7-FPM
Trong bước này, chúng ta sẽ cấu hình php-fpm để chạy với nginx. Php7-fpm sẽ chạy dưới người dùng nginx và lắng nghe trên cổng 9000.Chỉnh sửa cấu hình php7-fpm mặc định bằng vim.
Mã:
vim /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Mã:
listen = 127.0.0.1:9000
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Tiếp theo, tạo một thư mục mới cho đường dẫn phiên trong thư mục '/var/lib/' và thay đổi chủ sở hữu thành người dùng 'nginx'.
Mã:
mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/
Mã:
sudo systemctl start php-fpm
sudo systemctl start nginx
sudo systemctl enable php-fpm
sudo systemctl enable nginx
Cấu hình PHP7-FPM đã hoàn tất.
Bước 3 - Cài đặt và cấu hình MariaDB
OwnCloud hỗ trợ cơ sở dữ liệu PostgreSQL và MySQL, trong hướng dẫn này, chúng ta sẽ sử dụng MariaDB cho cơ sở dữ liệu ownCloud. Cài đặt gói mariadb-server từ kho lưu trữ CentOS bằng lệnh yum.
Mã:
yum -y install mariadb mariadb-server
Mã:
systemctl start mariadb
mysql_secure_installation
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Mật khẩu mới:
Nhập lại mật khẩu mới:
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Chúng ta sẽ tạo cơ sở dữ liệu mới 'owncloud_db' dưới người dùng 'ownclouduser' với mật khẩu 'ownclouduser@'. Vui lòng chọn một mật khẩu khác và an toàn hơn cho cài đặt của bạn!
Mã:
mysql -u root -p
Nhập mật khẩu
Mã:
create database owncloud_db;
create user ownclouduser@localhost được xác định bởi 'ownclouduser@';
cấp tất cả các quyền trên owncloud_db.* cho ownclouduser@localhost được xác định bởi 'ownclouduser@';
xóa quyền;
Cơ sở dữ liệu 'owncloud_db' với người dùng 'ownclouduser' đã được tạo.
Bước 4 - Tạo Chứng chỉ SSL tự ký
Trong hướng dẫn này, chúng ta sẽ chạy owncloud dưới kết nối https cho máy khách. Bạn có thể sử dụng chứng chỉ SSL miễn phí như let's encrypt. Trong hướng dẫn này, tôi sẽ tạo tệp chứng chỉ SSL của riêng mình bằng lệnh OpenSSL.Tạo thư mục mới cho tệp SSL.
Mã:
mkdir -p /etc/nginx/cert/
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key
Mã:
chmod 600 /etc/nginx/cert/*
Bước 5 - Tải xuống OwnCloud
Chúng ta sẽ tải xuống ownCloud bằng lệnh wget, vì vậy trước tiên chúng ta cần cài đặt gói wget. Ngoài ra, chúng ta cần giải nén gói.
Mã:
yum -y install wget unzip
Mã:
cd /tmp
wget https://download.owncloud.org/community/owncloud-9.1.2.zip
Mã:
giải nén owncloud-9.1.2.zip
mv owncloud/ /usr/share/nginx/html/
Mã:
cd /usr/share/nginx/html/
mkdir -p owncloud/data/
Mã:
chown nginx:nginx -R owncloud/
Bước 6 - Cấu hình OwnCloud Virtual Host trong Nginx
Ở bước 5, chúng tôi đã tải xuống mã nguồn ownCloud và cấu hình để chạy dưới máy chủ web Nginx. Nhưng chúng tôi vẫn cần cấu hình máy chủ ảo cho ownCloud.Tạo tệp cấu hình máy chủ ảo mới 'owncloud.conf' trong thư mục 'conf.d'.
Mã:
cd /etc/nginx/conf.d/
vim owncloud.conf
Mã:
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name data.owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name data.owncloud.co;
ssl_certificate /etc/nginx/cert/owncloud.crt;
ssl_certificate_key /etc/nginx/cert/owncloud.key;
# Thêm tiêu đề để phục vụ tiêu đề liên quan đến bảo mật
# Trước khi bật tiêu đề Strict-Transport-Security, vui lòng đọc kỹ nội dung này chủ đề đầu tiên.
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Đường dẫn đến thư mục gốc của cài đặt của bạn
root /usr/share/nginx/html/owncloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Nội dung sau Chỉ cần 2 quy tắc cho ứng dụng user_webfinger.
# Bỏ chú thích nếu bạn định sử dụng ứng dụng này.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/acme-challenge { }
# đặt kích thước tải lên tối đa
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Vô hiệu hóa gzip để tránh xóa tiêu đề ETag
tắt gzip;
# Bỏ ghi chú nếu máy chủ của bạn được xây dựng bằng mô-đun ngx_pagespeed
# Mô-đun này hiện không được hỗ trợ.
# tắt pagespeed;
trang lỗi 403 /core/templates/403.php;
trang lỗi 404 /core/templates/404.php;
vị trí / {
viết lại ^ /index.php$uri;
}
vị trí ~ ^/(?:build|tests|config|lib|bên thứ 3|templates|data)/ {
trả về 404;
}
vị trí ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
trả về 404;
}
vị trí ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Tránh gửi tiêu đề bảo mật hai lần
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
# Thêm tiêu đề kiểm soát bộ đệm cho các tệp js và css
# Đảm bảo tiêu đề NẰM DƯỚI khối PHP
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Thêm tiêu đề để phục vụ các tiêu đề liên quan đến bảo mật (Mục đích là để sao chép những mục này vào những mục ở trên)
# Trước khi bật tiêu đề Strict-Transport-Security, vui lòng đọc kỹ chủ đề này trước.
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Tùy chọn: Không ghi nhật ký quyền truy cập vào tài sản
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Tùy chọn: Không ghi nhật ký truy cập vào các tài sản khác
access_log off;
}
}
Cuối cùng, hãy kiểm tra cấu hình Nginx và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ.
Mã:
nginx -t
systemctl restart nginx
Bước 7 - Cấu hình SELinux và FirewallD
Trong hướng dẫn này, chúng ta sẽ để SELinux ở chế độ thực thi, vì vậy chúng ta cần gói công cụ quản lý SELinux để cấu hình nó.Cài đặt công cụ quản lý SELinux bằng lệnh yum này lệnh.
Mã:
yum -y install policycoreutils-python
Mã:
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/data(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/config(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/apps(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/assets(/.*)?'
quản lý ngữ cảnh fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.user.ini'
restorecon -Rv '/usr/share/nginx/html/owncloud/'
Khởi động firewalld và cấu hình để bắt đầu khi khởi động.
Mã:
systemctl start firewalld
systemctl enable firewalld
Mã:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Phần cấu hình máy chủ đã hoàn tất.
Bước 8 - Trình hướng dẫn cài đặt OwnCloud
Bây giờ hãy mở trình duyệt web của bạn và nhập tên miền theownCloud vào trường URL, của tôi là: data.owncloud.co và bạn sẽ được chuyển hướng đến kết nối HTTPS an toàn.Nhập tên người dùng và mật khẩu quản trị viên mới của bạn, sau đó nhập thông tin xác thực cơ sở dữ liệu và nhấp vào 'Hoàn tất thiết lập'.
Trình quản lý tệp bảng điều khiển quản trị.
Cài đặt người dùng.
Cài đặt quản trị.
Owncloud đã được cài đặt thành công với Nginx, PHP7-FPM và MariaDB trên Máy chủ CentOS 7.