ownCloud là ứng dụng chia sẻ tệp nguồn mở dựa trên ngôn ngữ lập trình PHP. OwnCloud cung cấp tính năng đồng bộ hóa và chia sẻ tệp tự lưu trữ với giao diện web đẹp mắt và ứng dụng đồng bộ hóa cho tất cả các nền tảng di động và máy tính để bàn chính với chức năng như dropbox, mega, v.v. ownCloud giúp bạn dễ dàng truy cập và đồng bộ hóa tệp, lịch và danh bạ trên các thiết bị của mình.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn tạo nền tảng máy chủ đồng bộ hóa và chia sẻ của riêng mình với ownCloud. Chúng tôi sẽ cài đặt ownCloud với Nginx làm máy chủ web, MariaDB (một nhánh MySQL) làm cơ sở dữ liệu và php-fpm để xử lý yêu cầu cho php trên Linux OpenSUSE Leap 42.1.
Điều kiện tiên quyết
Cài đặt SuSEfirewall2 bằng lệnh zypper:
Khi tường lửa được cài đặt, hãy vào thư mục sysconfig và chỉnh sửa cấu hình "SuSEfirewall2" bằng vim:
Đi đến dòng 253 và thêm cổng của tất cả các dịch vụ mà bạn muốn sử dụng. Trong bước này, tôi sẽ thêm các cổng: ssh, http và https.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, khởi động SuSEfirewall2 và cho phép nó chạy khi khởi động:
Bây giờ hãy khởi động lại dịch vụ sshd:
Nếu bạn muốn kiểm tra Cổng máy chủ SSH, bạn có thể sử dụng lệnh telnet để kết nối đến cổng 22:
Cài đặt nginx bằng lệnh zypper:
Khởi động nginx và cho phép nó chạy khi khởi động bằng lệnh systemctl:
Tiếp theo, thêm tệp index.html để kiểm tra xem nginx có hoạt động không.
Bây giờ bạn có thể truy cập máy chủ web nginx từ trình duyệt web của mình hoặc bạn có thể kiểm tra bằng curl:
Cài đặt MariaDB bằng lệnh zypper bên dưới:
Bây giờ hãy khởi động MariaDB và thêm nó vào hệ thống khởi động:
MariaDB đã được khởi động, bây giờ bạn có thể cấu hình mật khẩu gốc cho MariaDB bằng lệnh bên dưới:
Đặt mật khẩu MariaDB/MySQL:
Mật khẩu gốc của MariaDB đã được cấu hình. Bây giờ chúng ta có thể đăng nhập vào shell MariaDB/MySQL và tạo một cơ sở dữ liệu mới và người dùng mới cho ownCloud.
Đăng nhập vào shell MariaDB/MySQL:
Tạo một cơ sở dữ liệu mới "owncloud_db" và người dùng mới "ownclouduser" với mật khẩu "ownclouduser@":
Cơ sở dữ liệu để cài đặt ownCloud đã được tạo.
Trong bước này, chúng ta sẽ cài đặt php-fpm và một số tiện ích mở rộng PHP, sau đó chúng ta sẽ cấu hình máy chủ web nginx để xử lý các yêu cầu tệp php thông qua php-fpm.
Cài đặt php-fpm bằng lệnh "zypper in" này:
Khi quá trình cài đặt hoàn tất, hãy vào thư mục php-fpm và sao chép tệp cấu hình mặc định:
Chỉnh sửa tệp php-fpm.conf bằng trình soạn thảo vim hoặc nano:
Bỏ chú thích dòng 32 để bật nhật ký php-fpm. Nếu sau này có lỗi trong tập lệnh PHP của bạn, thì bạn có thể tìm tệp nhật ký trong thư mục "/var/log/".
Thay đổi dòng 148 - 149 thành "nginx" cho người dùng/nhóm unix của các quy trình.
Thay đổi giá trị ở dòng 159 để chạy php-fpm với tệp socket.
Bỏ chú thích và thay đổi giá trị ở các dòng 170 - 172 để đặt quyền của socket unix.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chỉnh sửa tệp php.ini trong thư mục cli:
Bỏ chú thích và thay đổi giá trị trên dòng 758:
Lưu và thoát.
Sao chép tệp php.ini vào thư mục conf.d:
Bây giờ hãy định cấu hình đường dẫn trình xử lý phiên php. Trong hướng dẫn này, chúng tôi chạy php-fpm với tư cách là người dùng nginx, vì vậy hãy đảm bảo rằng người dùng nginx có thể ghi vào thư mục phiên. Bạn có thể xem cấu hình đường dẫn phiên trong tệp php.ini ở dòng 1390.
Thay đổi chủ sở hữu của thư mục phiên "/var/lib/php5/", biến người dùng thenginx thành chủ sở hữu của thư mục:
Tiếp theo, cấu hình php-fpm để hoạt động với máy chủ web thenginx. Vào thư mục cấu hình nginx và sao lưu tệp thenginx.conf trước khi bạn chỉnh sửa cấu hình.
Thêm cấu hình mới sau vào dòng 65 - cấu hình này sẽ xử lý tất cả các yêu cầu tệp PHP.
Lưu và thoát, sau đó kiểm tra cấu hình nginx để đảm bảo không có lỗi trong cấu hình:
Nếu không có lỗi, bạn có thể xem kết quả bên dưới:
Bây giờ hãy khởi động php-fpm và thêm nó vào stat khi khởi động, sau đó khởi động lại dịch vụ nginx:
Nginx và php-fpm đã được cấu hình, bạn có thể kiểm tra tệp php bằng cách tạo tệp phpinfo() mới trong thư mục gốc của web:
Mở trình duyệt của bạn và truy cập IP máy chủ:
http://192.168.1.101/info.php
hoặc bạn có thể sử dụng curl:
Tạo thư mục "ssl" mới và tạo chứng chỉ bằng lệnh openssl:
Tiếp theo, thay đổi quyền của khóa:
Tải xuống ownCloud
Đi đến thư mục "/srv/www/" và tải xuống mã nguồn ownCloud và giải nén nó:
Bây giờ hãy tạo một thư mục dữ liệu mới trong thư mục owncloud để lưu trữ tất cả dữ liệu người dùng. Thay đổi chủ sở hữu của thư mục ownCloud thành người dùng nginx:
Cấu hình Nginx Virtual Host cho ownCloud
Đi tới thư mục nginx và tạo một thư mục mới để cấu hình tệp máy chủ ảo:
Đi tới thư mục vhosts.d và tạo một tệp máy chủ ảo mới cho owncloud "example-owncloud.conf".
dán cấu hình bên dưới:
Lưu tệp và thoát khỏi trình chỉnh sửa.
Kiểm tra cấu hình nginx và đừng quên khởi động lại tất cả các dịch vụ:
Kiểm tra
Truy cập owncloud domain:
example-owncloud.co
Bạn sẽ được chuyển hướng đến kết nối https.
Tiếp theo, nhập tên người dùng và mật khẩu quản trị viên, tên cơ sở dữ liệu, người dùng và mật khẩu rồi nhấp vào "Hoàn tất thiết lập".
Chờ một giây và bạn sẽ thấy trình quản lý tệp owncloud:
Quá trình cài đặt ownCloud với nginx và MariaDB trên OpenSUSE Leap 42.1 đã hoàn tất.
Tài liệu tham khảo
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn tạo nền tảng máy chủ đồng bộ hóa và chia sẻ của riêng mình với ownCloud. Chúng tôi sẽ cài đặt ownCloud với Nginx làm máy chủ web, MariaDB (một nhánh MySQL) làm cơ sở dữ liệu và php-fpm để xử lý yêu cầu cho php trên Linux OpenSUSE Leap 42.1.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1
- Quyền root
- Hiểu lệnh zypper
Bước 1 - Cài đặt SuSEfirewall2
SuSEfirewall là một tập lệnh tường lửa lưu trữ cấu hình của nó trong tệp "/etc/sysconfig/SuSEfirewall2". Với SuSEfirewall2, bạn có thể mở cổng bằng cách chỉnh sửa tệp "SuSEfirewall2".Cài đặt SuSEfirewall2 bằng lệnh zypper:
Mã:
zypper trong SuSEfirewall2
Mã:
cd /etc/sysconfig/
vim SuSEfirewall2
Mã:
FW_SERVICES_EXT_TCP="22 80 443"
Tiếp theo, khởi động SuSEfirewall2 và cho phép nó chạy khi khởi động:
Mã:
systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2
Mã:
systemctl restart sshd
Mã:
telnet 192.168.1.101 22
Bước 2 - Cài đặt Nginx
Nginx là một máy chủ web nhẹ với mức tiêu thụ bộ nhớ và CPU thấp. Chúng tôi sẽ sử dụng nginx làm máy chủ web để cài đặt ownCloud.Cài đặt nginx bằng lệnh zypper:
Mã:
zypper trong nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
echo "Đây là trang Nginx OpenSUSE Leap" > /srv/www/htdocs/index.html
Mã:
curl -I 192.168.1.101
curl 192.168.1.101
Bước 3 - Cài đặt và cấu hình MariaDB
MariaDB là một nhánh dựa trên RDBMS mã nguồn mở của cơ sở dữ liệu MySQL. Trong bước này, chúng ta sẽ cài đặt và cấu hình MariaDB. Sau đó, chúng ta sẽ tạo một người dùng và cơ sở dữ liệu mới để cài đặt ownCloud.Cài đặt MariaDB bằng lệnh zypper bên dưới:
Mã:
zypper trong mariadb mariadb-client
Mã:
systemctl start mysql
systemctl enable mysql
Mã:
mysql_secure_installation
Mã:
Nhập mật khẩu hiện tại cho root (enter nếu không có): NHẤN ENTERĐặt mật khẩu root? [Y/n] YMật khẩu mới: NHẬP MẬT KHẨU CỦA BẠNNhập lại mật khẩu mới: LẶP LẠI MẬT KHẨUXóa người dùng ẩn danh? [Y/n] YKhông cho phép đăng nhập root từ xa? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Đăng nhập vào shell MariaDB/MySQL:
Mã:
mysql -u root -p
NHẬP mật khẩu của bạn
Mã:
tạo cơ sở dữ liệu owncloud_db;
tạo người dùng 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 các quyền;
thoát
Cơ sở dữ liệu để cài đặt ownCloud đã được tạo.
Bước 4 - Cài đặt và cấu hình PHP-FPM
PHP-FPM (Quy trình FastCGI Manager) là một giải pháp thay thế FastCGI hiện đại để xử lý các trang web có nhiều người truy cập. PHP-FPM có quản lý quy trình nâng cao và dễ quản lý và cấu hình.Trong bước này, chúng ta sẽ cài đặt php-fpm và một số tiện ích mở rộng PHP, sau đó chúng ta sẽ cấu hình máy chủ web nginx để xử lý các yêu cầu tệp php thông qua php-fpm.
Cài đặt php-fpm bằng lệnh "zypper in" này:
Mã:
zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json
Mã:
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
Mã:
vim php-fpm.conf
Mã:
error_log = log/php-fpm.log
Mã:
user = nginx
group = nginx
Mã:
listen = /var/run/php-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Tiếp theo, chỉnh sửa tệp php.ini trong thư mục cli:
Mã:
cd /etc/php5/cli/
vim php.ini
Mã:
cgi.fix_pathinfo=0
Sao chép tệp php.ini vào thư mục conf.d:
Mã:
cp php.ini /etc/php5/conf.d/
Mã:
session.save_path = "/var/lib/php5"
Mã:
chown -R nginx:nginx /var/lib/php5/
Mã:
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf
Mã:
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok
nginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx
Mã:
cd /srv/www/htdocs/
echo "" > info.php
http://192.168.1.101/info.php
hoặc bạn có thể sử dụng curl:
Mã:
curl -I 192.168.1.101/info.php
Bước 5 - Tạo chứng chỉ SSL
Chạy ownCloud qua kết nối https an toàn là rất quan trọng để giữ cho các tệp của bạn an toàn và riêng tư. Nếu bạn đang chạy ownCloud trên công ty của riêng mình, bạn có thể mua chứng chỉ SSL hoặc nếu bạn muốn có chứng chỉ SSL miễn phí, bạn có thể sử dụng Let's-encrypt. Ở đây, tôi sẽ tạo cái gọi là chứng chỉ SSL "tự ký", mã hóa của chứng chỉ tự ký không thấp hơn chứng chỉ chính thức nhưng bạn sẽ phải chấp nhận cảnh báo bảo mật trong trình duyệt của mình khi bạn truy cập dịch vụ lần đầu tiên.Tạo thư mục "ssl" mới và tạo chứng chỉ bằng lệnh openssl:
Mã:
cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key
Mã:
chmod 600 example-owncloud.key
Bước 6 - Cài đặt và cấu hình ownCloud
Trong bước này, chúng ta sẽ cài đặt ownCloud và cấu hình máy chủ ảo nginx mới cho miền ownCloud. Chúng tôi sẽ cài đặt owncloud với tên miền "example-owncloud.co" và tệp gốc web trong thư mục "/srv/www/owncloud/".Tải xuống ownCloud
Đi đến thư mục "/srv/www/" và tải xuống mã nguồn ownCloud và giải nén nó:
Mã:
cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
giải nén owncloud-9.0.2.zip
Mã:
mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/[B]
[/b]
Cấu hình Nginx Virtual Host cho ownCloud
Đi tới thư mục nginx và tạo một thư mục mới để cấu hình tệp máy chủ ảo:
Mã:
cd /etc/nginx/
mkdir vhosts.d/
Mã:
cd vhosts.d/
vim example-owncloud.conf
Mã:
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php-fpm.sock;
}
server {
listen 80;
server_name example-owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example-owncloud.co;
ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;
# Đường dẫn đến thư mục gốc của cài đặt của bạn
root /srv/www/owncloud/;
# đặt kích thước tải lên tối đa
client_max_body_size 10G;
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;
viết lại ^/caldav(.*)$ /remote.php/caldav$1 chuyển hướng;
viết lại ^/carddav(.*)$ /remote.php/carddav$1 chuyển hướng;
viết lại ^/webdav(.*)$ /remote.php/webdav$1 chuyển hướng;
chỉ mục index.php;
trang lỗi 403 /core/templates/403.php;
trang lỗi 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# Chỉ cần 2 quy tắc sau với webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ chuyển hướng;
viết lại ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.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_pass php-handler;
fastcgi_intercept_errors on;
}
# Thêm tiêu đề kiểm soát bộ đệm cho các tệp js và css
# Đảm bảo rằng nó ở DƯỚI vị trí ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
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
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
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;
# Tùy chọn: Không ghi nhật ký truy cập vào tài sản
access_log off;
}
# Tùy chọn: Không ghi nhật ký truy cập vào tài sản khác
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}
Kiểm tra cấu hình nginx và đừng quên khởi động lại tất cả các dịch vụ:
Mã:
nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql[B]
[/b]
Kiểm tra
Truy cập owncloud domain:
example-owncloud.co
Bạn sẽ được chuyển hướng đến kết nối https.
Tiếp theo, nhập tên người dùng và mật khẩu quản trị viên, tên cơ sở dữ liệu, người dùng và mật khẩu rồi nhấp vào "Hoàn tất thiết lập".
Chờ một giây và bạn sẽ thấy trình quản lý tệp owncloud:
Quá trình cài đặt ownCloud với nginx và MariaDB trên OpenSUSE Leap 42.1 đã hoàn tất.