Xây dựng cloud server cho cá nhân

Nội dung

    Lưu trữ đám mây là dữ liệu của bạn được lưu trữ trên các máy chủ từ xa bởi một công ty vô danh mà bạn phải tin tưởng để trao quyền riêng tư và bảo mật của các tài liệu và ảnh quý giá của mình.

    Tuy nhiên, có một tùy chọn khác: Host file của bạn trên máy chủ đám mây của riêng bạn, chạy trên máy tính ở nhà hoặc văn phòng do bạn sở hữu. Một trong những dịch vụ phổ biến nhất để đạt được điều này là Nextcloud.

    Cài mới lại Nextcloud, thì client bắt buộc phải xóa tài khoản trên app trên máy nếu muốn giữ lại file đang tồn tại!

    Xem tài liệu: https://docs.nextcloud.com/server/latest/Nextcloud_Server_Administration_Manual.pdf

    Cài trực tiếp lên máy

    Để Next Cloud chạy thành công, chúng ta cần cài đặt PHP và các phần phụ thuộc khác. Để đạt được điều này, hãy thực hiện lệnh:

    sudo apt update -y
    sudo apt upgrade -y
     
    # Install nginx & PHP
    sudo apt install -y nginx php8.2
    sudo apt-get install -y php8.2-{fpm,cgi,mysql,curl,xsl,gd,common,xml,zip,xsl,soap,bcmath,mbstring,gettext,imagick,sqlite3,intl}
     
    sudo nano /etc/nginx/sites-available/default
    # Add the following / update the file to contain it:
    # location ~ \.php$ {
    # include snippets/fastcgi-php.conf;
    # fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    # }
     
    # Install MariaDB
    sudo apt install -y mariadb-server
    sudo mariadb-secure-installation
    sudo systemctl start mariadb
    sudo systemctl enable mariadb
     
    # Install Certbot
    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot –nginx -d mydomain.com
     
    # Restart nginx
    sudo systemctl restart nginx
    sudo systemctl enable nginx

    Cài toàn bộ php và thư viện php: apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-intl php-curl php-xml php-mbstring php-bcmath php-gmp

    Để xác minh phiên bản PHP bạn đã cài đặt, hãy chạy lệnh: php -v
    Xóa apche2 có sẳn trên debian12: sudo apt purge apache2 apache2-utils
    sudo apt remove apache2 apache2-utils
    Tìm các thư mục: whereis apache2
    Thực hiện xóa sudo rm -r <apache2 file location>
    sau đó kiểm tra lại lần nữa, không còn thư mục coi như xong.
    Để xem thông tin: php --ini

    Cần điều chỉnh php: nano /etc/php/8.2/fpm/php.ini

    max_execution_time = 300
    memory_limit = 512M
    post_max_size = 128M
    upload_max_filesize = 128M

    khởi dộng lại: systemctl restart php8.2-fpm

    Sau khi cài đặt hoàn tất, đăng nhập vào MySQL nếu không có mysql thì cài MariaDB database server.

    apt install mariadb-server mariadb-client

    systemctl status mariadb

    mysql_secure_installation

    – Set root password? [Y/n] Y
    – Remove anonymous users? [Y/n] Y
    – Disallow root login remotely? [Y/n] Y
    – Remove test database and access to it? [Y/n] Y
    – Reload privilege tables now? [Y/n] Y

    systemctl restart mariadb

    Rồi bây giờ vô thực hiện tạo database: mysql -u root -p


    Tiếp theo tạo cơ sở dữ liệu cho Next Cloud và gán cho 1 user khác.

    CREATE DATABASE nextclouddb;
    GRANT ALL ON nextclouddb.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'strong password';
    FLUSH PRIVILEGES;
    EXIT;

    Download và cài nextcloud

    Php 7.4 thì dùng ver 25: https://download.nextcloud.com/server/releases/

    Tốt nhất nên xem yêu cầu phần cứng để lựa chọn version phù hợp: https://docs.nextcloud.com/server/26/admin_manual/installation/system_requirements.html

    Tải xuống tệp zip Nextcloud bằng lệnh:wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
    Tiếp theo giải nén file nén bằng lệnh: unzip nextcloud-16.0.1.zip

    unzip latest.zip -d /var/www/

    Tiếp theo di chuyển thư mục vừa giải nén vào thư mục webroot: mv nextcloud /var/www/
    Điều hướng đến thư mục gốc của tài liệu và thay đổi quyền sở hữu tệp thành www-data. cd /var/www
    sudo chown -R www-data:www-data nextcloud

    chown -R www-data:www-data /var/www/nextcloud

    Ngoài ra, thay đổi quyền của tệp: sudo chmod -R 755 nextcloud

    How to install NextCloud on Debian 10

    Cấu hình nginx theo hướng dẫn https://www.howtoforge.com/tutorial/how-to-install-nextcloud-with-nginx-on-ubuntu-20.04.

    https://docs.nextcloud.com/server/25/admin_manual/installation/nginx.html

    nano /etc/nginx/conf.d/nextcloud.conf

    server { listen 80; server_name your-domain.com www.your-domain.com; root /var/www/nextcloud; index index.php index.html; charset utf-8; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

    Nếu muốn chạy http thôi thì bỏ dòng: fastcgi_params HTTPS on

    sudo systemctl restart nginx

    Cấu hình theo trang https://github.com/nextcloud/server/blob/master/config/config.sample.php

    Xem chi tiết: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html

    /**
    * Thời gian tồn tại của cookie ghi nhớ đăng nhập. Giá trị này phải lớn hơn
    * session_lifetime. Nếu được đặt thành 0, tính năng ghi nhớ tôi sẽ bị vô hiệu hóa.
    *
    * Mặc định là “60*60*24*15“ giây (15 ngày)
    */
    ‘remember_login_cookie_lifetime’ => 60*60*24*15,

    /**
    * Thời gian tồn tại của một phiên sau khi không hoạt động.
    *
    * Thời gian tối đa có thể bị giới hạn bởi cài đặt php.ini session.gc_maxlifetime
    * sẽ ghi đè tùy chọn này nếu nó nhỏ hơn giá trị trong config.php
    *
    * Mặc định là “60*60*24“ giây (24 giờ)
    */
    ‘session_lifetime’ => 60 * 60 * 24,

    /**
    * Thời gian chờ tính bằng giây đối với các yêu cầu đến máy chủ do thành phần DAV thực hiện (ví dụ: cần thiết cho các chia sẻ liên kết).
    */
    ‘davstorage.request_timeout’ => 30,

    config.php file:

    $CONFIG = array (
    ‘instanceid’ => ‘xxx’,
    ‘passwordsalt’ => ‘xxx’,
    ‘secret’ => ‘xxx’,
    ‘trusted_domains’ =>
    array (
    0 => ‘192.168.24.32’,
    1 => ‘xxx’,
    ),
    ‘trusted_proxies’ =>
    array (
    0 => ‘192.168.24.30’,
    1 => ‘127.0.0.1’,
    2 => ‘::1’,
    ),
    ‘datadirectory’ => ‘/home/data/’,
    ‘dbtype’ => ‘mysql’,
    ‘version’ => ‘29.0.2.2’,
    ‘overwrite.cli.url’ => ‘http://192.168.24.32’,
    ‘forwarded_for_headers’ =>
    array (
    0 => ‘HTTP_X_FORWARDED’,
    1 => ‘HTTP_FORWARDED_FOR’,
    ),
    ‘dbname’ => ‘xxx’,
    ‘dbhost’ => ‘localhost’,
    ‘dbport’ => ”,
    ‘dbtableprefix’ => ‘oc_’,
    ‘mysql.utf8mb4’ => true,
    ‘dbuser’ => ‘xxx’,
    ‘dbpassword’ => ‘xxx’,
    ‘installed’ => true,
    ‘mail_domain’ => ‘xx’,
    ‘mail_smtpmode’ => ‘smtp’,
    ‘mail_sendmailmode’ => ‘smtp’,
    ‘mail_from_address’ => ‘xxx’,
    ‘mail_smtphost’ => ‘xxx’,
    ‘mail_smtpport’ => ‘465’,
    ‘mail_smtpauth’ => 1,
    ‘mail_smtpname’ => ‘xxx’,
    ‘mail_smtppassword’ => ‘xxx’,
    ‘default_phone_region’ => ‘DE’,
    ‘default_language’ => ‘de’,
    ‘default_locale’ => ‘de_DE’,
    ‘memcache.local’ => ‘\\OC\\Memcache\\APCu’,
    ‘filelocking.enabled’ => true,
    ‘memcache.locking’ => ‘\\OC\\Memcache\\Redis’,
    ‘redis’ =>
    array (
    ‘host’ => ‘/var/run/redis/redis.sock’,
    ‘port’ => 0,
    ‘timeout’ => 0.0,
    ),
    ‘maintenance’ => false,
    ‘maintenance_window_start’ => 1,
    ‘theme’ => ”,
    ‘loglevel’ => 0,
    ‘mail_smtpsecure’ => ‘ssl’,
    ‘versions_retention_obligation’ => ‘auto, 60’,
    ‘trashbin_retention_obligation’ => ‘auto, 30’,
    );

    Thêm ứng dụng RichDocument ARM64

    Thêm app vào bằng cách truy cập vào thư mục nextcloud. Nhập câu lệnh thêm

    sudo -u www-data php -d memory_limit=512M ./occ app:install richdocumentscode_arm64

    Trường hợp không cài vô được thì download:

    wget https://github.com/CollaboraOnline/richdocumentscode/releases/download/23.5.502/richdocumentscode_arm64.tar.gz

    bun nén và chép vào thư mục:

    tar -zxvf richdocumentscode_arm64.tar.gz

    sudo mv richdocumentscode_arm64 www/nextcloud/apps

    thay quyền truy cập: sudo chown -R www-data:www-data www/nextcloud/apps/richdocumentscode_arm64

    Nâng lên vùng nhớ: sdo nano /etc/php/7.4/fpm/php.ini

    Bấm ctrl+w tìm: memory_limit cho thành 1G; upload_max_filesize thì 1G

    Vào sudo nano /etc/php/7.4/fpm/pool.d/www.conf chỉnh xóa ; trước các dòng:

    ;env[HOSTNAME] = $HOSTNAME
    ;env[PATH] = /usr/local/bin:/usr/bin:/bin
    ;env[TMP] = /tmp
    ;env[TMPDIR] = /tmp
    ;env[TEMP] = /tmp
    clear_env = no

    Sau đó: sudo systemctl restart php7.4-fpm.service && systemctl restart nginx

    Cập nhật có thể được thực hiện như thế này: sudo -u www-data php -d memory_limit=512M ./occ app:update --all
    Xem danh sách app:sudo u wwwdata php occ app:list

    Xóa app dùng lệnh:sudo -u www-data php occ app:remove richdocuments
    https://docs.nextcloud.com/server/20/admin_manual/configuration_server/occ_command.html

    Nếu bạn chạy richdoumentscode trên ARM64 (gói richdoumentscode_arm64), bạn phải thay đổi richdocumentscode\/proxy thành richdocumentscode_arm64\/proxy trong cài đặt NGINX:

    Ví dụ:
    location ~ \.php(?:$|/) {
    # Required for legacy support
    rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|oc[ms]\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode_arm64\/proxy) /index.php$request_uri;

    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;

    try_files $fastcgi_script_name =404;

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param HTTPS on;

    fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
    fastcgi_param front_controller_active true; # Enable pretty urls
    fastcgi_pass php-handler;

    fastcgi_intercept_errors on;
    fastcgi_request_buffering off;

    fastcgi_max_temp_file_size 0;
    }

    Nếu chưa được xem lại port: http://127.0.0.1:9980

    Tạo bộ nhớ trên máy cục bộ.

    Cài thêm các sudo apt-get install redis-server php-redis -y

    Kiểm tra nó chạy chưa: ps ax | grep redis

    Vào thư mục www/nextcloud/config thêm nội dung vào file config.php:

    ‘memcache.locking’ => ‘\\OC\\Memcache\\Redis’,

    ‘memcache.distributed’ => ‘\\OC\\Memcache\\Redis’,

    ‘memcache.local’ => ‘\\OC\\Memcache\\Redis’,

    ‘redis’ => array ( ‘host’ => ‘localhost’, ‘port’ => 6379, ),

    Đồng thời thêm dòng cấu hình số điên thoại VN: ‘default_phone_region’ => ‘vi’,

    Xong, lưu lại vào web Admistrator overview để xem kết quả. Tài liệu https://apps.nextcloud.com/apps/richdocumentscode và https://nextcloud.com/blog/how-to-install-collabora-online-in-nextcloud-hub/

    Failed to load Nextcloud Office: sửa bằng cách thêm 0.0.0.0/0 vào danh sách Cho phép đối với Yêu cầu WOPI trong /settings/admin/richdocuments

    ’allow_local_remote_servers’ => true, trong config.php, sau đó: sudo systemctl restart nginx

    /tmp/coolwsd.*/coolwsd.log (trên máy chủ của bạn hoặc trong /tmp của vùng chứa nếu có)

    ‘app_install_overwrite’ =>
    array (
    0 => ‘files_external_ipfs’,
    1 => ‘calendar’,
    2 => ‘cookbook’,
    3 => ‘dicomviewer’,
    4 => ‘files_frommail’,
    ),

    ‘onlyoffice’ =>
    array (
    ‘verify_peer_off’ => true,
    ),

    Printer bằng hệ sinh thái in CUPS/LPR.

    https://github.com/e-alfred/nextcloud-printer/

    https://github.com/CGessinger/nextcloud-skyprint

    Bạn cần thiết lập CUPS hoạt động với máy in tương thích được thiết lập làm máy in mặc định và chương trình nền LPR được cài đặt trên máy chủ của bạn.

    Trên Debian, bạn có thể cài đặt các gói cups và cups-bsd cấu hình máy in mặc định trong CUPS (vui lòng tham khảo tài liệu CUPS về cách thực hiện). Bạn có thể xác minh cài đặt bằng lpstat -pvà lpstat -dsau khi bạn cấu hình CUPS đúng cách.

    Bạn cần một máy chủ CUPS có máy in IPP dùng chung chạy trong mạng cục bộ của bạn.

    apt-get update && apt-get install -y cups-client cups-daemon cups-bsd

    service cups start

    lpadmin -p HP_M281_docker -E -v ipp://$ip$:631/printers/$printer_name$ -m everywhere
    lpoptions -d HP_M281_docker

    Kiểm tra cấu hình lpstat -p -d

    in tệp thử nghiệm từ dòng lệnh: sudo -u www-data lpr testfile.pdf

    Để cài đặt ứng dụng trên phiên bản của bạn, chỉ cần điều hướng đến »Ứng dụng« trong giao diện web Nextcloud, chọn danh mục »Công cụ«, tìm ứng dụng Máy in và bật ứng dụng đó.

    Cách sử dụng: Chỉ cần mở chế độ xem chi tiết của tệp (Thanh bên). Sẽ có một tab mới có tên là “Máy in”. Chọn Hướng in của bạn và nó sẽ cố gắng thực thi LPR (Line Printing Daemon) trên CLI để gửi tác vụ đến máy in được cấu hình trong CUPS. Hiện tại, chỉ có thể sử dụng máy in được đặt làm mặc định để in.

    Các hướng có thể là “Phong cảnh” và “Chân dung”. Các tùy chọn khác sẽ được thêm vào trong tương lai.

    Khả năng tương thích
    Tôi chỉ thử nghiệm ứng dụng cho phiên bản Nextcloud hiện tại (14 trở lên).
    Tôi đã cố gắng sử dụng api hiện tại nhiều nhất có thể. Nó sẽ an toàn cho các phiên bản sau.
    Hiện tại chỉ các tệp được CUPS hỗ trợ gốc mới được hỗ trợ để in. Bao gồm Hình ảnh, PDF, tệp văn bản và có thể là các tệp khác. Không phải tất cả các loại tệp đều được CUPS hỗ trợ.
    Ứng dụng hiện tại thiếu rất nhiều tính năng sẽ được thêm vào trong các phiên bản ứng dụng trong tương lai. Nếu bạn muốn giúp đỡ phát triển, chúng tôi rất hoan nghênh bạn tham gia PR.

     

    Two-Factor Email

    Ứng dụng này cho phép người dùng thiết lập email làm yếu tố thứ hai cho thông tin đăng nhập web. Ứng dụng này yêu cầu địa chỉ email được đặt trong ‘Thông tin cá nhân’. Hiện tại, ứng dụng này không thể sử dụng khi đăng nhập lần đầu khi xác thực hai yếu tố được thực thi (chưa triển khai).

    Chạy lệnh OCC trong một thiết bị đầu cuối web

    Ứng dụng này không phải là một terminal tương tác thực sự và không hỗ trợ các tác vụ chạy dài. Vì vậy, nếu phiên bản của bạn khá lớn, các lệnh như occ files:scansẽ hết thời gian chờ và không thành công.
    Không sử dụng occ maintenance:mode –on, rõ ràng là…

    https://github.com/adphi/occweb

    Snapshots

    Cho phép sử dụng ảnh chụp nhanh hệ thống tệp (từ btrfs, zfs, v.v.) làm phiên bản thông qua giao diện web Nextcloud.

    ng dụng này không tự động tạo ảnh chụp nhanh, vì vậy ứng dụng có thể không có ảnh chụp nhanh cho mọi thay đổi được thực hiện trên tệp.

    Vì ứng dụng không tạo bất kỳ ảnh chụp nhanh nào nên khi khôi phục tệp, mọi thay đổi được thực hiện đối với tệp kể từ ảnh chụp nhanh cuối cùng sẽ bị mất.

    Để truy cập ảnh chụp nhanh, hai điều cần được cấu hình trong phần cài đặt quản trị.

    định dạng ảnh chụp nhanh: nơi có thể tìm thấy ảnh chụp nhanh của thư mục dữ liệu Nextcloud

    Ví dụ: thư mục dữ liệu Nextcloud /srv/http/.zfs/snapshot/%snapshot%/nextcloud/data/
    ở đâu và là thư mục đang được chụp nhanh vào ./srv/http/nextcloud/data
    /srv/http/srv/http/.zfs/snapshot

    Ngoài ra, nếu ảnh chụp nhanh của bạn được sắp xếp trên nhiều thư mục như

    /.snapshots/hourly/2020-02-07_00:00/…
    /.snapshots/hourly/2020-02-07_01:00/…
    /.snapshots/daily/2020-02-06_00:00/…
    /.snapshots/daily/2020-02-07_00:00/…
    bạn có thể sử dụng glob để /.snapshots/*/%snapshot%/khiến ứng dụng tìm kiếm ảnh chụp nhanh trong nhiều thư mục.

    định dạng ngày của thư mục ảnh chụp nhanh: Cách định dạng ngày của ảnh chụp nhanh trong tên ảnh chụp nhanh

    Ví dụ: *Y-m-d_H:i:s*sẽ khớp chính xác các ảnh chụp nhanh có tênautosnap_2017-05-27_00:00:01_hourly

    Gợi ý: Mỗi * sẽ chỉ khớp cho đến khi có dấu phân cách hoặc chữ số tiếp theo

    Ví dụ: *-*-*-Y-m-d-Hi sẽ khớp chính xác các ảnh chụp nhanh có tênzfs-auto-snap_frequent-2017-06-23-1930

    Thêm quét vi rut

    Bạn có thể định cấu hình máy chủ Nextcloud của mình để tự động quét vi-rút trên các tệp mới tải lên bằng ứng dụng Chống vi-rút cho Tệp. ClamAV phát hiện tất cả các dạng phần mềm độc hại bao gồm ngựa Trojan, vi rút và sâu, đồng thời nó hoạt động trên tất cả các loại tệp chính bao gồm tệp Windows, Linux và Mac, tệp nén, tệp thực thi, tệp hình ảnh, Flash, PDF và nhiều loại khác. Daemon Freshclam của ClamAV tự động cập nhật cơ sở dữ liệu chữ ký phần mềm độc hại theo các khoảng thời gian đã lên lịch. Cài app lên máy tính: apt-get install clamav clamav-daemon

    https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/antivirus_configuration.html

    Sau đó thực hiện tắt mở để nó chạy:

    sudo systemctl stop clamav-daemon.service

    sudo rm /var/log/clamav/freshclam.log (sometimes it gets locked)

    sudo systemctl start clamav-daemon.service

    sudo systemctl status clamav-daemon.service

    sudo freshclam and check the log file (or console output)

    Xác minh có thực thi:

    netstat -a|grep clam

    Kích hoạt ứng dụng Files_antivirus trong app. Sau đó cấu hình trong Administrator setting / Bảo mật, Chọn Daemon (Socket): ClamAV đang chạy trên cùng máy chủ với Nextcloud. Giá trị đặt số byte được đọc trong một lần truyền. 10485760 byte hoặc 10 megabyte là mặc định. Giá trị này không được lớn hơn cài đặt PHP hoặc bộ nhớ vật lý nếu được đặt thành -1 (không giới hạn). Cuối cùng, lựa chọn ghi nhật ký bất kỳ cảnh báo nào mà không xóa tệp hoặc xóa ngay các tệp bị nhiễm.

    Trình quét nền không yêu cầu bất kỳ sự can thiệp thủ công nào. Tuy nhiên, đôi khi bạn có thể muốn kiểm tra nó hoặc thực hiện các tác vụ trên nó.

    sudo -u www-data php occ files_antivirus:status [-v]

    • Bạn có thể tắt tính năng quét nền bằng occ để chỉ quét tệp trong khi tải lên: 

    cd /var/www/nextcloud

    sudo -u www-data php occ config:app:set files_antivirus av_background_scan –value=”off”

    Để kiểm tra bằng tay:

    /var/www/nextcloud# clamscan /opt/nextcloud/data/admin/files/testfile.zip
    Bây giờ, hãy thực hiện điều tương tự bằng cách sử dụng lệnh occ vì nó sẽ được chạy từ cronjob quét nền trong khi theo dõi thời gian chạy tập lệnh: 

    /var/www/nextcloud# time sudo -u www-data php occ files_antivirus:scan /admin/files/testfile.zip

    Nó thực hiện đúng 1 phút thì dừng lại. Kiểm tra cat /etc/php/8.1/cli/php.ini | grep socket_timeout

    Thấy default_socket_timeout = 60 có nghĩa Nó được đặt thành 60 theo mặc định. Hãy thử 10 phút. sudo nano /etc/php/8.1/cli/php.ini chỉnh default_socket_timeout = 600. và kiểm tra lại nó không hết thời gian nữa. Tôi khuyên bạn nên nắm bắt thời gian chờ nếu có thể và đưa ra thông báo lỗi chính xác hơn. Ngoài ra, có thể sửa đổi thời gian chờ trong thời gian chạy tập lệnh bằng cách sử dụng streaming_set_timeout()? Tôi hy vọng thông tin này hữu ích để khắc phục vấn đề.

    Xem cấu hình https://www.inmotionhosting.com/support/website/antivirus-for-files-nextcloud-clamav/

    G DATA Antivirus

    Ứng dụng G DATA Antivirus là lớp bảo mật bổ sung cho máy chủ Nextcloud của bạn. Dễ dàng quét tệp để tìm nội dung độc hại. https://github.com/GDATASoftwareAG/nextcloud-gdata-antivirus

    Tích hợp với ứng dụng Flow! Sử dụng các thẻ để kích hoạt luồng
    Chặn việc tải lên các tệp độc hại! Ngăn chặn việc tải lên các tệp độc hại bằng cách quét chúng khi tải lên
    Thông báo cho người dùng! Người dùng được thông báo về kết quả quét
    Quét tự động! Tự động quét tất cả các tệp trong nền
    Tùy chỉnh những gì nên và không nên quét! Cấu hình thông qua Block- và Allowlist
    Sử dụng ứng dụng hoạt động! Xem những gì đã xảy ra trong phiên bản Nextcloud của bạn
    không cần phần mềm bổ sung! Ứng dụng sử dụng API G DATA Verdict as a Service (VaaS) để quét tệp

    Ứng dụng này dựa trên API G DATA Verdict as a Service (VaaS). Để bắt đầu sử dụng ứng dụng, bạn phải đăng ký qua trang đăng ký của chúng tôi hoặc tự lưu trữ phần phụ trợ. https://apps.nextcloud.com/apps/gdatavaas

    Đặc trưng

    Quét tệp tự động: Tệp từ người dùng được quét tự động 24/7 ở chế độ nền.
    Bảo vệ trong quá trình tải lên: Các tập tin được quét trong quá trình tải lên và được gắn thẻ phán quyết.
    Quét thủ công: Người dùng có thể quét tệp thủ công bất cứ lúc nào.
    Hoạt động của Nextcloud: Hành vi của phần mềm diệt vi-rút có thể được theo dõi trong ứng dụng Hoạt động thông qua chức năng ghi nhật ký thông minh.
    Đánh dấu tệp: Tệp được gắn thẻ phán quyết, cung cấp phản hồi ngay lập tức cho người dùng.
    Không cần phần mềm bổ sung: Ứng dụng hoạt động ngay lập tức với dịch vụ đám mây G DATA VaaS.
    Quy tắc quét: Ứng dụng cung cấp cả danh sách chặn và danh sách cho phép để dễ dàng thiết lập những gì nên và không nên quét.
    Cách ly: Nếu các tệp độc hại đã được tìm thấy trong môi trường Nextcloud hiện có, chúng có thể được chuyển đến khu vực cách ly của người dùng bị ảnh hưởng.

    Tag

    Clean: Máy quét không tìm thấy bất kỳ nội dung độc hại nào trong tệp.
    Malicious Độc hại: Máy quét tìm thấy vi-rút hoặc nội dung độc hại khác trong tệp.
    Pup: Máy quét tìm thấy một chương trình có khả năng không mong muốn trong tệp. Có thể là phần mềm quảng cáo, phần mềm gián điệp, v.v.
    Unscanned Chưa quét: Tệp tin vẫn chưa được quét.
    Won’t Scan Không quét được: Tệp không được quét vì quá lớn hoặc ở định dạng không thể quét được.

    Cài đặt

    Ứng dụng cung cấp nhiều cài đặt khác nhau để tùy chỉnh hành vi của phần mềm diệt vi-rút. Các cài đặt có thể được tìm thấy trong trang cài đặt quản trị Nextcloud trong phần “Verdict-as-a-Service”.

    Phương pháp xác thực: Nếu bạn đã tạo tài khoản của riêng mình trên https://vaas.gdata.de/login , hãy chọn ‘Luồng mật khẩu chủ sở hữu tài nguyên’ tại đây. Nếu bạn đã nhận được dữ liệu truy cập từ nhà cung cấp của mình (ID và bí mật của khách hàng), hãy chọn ‘Luồng thông tin xác thực của khách hàng’. Bạn chỉ cần để trống các trường khác.
    Chỉ quét cái này: Tương đương với danh sách cho phép. Nếu các giá trị ở đây được phân tách bằng dấu phẩy, ví dụ “Documents, .exe, Scan”, chỉ những giá trị chứa các giá trị tương ứng trong đường dẫn mới được quét. Trong ví dụ này, các tệp *.exe và nội dung của thư mục Documents/ và Scan/ sẽ được quét.
    Không quét mục này: Tương đương với danh sách chặn. Nếu có các giá trị được phân tách bằng dấu phẩy, ví dụ “Documents, .exe, Scan”, thì các giá trị này sẽ không được quét.
    Chiều dài hàng đợi quét: Xác định số lượng tệp được quét trên mỗi tác vụ nền của phiên bản Nextcloud, hãy xem Cài đặt cơ bản. Giúp cân bằng tải máy chủ và thời gian cho đến khi tất cả các tệp được quét. Khuyến nghị các giá trị từ 10 đến 100.
    Thiết lập nâng cao: Điểm cuối mã thông báo và URL VaaS xác định backend quét. Theo mặc định, G DATA Cloud công khai được sử dụng để quét. Nếu backend VaaS tự lưu trữ, các giá trị tương ứng cho phiên bản tự lưu trữ phải được nhập vào đây.

    Disable app

    Trước khi vô hiệu hóa app hãy xóa các ghi chú tag. Vô trang cài đặt quản trị Nextcloud trong phần “Verdict-as-a-Service” bấm vào nút “Reset all tags” . Sau đó mới disable app.

    Các lệnh sau đây có sẵn để quản lý và tương tác với ứng dụng G DATA VaaS trong phiên bản Nextcloud của bạn:

    gdatavaas:remove-tag
    Mô tả : Xóa thẻ đã chỉ định.
    Cách sử dụng :php occ gdatavaas:remove-tag <tag-name>
    Sử dụng Docker :docker exec –user www-data nextcloud-container php occ gdatavaas:remove-tag <tag-name>
    Lập luận :
    <tag-name>: Tên của thẻ cần xóa.
    Chi tiết : Lệnh này xóa thẻ đã chỉ định khỏi hệ thống. Nếu thẻ không tồn tại, lỗi sẽ được ghi lại.

    App backup

    Cấu hình như link https://github.com/nextcloud/backup

    Đây là danh sách những gì có thể được khôi phục và những gì không thể khôi phục khi sử dụng Ứng dụng sao lưu:

    Một điểm khôi phục sẽ lưu trữ:

    • Nextcloud hiện tại của bạn,
    • Cấu hình trong ,config/config.php
    • Thư mục và bất kỳ thư mục nào khác ,apps/custom_apps/
    • Địa phương của bạn , được xác định bởi in ,data/'datadirectory'config/config.php
    • Một cơ sở dữ liệu đầy đủ của bạn,sqldump
    • Danh sách các tệp và bản địa hóa trong bản sao lưu,
    • Siêu dữ liệu về phiên bản.

    Điểm khôi phục sẽ KHÔNG lưu trữ:

    • Dữ liệu từ Bộ lưu trữ bên ngoài, ngay cả khi hệ thống tệp được gắn có sẵn cục bộ.

    Nếu bạn không có dung lượng ổ đĩa, bạn có thể định cấu hình ứng dụng để sử dụng bộ nhớ ngoài để lưu trữ tất cả. Dữ liệu được tạo trong lần chuyển 1 không được mã hóa, Dữ liệu của bạn rời khỏi thư mục dữ liệu nội bộ từ phiên bản của bạn và hiện có sẵn trên bộ nhớ ngoài, Lần 1st pass sẽ yêu cầu nhiều tài nguyên hơn và phiên bản của bạn sẽ ở chế độ bảo trì lâu hơn Thời gian
    Nếu bộ nhớ ngoài của bạn không phải là thư mục cục bộ, sẽ cần tài nguyên mạng lớn, Trong quá trình cấu hình, các điểm khôi phục cũ từ bộ nhớ trước đó sẽ bị xóa. 
    Chạy lệnh:sudo -u www-data php occ backup:external:appdata trước khi cấu hình trong trang quản lý.

    External storage: local::/media/usb/mybackup/ 

    Restoring point location Actions: backup/points

    Set as App Data: Choose where the backup app will initially store the restoring points. local::/media/usb/backup/ đặt tên thư mục chứa app_data
    Sau khi cấu hình xong, bắt buộc phải xuất cấu hình của ứng dụng vì nó chứa các khóa mã hóa cho Sao lưu được mã hóa và bạn sẽ không thể khôi phục các bản sao lưu của mình từ dữ liệu bị mất. Bạn có thể làm điều đó từ trang Cài đặt quản trị viên hoặc sử dụng lệnh:occ

    ./occ backup:setup:export [–key] > ~/backup.setup

    Để khôi phục cấu hình đã xuất: ./occ backup:setup:import [–key encryption_key] < ~/backup.setup

    Tạo Điểm Khôi phục mới

    Mặc dù điều này được quản lý bởi một tác vụ nền, bạn vẫn có thể tạo điểm khôi phục theo cách thủ công:

    ./occ backup:point:create [–differential]Tùy chọn sẽ tạo một bản sao lưu vi sai.–differential

    Tải lên điểm khôi phục

    ./occ backup:point:upload <pointId>
    Thao tác này sẽ yêu cầu tất cả các phiên bản từ xa được định cấu hình để kiểm tra tính tỉnh táo của bất kỳ lần tải lên nào trước đó cho việc này Điểm khôi phục và sẽ chỉ tải lên tệp bị thiếu / bị lỗi.

    Liệt kê các điểm khôi phục có sẵn: backup:point:list

    Nếu bạn bắt đầu sử dụng ứng dụng, tại một thời điểm, bạn sẽ phải đối mặt với một tình huống mà Điểm khôi phục quan trọng là sẵn dùng ở đâu đó nhưng không thể tìm thấy trong cơ sở dữ liệu của bạn. Ví dụ: khi khôi phục Bản sao lưu, tất cả Điểm khôi phục được tạo sau bản sao lưu này sẽ không còn trong cơ sở dữ liệu nữa. Điều này là bình thường như khôi phục Sao lưu hoàn toàn ghi đè lên cơ sở dữ liệu của bạn. Trong trường hợp đó, bạn có thể chạy lệnh này:

    ./occ backup:point:scan <pointId>
    Nếu không thể tìm thấy, bạn sẽ cần sao chép thủ công thư mục chứa Điểm khôi phục trong Thư mục AppData: .data/appdata_qwerty123/backup/

    Xác minh tính toàn vẹn của Điểm khôi phục

    ./occ backup:point:details <pointId>

    Để khôi phục bản sao lưu:

    ./occ backup:point:unpack 20211031232710-full-Tu4H6vOtxKoLLb9

    ./occ backup:point:restore 20211031232710-full-Tu4H6vOtxKoLLb9

    Tải lên điểm khôi phục đã đóng gói của bạn trên một (hoặc nhiều) bộ nhớ ngoài là giải pháp hoàn hảo khi Đối mặt với sự mất mát lớn dữ liệu từ đĩa của bạn cho dù đó là nguồn gốc của con người hay phần cứng. Cấu hình được thực hiện theo 2 bước:

    Bước đầu tiên là thiết lập một thư mục từ Trang cài đặt bộ nhớ ngoài, nó được khuyên dùng Để giới hạn tính khả dụng của thư mục chỉ dành cho nhóm:admin
    Bước thứ hai được thực hiện trong Trang cài đặt sao lưu, Bộ nhớ ngoài được định cấu hình phải là Hiển thị trong danh sách vị trí lưu trữ khả dụng:
    Đặt thư mục lưu trữ các tệp sao lưu của bạn trên bộ nhớ ngoài và nhấp vào ‘Thêm mới vị trí bên ngoài’.

    App kho lưu trữ bên ngoài

    Ứng dụng Hỗ trợ lưu trữ ngoài cho phép bạn gắn bộ nhớ ngoài dịch vụ và thiết bị như thiết bị lưu trữ phụ. https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage_configuration_gui.html

    Các chương trình phụ trợ sau đây được cung cấp bởi ứng dụng lưu trữ bên ngoài như: Amazon S3, FTP / FTPS, Local, Nextcloud, Lưu trữ đối tượng OpenStack, SFTP, SMB / CIFS, WebDAV

    Menu Tràn (ba dấu chấm) hiển thị các cài đặt và thùng rác. Nhấp vào thùng rác để xóa điểm gắn kết. Nút cài đặt cho phép bạn định cấu hình từng ngàm lưu trữ riêng lẻ với các tùy chọn sau:

    • Mã hóa. Hộp kiểm Mã hóa chỉ hiển thị khi ứng dụng Mã hóa được bật. Lưu ý rằng phía máy chủ mã hóa không khả dụng cho các máy chủ Nextcloud khác được sử dụng làm bộ nhớ ngoài.

    • Xem trước

    • Bật chia sẻ. Bật Chia sẻ cho phép quản trị viên Nextcloud bật hoặc tắt chia sẻ trên các điểm gắn riêng lẻ. Khi tính năng chia sẻ bị tắt, các chia sẻ được giữ lại trong nội bộ để bạn có thể bật lại tính năng chia sẻ và các cổ phiếu trước đó sẽ có sẵn trở lại. Chia sẻ bị tắt theo mặc định.

    • Tần suất kiểm tra hệ thống tệp (Không bao giờ, Một lần cho mỗi lần truy cập trực tiếp)

    • Khả năng tương thích với Mac NFD

    • Chỉ đọc

    Thêm tệp vào kho lưu trữ bên ngoài không qua web. Chúng tôi khuyên bạn nên định cấu hình tác vụ nền Webcron hoặc Cron để bật Nextcloud tự động phát hiện các tệp được thêm vào bên ngoài của bạn lưu trữ. Nextcloud có thể không phải lúc nào cũng có thể tìm ra những gì đã được thay đổi từ xa (các tệp thay đổi mà không thông qua Nextcloud), đặc biệt là khi nó nằm rất sâu trong hệ thống phân cấp thư mục của bộ nhớ ngoài.

    Bạn có thể cần thiết lập tác vụ cron chạy (hoặc thay thế bằng tên người dùng, xem thêm Sử dụng lệnh occ) để kích hoạt quét lại các tệp của người dùng theo định kỳ (ví dụ: cứ sau 15 phút), bao gồm bộ nhớ ngoài được gắn.sudo -u www-data php occ files:scan –all–all

    App Preview Generator

    Đã thử nghiệm và hoạt động các định dạng tập tin avi, doc, bmp, gif, jpg, md, mkv, mp3, mp4, odp, ods, odt, pdf, png, psd, svg, tif, ttf, txt, xls.

    Cài đặt ứng dụng Preview Generator của cửa hàng ứng dụng Nextcloud: apps.nextcloud.com/apps/previewgenerator

    Cài đặt LibreOffice
    sudo apt install libreoffice libreoffice-l10n-de libreoffice-help-vi
    Cài đặt ffmpeg, ImageMagick và Ghostscript
    apt install ffmpeg imagemagick ghostscript
    Thêm nhà cung cấp bản xem trước
    Thêm vào/var/www/nextcloud/config/config.php

    ‘preview_libreoffice_path’ => ‘/usr/bin/libreoffice’,
    ‘enable_previews’ => true,
    ‘enabledPreviewProviders’ =>
    array (
    0 => ‘OC\\Preview\\TXT’,
    1 => ‘OC\\Preview\\MarkDown’,
    2 => ‘OC\\Preview\\OpenDocument’,
    3 => ‘OC\\Preview\\PDF’,
    4 => ‘OC\\Preview\\MSOffice2003’,
    5 => ‘OC\\Preview\\MSOfficeDoc’,
    6 => ‘OC\\Preview\\Image’,
    7 => ‘OC\\Preview\\Photoshop’,
    8 => ‘OC\\Preview\\TIFF’,
    9 => ‘OC\\Preview\\SVG’,
    10 => ‘OC\\Preview\\Font’,
    11 => ‘OC\\Preview\\MP3’,
    12 => ‘OC\\Preview\\Movie’,
    13 => ‘OC\\Preview\\MKV’,
    14 => ‘OC\\Preview\\MP4’,
    15 => ‘OC\\Preview\\AVI’,
    ),
    Tạo thư mục .cache trên máy chủ ISPConfig trong thư mục gốc của máy chủ ảo để ngăn chặn unable to create directory ‘/var/www/clients/client1/web1/.cache/dconf’: Operation not permitted. dconf will not work properly
    Chỉ cần thiết cho các tài liệu văn phòng như .ods và .odt.

    Sửa PolicyMap cho ImageMagick để ngăn chặn lỗi ImagickException: not authorized . Cần thiết cho các tệp PDF.

    • Lần chạy đầu tiên cho toàn bộ
      sudo -u www-run php /var/www/nextcloud/occ preview:generate-all -vvv

    preview:generate-all [–path=PATH …] [user_id …] Nếu một hoặc nhiều ID người dùng được cung cấp, nó sẽ chỉ lặp lại các tệp của những người dùng đó. Bạn cũng có thể giới hạn việc tạo thành một hoặc nhiều đường dẫn bằng cách sử dụng –path=”/[username]/files/[folder path]”, e.g. –path=”/alice/files/Photos” Lưu ý rằng tất cả các user_id đã cho sẽ bị bỏ qua nếu ít nhất một đường dẫn được chỉ định.
    Thêm Cronjob
    crontab -u www-run -e
    */10 * * * * php /var/www/nextcloud/occ preview:pre-generate -vvv

    Tôi không muốn tạo tất cả các kích thước xem trước
    Điều này có thể thực hiện được kể từ phiên bản 1.0.8. Chỉ cần đặt các giá trị chính xác thông qua dòng lệnh

    ./occ config:app:set –value=”64 256 1024″ previewgenerator squareSizes
    ./occ config:app:set –value=”64 256 1024″ previewgenerator widthSizes
    ./occ config:app:set –value=”64 256 1024″ previewgenerator heightSizes
    Điều này sẽ chỉ tạo ra:

    bản xem trước hình vuông của: 64×64, 256×256 và 1024×1024
    xem trước tỷ lệ khung hình với chiều rộng: 64, 256 và 1024
    xem trước tỷ lệ khung hình với chiều cao: 64, 256 và 1024
    Ghi chú:

    kích thước bản xem trước luôn là lũy thừa của 4.
    Kích thước nhỏ nhất là 64
    Kích thước tối đa được xác định bởi cài đặt xem trước của bạn trong config.php


    Hoàn thành.

    Tôi muốn thiết lập lại/tạo lại tất cả các bản xem trước
    CẢNH BÁO: Tính năng này không được hỗ trợ nhưng đã được nhiều người dùng xác nhận là có hiệu quả. Tiến hành với rủi ro của riêng bạn. Luôn sao lưu.

    Xóa thư mụcyour-nextcloud-data-directory/appdata_*/preview
    Tùy chọn: thay đổi các tham số preview_max_x và preview_max_y trong config.php (ví dụ, thành 512), và thay đổi previewgenerator các tham số ứng dụng heightSizes, squareSizesvà widthSizes theo README (hoặc tốt hơn nữa, thành một giá trị thấp cho từng tham số, ví dụ 512, 256 và 512tương ứng)
    Chạy occ files:scan-app-data (điều này sẽ thiết lập lại bản xem trước đã tạo trong cơ sở dữ liệu)
    Chạy occ preview:generate-all [user-id](sẽ chạy rất nhanh nếu bạn thực hiện bước 2)

    App Music

    https://apps.nextcloud.com/apps/music

    Trên các trình duyệt hiện đại, hỗ trợ các loại âm thanh .mp3, .ogg, .m4a, .m4b, .flac, .wav, v.v. Hỗ trợ danh sách phát với việc nhập từ các tệp m3u, m3u8 và pls.

    Phát kênh radio internet và podcast.

    Tìm thêm RSS

    Find A Podcast RSS Feed

    Radio thêm https://github.com/mikepierce/internet-radio-streams

    Phụ trợ tương thích với các giao thức Subsonic và Ampache, cho phép phát lại và duyệt thư viện của bạn trên nhiều ứng dụng bên ngoài, ví dụ như trên Android hoặc iPhone

    Kích hoạt bộ nhớ đệm PHP và thêm thư viện

    Để cải thiện đáng kể hiệu suất máy chủ Nextcloud của mình bằng bộ nhớ đệm, nơi các đối tượng thường được yêu cầu được lưu trữ trong bộ nhớ để truy xuất nhanh hơn. Có hai loại bộ nhớ đệm để sử dụng: bộ nhớ đệm mã lệnh PHP, thường được gọi là opcache và bộ nhớ đệm dữ liệu cho máy chủ web của bạn, thường được gọi là “memcache”.

    PHP opcache lưu trữ các tập lệnh PHP đã biên dịch, do đó không cần phải biên dịch lại mỗi khi chúng được gọi. PHP đóng gói Zend OPcache trong lõi kể từ phiên bản 5.5, do đó bạn không cần phải cài đặt opcache theo cách thủ công.

    nano /etc/php/7.4/fpm/conf.d/10-opcache.ini

    Sau đó, ở cuối tệp thêm cấu hình sau::

    opcache.memory_consumption=256
    opcache.interned_strings_buffer=64
    opcache.max_accelerated_files=32531
    opcache.validate_timestamps=0
    opcache.enable_cli=1

    systemctl restart php7.4-fpm.service

    Bộ nhớ đệm dữ liệu được cung cấp bởi người dùng. Nextcloud hỗ trợ nhiều bộ nhớ đệm backend, do đó bạn có thể chọn loại memcache phù hợp nhất với nhu cầu của mình. Bộ đệm được khuyến nghị là APCu bộ đệm cục bộ và Redis bộ đệm phân tán. Các bước như sau: Cài đặt theo phiên bản php (php -v) 

    sudo apt install php8.2-apcu

    Liệt kê các extension mở rộng: php -m

    và kích hoạt memcache (bộ đệm dữ liệu) đã chọn, hãy xác minh rằng nó đang hoạt động bằng cách chạy 

    ps ax | grep redis
    Xuất ra dòng: /usr/bin/redis-server 127.0.0.1:6379

    thêm các mục thích hợp vào config.php và khởi động lại máy chủ web của bạn làm mới trang quản trị Nextcloud của bạn.
    ‘memcache.local’ => ‘\OC\Memcache\APCu’,
    ‘memcache.distributed’ => ‘\OC\Memcache\Redis’,
    ‘memcache.locking’ => ‘\OC\Memcache\Redis’,
    ‘redis’ => [
    ‘host’ => ‘localhost’,
    ‘port’ => 6379,
    ],
    APCu nhanh hơn Redis trong việc lưu trữ đệm cục bộ. Sử dụng Redis cho bộ nhớ đệm cục bộ trên thiết lập nhiều máy chủ có thể gây ra sự cố. Nếu bạn có đủ bộ nhớ, hãy sử dụng APCu cho bộ nhớ đệm và Redis cho khóa tệp. Nếu bạn thiếu bộ nhớ, hãy sử dụng Redis cho cả hai. ‘memcache.local’ =>’\OC\Memcache\Redis’ ,

    APCu bị vô hiệu hóa theo mặc định trên CLI, điều này có thể gây ra sự cố với cron job của nextcloud. /etc/php/8.2/fpm/php.ini thêm dòng apc.enable_cli=1

    hoặc extension=apcu.so
    apc.enabled=1

    nano /etc/php/x.x/cli/php.ini
    (x.x is your php Version e.g. 7.4 or 8.1)
    write the next line into this file:
    apc.enable_cli=1

    apt-get install libmagickcore-6.q16-6-extra

    apt install php-imagick imagemagick

    Cập nhật app

    sudo -u www-data php occ app:update –all

    cập nhật tất cả

    cd <path-to nextcloud-document-root>/apps

    Xóa thư mục ứng dụng cũ của ứng dụng bạn muốn cập nhật:
    rm -rf ./<app-to-remove>
    Giải nén ứng dụng mới vào thư mục ứng dụng:
    tar xvzf <app-archive>.tar.gz -C <path-to nextcloud-document-root>/apps
    ls -ald <installed-app-folder>
    thay đổi quyền sở hữu và quyền truy cập thư mục ứng dụng:
    find ./<installed-app-folder> -type d -exec chmod 0750 {} \;
    find ./<installed-app-folder> -type f -exec chmod 0640 {} \;
    chown <web-server-user>: ./<installed-app-folder>
    Bật ứng dụng nếu chưa thực hiện:
    sudo <web-server-user> php <path-to nextcloud-document-root>/occ app:enable <updated-app-name>
    Buộc cập nhật thông tin ứng dụng trong cơ sở dữ liệu Nextcloud:
    sudo <web-server-user> php <path-to nextcloud-document-root>/occ app:update <updated-app-name>
    Cảm ơn bạn đã trả lời! Tôi đã thử nhưng không được.

    Sau đây là các bước của tôi:

    sudo find <path-to nextcloud-document-root>/apps/<app-name> -type d -exec chmod 0750 {} \;
    sudo find <path-to nextcloud-document-root>/apps/<app-name> -type f -exec chmod 0640 {} \;
    sudo chown -R www-data: <path-to nextcloud-document-root>/apps/<app-name>
    sudo -u www-data php <path-to nextcloud-document-root>/occ app:enable <app-name>

    Điều này chỉ cần thiết nếu bạn muốn cập nhật lên phiên bản mới nhất:
    sudo -u www-data php <path-to nextcloud-document-root>/occ app:update <app-name>

    xóa tất cả các phiên bản cho tất cả: sudo -u www-data php occ versions:cleanup

    xóa phiên bản cho 2 ứng dụng cụ thể trong danh sách phân:sudo -u www-data php occ versions:cleanup freda molly

    Bật utf8mb4 cho MySQL

    Bật chế độ bảo trì:

    sudo -u www-data php occ maintenance:mode --on

    Thay đổi đặc điểm database:

    ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    Set cho file config.php:

    sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"

    Chuyển đổi bảng:

    sudo -u www-data php occ maintenance:repair

    Tắt chế độ bảo trì:

    sudo -u www-data php occ maintenance:mode --off

    Xem tại trang https://docs.nextcloud.com/server/26/admin_manual/configuration_database/mysql_4byte_support.html

    Uploading files lớn > 512MB

    Chỉnh sửa file /etc/php/7.4/fpm/php.ini

    upload_max_filesize = 16G
    post_max_size = 16G

    upload_tmp_dir = “/var/www/nextcloud/data/tmp”

    sys_temp_dir = “/var/www/nextcloud/data/tmp”
    Và chỉnh file /usr/share/nginx/nextcloud/config/config.php
    ‘tempdirectory’ => ‘/var/www/nextcloud/data/tmp’,
    và chỉnh quyền truy cập
    drwxr-xr-x 2 www-data www-data 4096 Mar 12 21:01 tmp

    Để cải thiện hiệu suất tải lên trong môi trường có băng thông tải lên cao, kích thước đoạn tải lên của máy chủ có thể được điều chỉnh:

    sudo -u www-data php occ config:app:set files max_chunk_size –value 20971520

    Đặt một giá trị tính bằng byte (trong ví dụ này là 20MB). Mặc định là 10485760 (10 MiB).

    Xem thêm: https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 

    Dùng Nextcloud trên Raspberry Pi, gắn bộ nhớ ngoài

    NextCloudPi là phiên bản thiết kế để chạy trên Raspberry Pi 3 hoặc 4. Trước tiên, hãy tải xuống file image hệ điều hành NextCloudPi mới nhất từ ​​repo GitHub. Chọn phiên bản cho Raspberry Pi. Sau khi tải xuống, hãy giải nén file bằng công cụ giải nén, bạn sẽ có một thư mục chứa file IMG.

    Sử dụng ứng dụng Raspberry Pi Imager để flash file (image hệ điều hành) này vào thẻ nhớ microSD đã lắp – thẻ có dung lượng 8GB trở lên.

    Đặt thẻ nhớ microSD vào Raspberry Pi và bật nguồn. Sau vài giây hiển thị trình tự khởi động, bạn sẽ được nhắc đăng nhập. Tên người dùng mặc định là pi và mật khẩu là raspberry. Nó sẽ hỏi có cần thay đổi tên user và password luôn lúc này.

    Nhập sudo raspi-config và chọn 2 Network Options, sau đó chọn N2 Wireless LAN. Chọn quốc gia, theo sau là SSID (tên) và mật khẩu của router. Chọn Finish để quay lại dòng lệnh.

    Để khám phá địa chỉ IP của Raspberry Pi, hãy nhập:

    ip addr

    Ghi lại địa chỉ inet dưới wlan0: Đây là địa chỉ IP của Raspberry Pi. Một số router sẽ dành cùng một địa chỉ cho nó mỗi khi nó khởi động. Nếu không, bạn sẽ muốn thiết lập một địa chỉ IP tĩnh cho Raspberry Pi của mình.

    Tại thời điểm này, bạn cũng có thể bật SSH để truy cập từ xa từ một máy tính khác nếu không muốn giữ Raspberry Pi của mình kết nối với màn hình trong khi tiếp tục thiết lập. Để làm như vậy, sử dụng lệnh:

    sudo service ssh start

    Từ dòng lệnh hoặc terminal của một máy tính khác, sau đó bạn có thể nhập ssh pi@[địa chỉ IP của Pi] để truy cập dòng lệnh của Raspberry Pi.

    4. Kích hoạt giao diện web Nextcloud

    Nhập sudo ncp-config và chọn Yes nếu được nhắc cập nhật. Trong menu tiếp theo, chọn CONFIG và sử dụng mũi tên xuống để cuộn xuống cuối danh sách.

    Tại đây chọn nc-webui, sau đó xóa no và gõ yes. Nhấn Enter rồi nhấn phím bất kỳ. Chọn Back and Finish để thoát khỏi công cụ cấu hình.

    5. Kích hoạt và cấu hình Nextcloud

    Trong trình duyệt web trên một máy tính khác, hãy nhập địa chỉ https://[địa chỉ IP của Pi]:4443.

    Nếu bạn thấy cảnh báo rằng kết nối của bạn không riêng tư hoặc an toàn, hãy chọn bỏ qua cảnh báo đó (bằng cách chọn Advanced trong Chrome hoặc Firefox) và tiếp tục truy cập trang web.

    Bạn sẽ được nhắc đăng nhập. Tên người dùng mặc định là ncp và mật khẩu là ownyourbits.

    Image
    Màn hình kích hoạt NextCloudPi hiển thị hai mật khẩu

    bạn cần sao chép và dán vào tài liệu để lưu giữ an toàn. Đầu tiên là mật khẩu cho web panel NextCloudPi cho phép bạn cấu hình cài đặt máy chủ. Thứ hai là dành cho chính giao diện web Nextcloud. Bạn có thể thay đổi các mật khẩu này sau nếu muốn.

    Với những mật khẩu được ghi lại, hãy chọn Activate. Sau vài giây, bạn sẽ được nhắc đăng nhập vào web panel NextCloudPi. Tuy nhiên, bây giờ hãy bỏ qua điều đó và đăng nhập vào giao diện web Nextcloud.

    Truy cập web Nextcloud https://[địa chỉ IP của Pi] (không có hậu tố :4443) và đăng nhập bằng tên người dùng ncp và mật khẩu thứ hai mà bạn đã ghi lại.

    Sau khi tiếp tục qua màn hình chào mừng, bạn sẽ thấy bảng điều khiển web chính. Đây là máy chủ đám mây Raspberry Pi 4 của riêng bạn!

    trên cùng bên phải để truy cập menu drop-down với các tùy chọn cho Settings (toàn bộ – cá nhân và quản trị viên), Users (bạn có thể thêm và quản lý người dùng) và Apps để cài đặt (chẳng hạn như bộ ứng dụng office Collabora Online và máy chủ ARM64).

    Trong thanh công cụ trên cùng là các biểu tượng cho những phần như Files, Photos, Contacts, Calendar và Tasks. Ngoài ra còn có một biểu tượng NextCloudPi đưa bạn đến web panel. Nhấp vào nó và bạn sẽ được nhắc đăng nhập bằng tên người dùng ncp và mật khẩu đầu tiên bạn đã ghi lại.

    Một trình hướng dẫn sẽ xuất hiện với các tùy chọn để cấu hình bộ lưu trữ USB và quyền truy cập bên ngoài qua Internet.

    7. Thêm bộ nhớ ngoài USB

    Thẻ nhớ microSD của bạn sẽ có dung lượng hạn chế, vì vậy tốt nhất bạn nên thêm bộ lưu trữ USB cho máy chủ Nextcloud Raspberry Pi của mình. Kết nối thiết bị lưu trữ của bạn với một trong các cổng USB của Raspberry Pi.

    Trước khi tiếp tục, bạn cần tạo một thư mục cho nó trong dòng lệnh trên Raspberry Pi (hoặc qua SSH). Nhập lệnh sau:

    sudo mkdir /media/USBdrive

    Truy cập web panel NextCloudPi trong trình duyệt web trên máy tính khác của bạn. Trong trình hướng dẫn xuất hiện (bạn có thể mở nó bằng biểu tượng cây đũa phép ở thanh công cụ trên cùng), chọn USB Configuration. Trả lời Yes cho câu hỏi đầu tiên, sau đó nhấp vào Continue.

    Sau đó, bạn sẽ được hỏi có muốn format USB không. Nếu bạn chắc chắn không có file quan trọng nào trên đó mà bạn muốn giữ lại, hãy chọn Format USB. Cuối cùng, nhấn Move data to USB.

    Bạn có thể truy cập trang tổng quan của nó bằng trình duyệt web trên thiết bị khác. Thậm chí còn có một ứng dụng Nextcloud dành cho iOS và Android mà bạn có thể sử dụng.

    Chạy trên Docker

    Tạo một thư mục /opt/NextCloud và file docker-compose.yaml

    version: '2'
    
    volumes:
      nextcloud:
      db:
    
    services:
      db:
        image: mariadb
        restart: always
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    
        volumes:
          - db:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=Bund7zXeVz7YnFknLGcnUjHtk #change this
          - MYSQL_PASSWORD=HFdMe9rn5kf7A8Pqc8v86Pre5 #change this
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
    
      app:
        image: nextcloud
        restart: always
        ports:
          - 8888:80
        links:
          - db
        volumes:
          - nextcloud:/var/www/html
        environment:
          - MYSQL_PASSWORD=HFdMe9rn5kf7A8Pqc8v86Pre5  #change this to match the mysql_password above
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_HOST=db
          - TZ=Europe/Copenhagen
    

    docker-compose up -d

    Vào trình duyệt và tiến hành thiết lập Nextcloud http://ip:8888

    https://www.51sec.org/2021/01/23/install-nextcloud-docker-and-integrate-with-nginx-and-letsencrypt-ssl-certificate/

    Thêm web-based office

    Bạn có thể mở trực tiếp các file word, excel, … trực tiếp trên NextCloud bằng dùng 1trong 2 ứng Collabora và OnlyOffice. Bạn vào phần app để install và enable plugin NextCloud office của collabora hoặc onlyofffice. Collabora thì cho chạy internal và ko có ssl.

    https://techoverflow.net/2021/08/19/how-to-run-collabora-office-for-nextcloud-using-docker-compose/

    Với onlyoffice thì các bạn bắt buộc phải có ssl để có thể integrate với Nextcloud được.

    https://nimtechnology.com/2022/03/02/onlyoffice-collabora-install-open-source-web-based-office-for-nextcloud

    Cài tất cả trong 1

    https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/

    https://nextcloud.com/blog/your-guide-to-the-nextcloud-all-in-one-on-windows-10-11/

    docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume //var/run/docker.sock:/var/run/docker.sock:ro -e NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata" nextcloud/all-in-one:latest

    Đảm bảo điều chỉnh /run/desktop/mnt/host/c/ncdata theo nhu cầu của bạn. Đường dẫn này tương đương với  C:\ncdata trên máy chủ Windows của bạn nên bạn cần chỉnh đường dẫn cho phù hợp. Gợi ý: đường dẫn bạn nhập cần bắt đầu bằng /run/desktop/mnt/host/. Nối vào đó vị trí chính xác trên máy chủ lưu trữ windows của bạn, ví dụ c/ncdata: tương đương với C:\ncdata.

    Sau đó, bạn có thể mở giao diện AIO tại https://localhost:8080. Bạn cần chấp nhận chứng chỉ Tự ký.

    Nhấp vào Open Nextcloud AIO login và dán mật khẩu của bạn: mannish sullen closure paging operator groin passing budding

    Nếu quên pass, dùng câu lệnh

    sudo cat /var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/configuration.json | grep password

    Mở cmd nhập : docker exec nextcloud-aio-mastercontainer grep password /mnt/docker-aio-config/data/configuration.json

    Tiếp theo, nhập miền công khai mà bạn đã thiết lập trước khi bắt đầu hướng dẫn này. Giao diện sẽ giúp bạn tìm ra các bước chính xác. (Thiết lập DDNS cho miền của bạn để trỏ đến IP công cộng của bạn, chuyển tiếp ít nhất các cổng 443/tcp và 3478/udp và 3478/tcp tới máy Windows của bạn.)

    time zones=Asia/Ho_Chi_Minh

    Sau khi bạn đã thiết lập chính xác, nó sẽ cho phép bạn chuyển sang bước tiếp theo, nơi bạn có thể định cấu hình các addon tùy chọn mong muốn và múi giờ, đồng thời nhấp vào Start containers để tải xuống và khởi động chúng.

    Bây giờ bạn sẽ thấy một công cụ quay vòng sẽ mất một lúc (tùy thuộc vào tốc độ internet của bạn, khoảng 10 phút trở lên). Giờ đây, bạn có thể mở phiên bản Nextcloud mới của mình và đăng nhập bằng thông tin đăng nhập quản trị viên đã cho.

     Bạn cũng nên mở Backup and restore phần gõ trong một đường dẫn như ví dụ /run/desktop/mnt/host/c/backup và gửi nó. Đường dẫn này tương đương với  C:\backup trên máy chủ Windows của bạn nên bạn cần chỉnh đường dẫn cho phù hợp. Gợi ý: đường dẫn bạn nhập cần bắt đầu bằng /run/desktop/mnt/host/. Nối vào đó vị trí chính xác trên máy chủ lưu trữ windows của bạn, ví dụ c/backup: tương đương với C:\backup.

    Đó là nó! Bây giờ mọi thứ đã được thiết lập và sẵn sàng để sản xuất.

    Giữ dữ liệu của bạn, thông qua AIO mới của bạn!

    Lưu ý: Hệ thống chạy yêu cầu ram 23G dể duy trì

    Ứng dụng chạy ngầm Vmmen 14.88,1 MB CPU thì thấp 1.3%, Ethernet receive 6Mbps.

    Sao lưu Nextcloud

    Để sao lưu cài đặt Nextcloud, bạn cần giữ lại bốn điều chính:

    1. Thư mục cấu hình

    2. Thư mục dữ liệu

    3. Thư mục chủ đề

    4. Kho dữ liệu

    Đầu tiên bật chế độ bảo trì. khóa phiên của người dùng đã đăng nhập và ngăn chặn các lần đăng nhập mới nhằm ngăn chặn sự không nhất quán trong dữ liệu của bạn. Dùng câu lệnh

    sudo -u www-data php occ maintenance:mode –on
    Hoặc thay đổi trong file config. Vào config/config.php. 
    Thay đổi:”maintenance” => falsethành”maintenance” => true

    Đừng quên thay đổi nó trở lại false khi bạn hoàn thành.

    Chỉ cần sao chép các thư mục cấu hình, dữ liệu và chủ đề của bạn (hoặc thậm chí toàn bộ thư mục dữ liệu và cài đặt Nextcloud của bạn) sang một nơi bên ngoài môi trường Nextcloud của bạn. Bạn có thể sử dụng lệnh này:

    rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +”%Y%m%d”`/

    Câu lệnh rsync chỉ đơn giản là bản sao một-một của tất cả các tệp từ nguồn sang đích, đồng thời là một bản sao. Ví dụ: nếu bạn muốn sao lưu thư mục chính có dung lượng 100G trong 7 ngày trong tuần, phương tiện sao lưu của bạn sẽ cần 700G dung lượng trống. Sao lưu gia tăng hoặc Sao lưu khác biệt bắt đầu bằng một bản sao lưu đầy đủ, sau đó tạo lịch sử phiên bản trong đó chỉ những thay đổi trong tệp của bạn được lưu trữ. Điều này dẫn đến việc giảm đáng kể dung lượng ổ đĩa cần thiết.

    Nếu bạn chưa có bất kỳ kinh nghiệm nào với Rsync, bạn có thể biết việc sao chép các tệp quan trọng của mình sang vị trí sao lưu thật dễ dàng đến kinh ngạc. Như ví dụ đơn giản bên dưới cho thấy, logic không thực sự thay đổi nhiều nếu bạn đang sử dụng ổ đĩa ngoài, máy chủ từ xa chạy rsyncd hoặc chạy rsync qua ssh:

    # Rsync to external disk
    rsync -av /home/$USER/Doduments /mount/externaldisk/backup

    # Rsync to server running rsyncd
    rsync -avz /home/$USER/Documents username@backup.perfacilis.com::profilen/Documents

    # Rsync to ssh server
    rsync -avz /home/$USER/Documents username@ssh.server.com:/backup/Documents

    Đây là giải pháp cơ bản nhất và mặc dù nó hoàn thành công việc nhưng nó vẫn chưa phải là một giải pháp mạnh mẽ. bạn có thể thiết lập một mảng cho các thư mục bạn muốn sao lưu và lặp qua chúng:

    #!/bin/bash

    readonly BACKUP_DIRS=(/etc /home/$USER /root /var/www)
    readonly RSYNC_PROFILE=”user@backup.perfacilis.com::profile”
    readonly RSYNC_DEFAULTS=”-avz”

    backup_folders() {
    local DIR TARGET

    for DIR in ${BACKUP_DIRS[@]}; do
      TARGET=${DIR/#\//}
      TARGET=${TARGET//\//_}
      rsync $RSYNC_DEFAULTS $DIR/ $RSYNC_PROFILE/$TARGET
    done
    }

    main() {
    backup_folders
    }

    main

    Sửa đổi BACKUP_DIRSmảng theo nhu cầu của bạn, chỉ cần tách từng thư mục bằng một khoảng trắng, lưu văn bản dưới dạng backup.sh, và chỉ cần chạy nó từ dòng lệnh: bash backup.sh  và bản sao lưu của bạn sẽ chạy. Tùy chọn, bạn có thể làm cho tệp có thể chạy được chmod +x backup.sh, bạn có thể chạy tệp này mà không cần gọi bash:  ./backup.sh.

    Đừng quên dòng cuối cùng  main  được gọi, nếu không sẽ không có gì xảy ra. Nếu tập lệnh của bạn có vấn đề, hãy sử dụng bash -x ./backup.shđể gỡ lỗi.

    Sao lưu cơ sở dữ liệu. Để sao lưu MySQL/MariaDB:

    mysqldump –single-transaction -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_`date +”%Y%m%d”`.bak

    SQLite

    sqlite3 data/owncloud.db .dump > nextcloud-sqlbkp_`date +”%Y%m%d”`.bak

    PostgreSQL

    PGPASSWORD=”password” pg_dump [db_name] -h [server] -U [username] -f nextcloud-sqlbkp_`date +”%Y%m%d”`.bak
    Khôi phục bản sao lưu

    Nextcloud không phải là một giải pháp sao lưu, đó là một cách đồng bộ hóa dữ liệu của bạn nhưng không phải là bản sao lưu. Hãy suy nghĩ mà xem, nếu bạn xóa một tập tin khỏi máy tính A, việc xóa đó sẽ ngay lập tức được đồng bộ hóa ở mọi nơi thông qua Nextcloud. Có các biện pháp bảo vệ tại chỗ, chẳng hạn như thùng rác và kiểm soát phiên bản, nhưng Nextcloud không phải là giải pháp sao lưu. Chỉ cần sao chép thư mục dữ liệu và cấu hình của bạn (hoặc thậm chí toàn bộ thư mục dữ liệu và cài đặt Nextcloud của bạn) vào môi trường Nextcloud của bạn. Bạn có thể sử dụng lệnh này:

    rsync -Aax nextcloud-dirbkp/ nextcloud/

    Khôi phục cơ sở dữ liệu. Trước khi khôi phục bản sao lưu, bạn cần đảm bảo xóa tất cả các bảng cơ sở dữ liệu hiện có. Cách dễ nhất để thực hiện việc này là xóa và tạo lại cơ sở dữ liệu. SQLite thực hiện việc này một cách tự động.

    MySQL là công cụ cơ sở dữ liệu được khuyên dùng. Để khôi phục MySQL:

    mysql -h [server] -u [username] -p[password] -e “DROP DATABASE nextcloud”
    mysql -h [server] -u [username] -p[password] -e “CREATE DATABASE nextcloud”

    PostgreSQL: 

    PGPASSWORD=”password” psql -h [server] -U [username] -d template1 -c “DROP DATABASE \”nextcloud\”;”
    PGPASSWORD=”password” psql -h [server] -U [username] -d template1 -c “CREATE DATABASE \”nextcloud\”;”
    Tiến hành khôi phục data, giả định rằng bản sao lưu trước đó của bạn có tên là “nextcloud-sqlbkp.bak”

    Để khôi phục MySQL:

    mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak


    SQLite

    rm data/owncloud.db
    sqlite3 data/owncloud.db < nextcloud-sqlbkp.bak


    PostgreSQL

    PGPASSWORD=”password” psql -h [server] -U [username] -d nextcloud -f nextcloud-sqlbkp.bak

    Tính lỗi thời trên máy chủ.

    Nếu dữ liệu trên máy chủ và máy khách khác nhau, máy khách sẽ mặc định tìm nạp dữ liệu từ máy chủ.

    Nếu bản sao lưu được khôi phục đã lỗi thời thì trạng thái của máy khách có thể cập nhật hơn trạng thái của máy chủ. Trong trường hợp này, hãy đảm bảo chạy lệnh maintenance:data-fingerprint sau đó. Nó thay đổi logic của thuật toán đồng bộ hóa để cố gắng khôi phục càng nhiều dữ liệu càng tốt. Do đó, các tệp bị thiếu trên máy chủ sẽ được khôi phục từ máy khách và trong trường hợp có nội dung khác, người dùng sẽ được hỏi.

    Xem trực tiếp tại trang https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html
    Ngoài ra có thể dùng câu lệnh nhân bản ảnh của ổ đĩa bằng rpi-clone
    https://github.com/billw2/rpi-clone
    Dùng script để sao lưu và phục hồi https://github.com/DecaTec/Nextcloud-Backup-Restore
    Dùng app trong nextcloud https://github.com/nextcloud/backup
    https://kevquirk.com/how-to-backup-nextcloud/

    Tăng thời gian nhớ đang nhập ở máy client

    Khi đăng nhập vào Nextcloud trên giao diện web, máy chủ không bao giờ tự động đăng xuất người dùng sau bất kỳ khoảng thời gian nào.

    ‘remember_login_cookie_lifetime’ => 1296000,

    ‘session_lifetime’ => 43200,

    ‘session_keepalive’ => false,

    ‘auto_logout’ => false,

    Có cách nào để khắc phục sự cố này để nếu người dùng không hoạt động trên giao diện web, hệ thống sẽ đăng xuất họ sau 30 phút không hoạt động không? Bật hoặc tắt tính năng tự động đăng xuất sau session_lifetime, ngay cả khi session keepalive được bật. Điều này sẽ đảm bảo rằng trình duyệt không hoạt động sẽ được đăng xuất ngay cả khi các yêu cầu đến máy chủ có thể kéo dài thời gian tồn tại của phiên.

    ‘remember_login_cookie_lifetime’ => 1296000,
    ‘session_lifetime’ => 1800,
    ‘session_keepalive’ => false,
    ‘auto_logout’ => true,

     

    Reset mật khẩu của admin

    Dùng câu lệnh:

    sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
    sau đó nhập mật khẩu mới. Nếu user admin không có, bạn có thể thử các user khác.

    Cấu hình nginx cho cả 3 ứng dụng.

    upstream php-handler {
        server unix:/var/run/php/php8.1-fpm.sock;
    }
    map $arg_v $asset_immutable {
        “” “”;
        default “immutable”;
    }
    server {
      listen xxxx0;
      listen [::]:xxxx0;  
      server_name domain;
      ssl on; 
        ssl_certificate     /home/orangepi/ssl/bundle.crt;
        ssl_certificate_key /home/orangepi/ssl/domain.key;
        server_tokens off;
        client_max_body_size 1G;
        client_body_timeout 300s;
        fastcgi_buffers 64 4K;
        gzip on;
        gzip_vary on;
        gzip_comp_level 4;
        gzip_min_length 256;
        gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
        gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
        client_body_buffer_size 512k;
        add_header Referrer-Policy “no-referrer” always;
        add_header X-Content-Type-Options “nosniff” always;
        add_header X-Download-Options “noopen” always;
        add_header X-Frame-Options “SAMEORIGIN” always;
        add_header X-Permitted-Cross-Domain-Policies “none” always;
        add_header X-Robots-Tag “noindex, nofollow” always;
        add_header X-XSS-Protection “1; mode=block” always;
        add_header Strict-Transport-Security “max-age=15552000; includeSubDomains” always;
        fastcgi_hide_header X-Powered-By;
        include mime.types;
        types {
           text/javascript js mjs;
    application/wasm wasm;
       }
    root /var/www/nextcloud;
      index index.php index.html /index.php$request_uri;
      charset utf-8;
      location / {
        try_files $uri $uri/ /index.php?$args;
      }
      location ~ .php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
      }
        location = / {
            if ( $http_user_agent ~ ^DavClnt ) {
                return 302 /remote.php/webdav/$is_args$args;
            }
        }
        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
     
        location ^~ /.well-known {
     
            location = /.well-known/carddav { return 301 /remote.php/dav/; }
            location = /.well-known/caldav  { return 301 /remote.php/dav/; }
     
            location /.well-known/acme-challenge    { try_files $uri $uri/ =404; }
            location /.well-known/pki-validation    { try_files $uri $uri/ =404; }
     
            return 301 /index.php$request_uri;
        }
     
        location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
            return 404;
        }
        location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
            return 404;
        }
        location ~ \.php(?:$|/) {
            # Required for legacy support
            rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
     
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            set $path_info $fastcgi_path_info;
     
            try_files $fastcgi_script_name =404;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $path_info;
    fastcgi_param HTTPS on;
            fastcgi_param modHeadersAvailable true;
            fastcgi_param front_controller_active true;
            fastcgi_pass php-handler;
            fastcgi_intercept_errors on;
            fastcgi_request_buffering off;
            fastcgi_max_temp_file_size 0;
        }
     
        location ~ ^\/(?:updater|ocs-provider)(?:$|\/) {
            try_files $uri/ =404;
            index index.php;
        }
     
        location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map|html|ttf|jpeg|bcmap|mp4|webm)$ {
            try_files $uri /index.php$request_uri;
            add_header Cache-Control “public, max-age=15778463, $asset_immutable”;
            add_header Referrer-Policy “no-referrer” always;
            add_header X-Content-Type-Options “nosniff” always;
            add_header X-Download-Options “noopen” always;
            add_header X-Frame-Options “SAMEORIGIN” always;
            add_header X-Permitted-Cross-Domain-Policies “none” always;
            add_header X-Robots-Tag “none” always;
            add_header X-XSS-Protection “1; mode=block” always;
    add_header Strict-Transport-Security “max-age=15552000; includeSubDomains” always;  
          access_log off;
    }
            
        location ~ \.woff2?$ {
            try_files $uri /index.php$request_uri;
            expires 7d;         # Cache-Control policy borrowed from `.htaccess`
            access_log off;     # Optional: Don’t log access to assets
        }
     
        # Rule borrowed from `.htaccess`
        location /remote {
            return 301 /remote.php$request_uri;
        }
     
    }
     
    #odoo server
    upstream odoo {
    server 127.0.0.1:8069;
    }
    upstream odoochat {
      server 127.0.0.1:8072;
    }
    map $http_upgrade $connection_upgrade {
      default upgrade;
      ”      close;
    }
    server {
    listen xxxx2;
    listen [::]:xxxx2;
        server_name domain;
        ssl on;
        ssl_certificate     /home/orangepi/ssl/bundle.crt;
        ssl_certificate_key /home/orangepi/ssl/domain.key;
     
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
        gzip on;
        gzip_min_length 1000;
    location /websocket {
        proxy_pass http://odoochat;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
     
        add_header Strict-Transport-Security “max-age=31536000; includeSubDomains”;
        
      }    
    location / {
    proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_pass http://odoo;
     
        add_header Strict-Transport-Security “max-age=31536000; includeSubDomains”;
        
      }
     
    }
    #erp next
    server {
              listen xxxx1;
            listen [::]:xxxx1;
        server_name domain;
        ssl on;
        ssl_certificate     /home/orangepi/ssl/bundle.crt;
        ssl_certificate_key /home/orangepi/ssl/domain.key;
            proxy_read_timeout 720s;
            proxy_connect_timeout 720s;
            proxy_send_timeout 720s;
            proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;        
      location / {
              proxy_pass http://localhost:8000;
     
        }
    }

    Khắc phục lỗi

    Khi gặp sự cố khi đăng nhập lần đầu, trước tiên bạn nên kiểm tra các tệp này:

    tail /var/www/nextcloud/data/nextcloud.log
    tail /var/log/nginx/access.log
    tail /var/log/nginx/error.log

    Nếu bạn chỉ thấy một số yêu cầu đúng trong nhật ký truy cập, nhưng không có đăng nhập nào xảy ra, bạn hãy kiểm tra quyền truy cập cho phiên php và thư mục wsdlcache. Hãy thử kiểm tra quyền và thực hiện thay đổi nếu cần:

    chown nginx:nginx /var/lib/php/session/
    chown root:nginx /var/lib/php/wsdlcache/
    chown root:nginx /var/lib/php/opcache/

    Một số tác vụ nền chỉ chạy một lần một ngày. Khi một giờ được xác định (múi giờ là UTC) cho cấu hình này. Giá trị 1 eg sẽ chỉ chạy các tác vụ nền này trong khoảng thời gian từ 01:00 sáng UTC đến 05:00 sáng UTC: ‘maintenance_window_start’ => 1,

    hoặc chạy câu lệnh sudo -u www-data php occ config:system:set maintenance_window_start –type=integer –value=1

    Sau đó: sudo systemctl restart nginx, sudo systemctl restart php8.2-fpm

    Cách hiệu quả với tôi là thay đổi thời gian chờ của curl tại thời điểm gọi nó bằng trình cài đặt phần mềm trong: [đường dẫn đến nextcloud]/lib/private/Installer.php. Bạn sẽ thấy một dòng có nội dung như sau:

    // Download the release
    $tempFile = $this->tempManager->getTemporaryFile(‘.tar.gz’);
    $timeout = $this->isCLI ? 0 : 120;
    $client = $this->clientService->newClient();
    Thay đổi giá trị 120 (giây) và đặt giá trị lớn hơn hoặc xóa điều kiện và luôn để ở mức 0 (không giới hạn, nhưng có lẽ không phải là ý tưởng hay nhất).

    • Máy chủ web của bạn không được thiết lập đúng cách để giải quyết: “/ocm-provider/”

    Vào /etc/nginx/conf.d/nextcloud.conf:
    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34]).php(?:$|/) {

    replace ocs-provider/ by oc[ms]-provider/

    và:

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
    try_files $uri/ =404;
    index index.php;

    Thay ocs-provider thành oc[ms]-provider

    Sau đó reload: nginx -t
    sudo systemctl reload nginx.service

    • upgrades Nextcloud by running:

    sudo -u www-data php /var/www/nextcloud/updater/updater.phar

    Một hệ thống như Nextcloud đôi khi yêu cầu các tác vụ phải được thực hiện thường xuyên mà không cần sự tương tác của người dùng hoặc cản trở hiệu suất của Nextcloud. lên lịch công việc định kỳ theo ba cách – sử dụng AJAX, Webcron hoặc cron. Tuy nhiên, phương pháp được khuyến nghị là sử dụng cron. Phương pháp này cho phép thực hiện các công việc theo lịch trình mà không gặp phải những hạn chế cố hữu mà máy chủ Web có thể có.

    Để chạy một cron job trên hệ thống *nix, cứ 5 phút một lần, với người dùng máy chủ Web mặc định (thường xuyên www-data hoặc wwwrun), bạn phải thiết lập cron job sau để gọi tập lệnh cron.php :

    sudo -u www-data crontab -e

    Và nối thêm dòng này:

    */5 * * * * php8.2 -f /var/www/nextcloud/cron.php
    Bạn có thể xác minh xem cron job đã được thêm và lên lịch chưa bằng cách thực thi:

    # crontab -u www-data -l
    Trả về:

    [snip]*/5 * * * * php -f /var/www/nextcloud/cron.php
    Ghi chú

    Bạn phải thay thế đường dẫn /var/www/nextcloud/cron.php bằng đường dẫn đến bản cài đặt Nextcloud hiện tại của bạn.

    • The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds.

    location / {
    allow x.x.x.x;
    allow 10.0.x.x/24;
    deny all;

    proxy_pass http://172.24.8.5:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header Strict-Transport-Security “max-age=15552000; includeSubDomains” always;

    }

    location /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
    }

    location /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
    }

    • Cấu hình nginx cho đúng.

    https://docs.nextcloud.com/server/stable/admin_manual/installation/nginx.html#nginx-config

    https://raw.githubusercontent.com/nextcloud/server/v19.0.0/.htaccess

    PHP không hỗ trợ SVG: cần cài thêm apt-get install libmagickcore-6.q16-6-extra

    Ver 28 có lỗi Máy chủ không có cấu hình thời gian bắt đầu thời gian bắt đầu bảo trì. Điều này có nghĩa là các công việc nền hàng ngày sử dụng nhiều tài nguyên cũng sẽ được thực thi trong thời gian sử dụng chính của bạn. Trong file config.php thêm dòng: ‘Maintenance_window_start’ => 17,

    Hoặc dùng câu lệnh: sudo -u www-data php /var/www/nextcloud/occ config:system:set Maintenance_window_start –value=”17″ –type=integer

    Sau đó reboot: systemctl reload nginx.service

    systemctl restart php8.1-fpm.service

    • Lỗi tải file quá lớn báo network err 499. Chỉnh tham số trong /etc/php/8.2/fpm/php.ini

    memory_limit = 16G

    max_execut_time = 600

    max_input_time = 600

    default_socket_timeout = 360

    post_max_size = 8G

    upload_max_filesize = 8G

    Trong /etc/php/7.4/fpm/pool.d/www.conf

    request_terminate_timeout = 600

    Trong /etc/nginx/sites-enables/nextcloud.conf (ở vị trí location ~ .php). Thêm fastcgi_read_timeout 360; fastcgi_send_timeout 360; fastcgi_connect_timeout 1200;

    • Trình duyệt đang đăng: 504 Gateway Time-out. Điều này là do quá trình cài đặt rất chậm trên một số thiết bị ARM nên fastcgi/proxy hết thời gian chờ. Các dòng mới nên được thêm vào trong location ~ \.php(?:$|/)phần:

    fastcgi_read_timeout 600;
    fastcgi_send_timeout 600;
    fastcgi_connect_timeout 600;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;

    Sau khi thực hiện thay đổi này, quá trình cài đặt đã diễn ra mà không gặp bất kỳ sự cố nào.

    Trường hợp máy Debian 12 thì làm theo https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/

    Trường hợp máy có apache2: netstat -a | grep tcp

    1. sudo service apache2 stop

    2. systemctl status apache2
    3. sudo apt-get purge apache2

    4. sudo apt-get update

    5. sudo apt-get install nginx

    6. sudo service nginx restart

    Đặt lại mật khẩu cho root: su passwd root
    Thiếu thư viện php: sudo apt-get install php-imagick kiểm tra có hay chưa php -m | grep imagick
    • Allow list for WOPI requests

    sudo -u www-data php ./occ app:enable richdocumentscode_arm64

    sudo -u www-data php ./occ config:app:get richdocumentscode_arm64 wopi_allowlist

    sudo -u www-data php ./occ config:app:set richdocumentscode_arm64 wopi_allowlist

    Nếu máy office nằm riêng: # adopt to your system e.g. add sudo, www user etc..

    occ config:app:set richdocuments wopi_url –value ${CODE_URL}

    occ richdocuments:activate-config

    CODE nó có nghĩa là “dịch vụ chạy trên máy chủ CODE” đơn giản http://office:9980 về mặt kỹ thuật, có thể chạy toàn bộ ngăn xếp mà không cần TLS nhưng bạn không bao giờ nên đưa hệ thống của mình lên internet mà không có TLS.

    • Xóa thông báo của nextcloud office. sử dụng 172.18.0.0/16 trong khai báo WOPI. Trích từ https://docs.cloudron.io/apps/collabora/

    Xem log: sudo tail -f /var/www/nextcloud/data/nextcloud.log | jq

    Xoa log: sudo -u www-data truncate /var/www/nextcloud/data/nextcloud.log –size 0

    occ files:cleanup

    Nextcloud không bao giờ xóa bất cứ thứ gì theo mặc định nếu nó không nghĩ rằng nó cần không gian. Nếu bạn muốn nó tự động xóa các phiên bản tệp cũ và các mục rác cũ, bạn phải thêm lệnh vào config.php

    ‘trashbin_retention_obligation’ => ’30, 60′,
    ‘versions_retention_obligation’ => ’30, 180′,

    sudo -u apache php /usr/share/nextcloud/occ files:cleanup

    Upload file bị báo lỗi

    Gán quyền truy cập: chown -R www-data:www-data /var/www/nextcloud/data/tmp

    Thêm nội dung: /var/www/nextcloud/config/config.php

    ‘tempdirectory’ => ‘/var/www/nextcloud/data/tmp’,

    Might check value of sys_temp_dir in /etc/php/7.3/fpm/php.ini

    /etc/php/8.2/cli/php.ini and /etc/php/8.2/apache2/php.ini

    changing the following settings to higher values:
    upload_max_filesize = 4G
    max_execution_time = 3600
    max_input_time = 3600

    upload_tmp_dir = “/var/www/nextcloud/data/tmp”
    sys_temp_dir = “/var/www/nextcloud/data/tmp”

    Cài ứng dụng trên máy khách

    Kết nối với Nextcloud của bạn từ Windows, macOS hoặc Linux, ứng dụng Nextcloud Desktop Sync cho phép bạn:

    Chỉ định một hoặc nhiều thư mục trên máy tính mà bạn muốn đồng bộ hóa với máy chủ Nextcloud.
    Luôn đồng bộ hóa các tập tin mới nhất, bất kể chúng được lưu trữ ở đâu.
    Các tập tin của bạn luôn được tự động đồng bộ hóa giữa máy chủ Nextcloud và PC cục bộ.

     Phiên bản 3.14 của ứng dụng đồng bộ hóa máy tính để bàn Nextcloud có nhiều tính năng và cải tiến mới.

    -Hộp thoại chính sẽ là cửa sổ thông thường nếu biểu tượng khay không có sẵn trên hệ thống.
    -Tệp ảo sẽ là tùy chọn. Điều đó cho phép máy khách chạy trên phiên bản Windows cũ hơn.
    -Cải tiến cho các tập tin ảo trên Windows
    -Cải thiện hiệu suất lưu lượng mạng
    -Cải tiến cho công cụ đồng bộ

    Install

    https://github.com/nextcloud-releases/desktop/releases

    Yêu cầu hệ thống
    Windows 10+ (chỉ 64-bit)
    macOS 11.4+ (chỉ 64-bit)
    Linux (ubuntu 22.04 hoặc openSUSE 15.5 hoặc …) (chỉ 64-bit)

    Trình cài đặt MSI cung cấp một số tính năng có thể được cài đặt hoặc gỡ bỏ riêng lẻ, bạn cũng có thể điều khiển chúng thông qua dòng lệnh, nếu bạn đang tự động hóa quá trình cài đặt, hãy chạy lệnh sau: https://docs.nextcloud.com/desktop/latest/installing.html

    • Bạn có thể điều chỉnh thư mục cài đặt bằng cách chỉ định thuộc tính INSTALLDIR như sau:

    msiexec /passive /i Nextcloud-x.y.z-x64.msi INSTALLDIR=”C:\Program Files\Non Standard Nextcloud Client Folder”

    • Để tắt cập nhật tự động, bạn có thể truyền thuộc tính SKIPAUTOUPDATE .:

    msiexec /passive /i Nextcloud-x.y.z-x64.msi SKIPAUTOUPDATE=”1″

    Ứng dụng OCR

    Đầu tiên, hãy tải xuống và cài đặt ứng dụng Nextcloud Workflow OCR từ Nexcloud-appstore chính thức hoặc tải xuống tệp tarball phù hợp từ trang phát hành .

    cd /var/www/<NEXTCLOUD_INSTALL>/apps
    wget https://github.com/R0Wi/workflow_ocr/releases/download/<VERSION>/workflow_ocr.tar.gz
    tar -xzvf workflow_ocr.tar.gz
    rm workflow_ocr.tar.gz
    Công việc nền tảng Nextcloud
    Vì quá trình xử lý thực tế của các tệp được thực hiện không đồng bộ thông qua công cụ công việc nền của Nextcloud, hãy đảm bảo bạn đã thiết lập đúng chức năng cron như mô tả tại đây . Nếu có thể, hãy sử dụng crontab phương pháp này để có độ tin cậy cao hơn.

    Trong backend OCRmyPDF được sử dụng để xử lý các tệp PDF. Đảm bảo bạn đã cài đặt công cụ dòng lệnh này. Đảm bảo bạn có phiên bản phù hợp (xem bên dưới, Thư viện đã sử dụng).

    apt-get install ocrmypdf
    CLI ocrmypdfcũng có thể chuyển đổi các tệp hình ảnh đơn ( jpg/ png) sang PDF trước khi xử lý qua OCR. Chế độ này cũng được ứng dụng này hỗ trợ. Bạn có thể đọc thêm về nó trong tài liệu chính thức .

    Ngoài ra, nếu bạn muốn sử dụng cài đặt ngôn ngữ cụ thể , vui lòng cài đặt các gói tương ứng tesseract .

    # English
    apt-get install tesseract-ocr-eng

    # German
    apt-get install tesseract-ocr-deu

    # Chinese – Simplified
    apt-get install tesseract-ocr-chi-sim

    Cách sử dụng: https://github.com/R0Wi-DEV/workflow_ocr/blob/master/README.md

    Cập nhật phiên bản Nextcloud

    Bạn có thể sử dụng trình cập nhật dòng lệnh: sudo -u www-data php updater/updater.phar

    Điều này sẽ tìm kiếm, tải xuống và trích xuất mã của phiên bản mới. Cuối cùng, nó sẽ hỏi bạn có muốn thực hiện lệnh occ upgrade để chạy bản cập nhật hay không. Nó phải tôn trọng đường dẫn nâng cấp được hỗ trợ. Điều đó đúng khi thiết lập đơn giản. Nếu có thứ gì đó trong nền cho gói, đường dẫn nâng cấp có thể khác và bạn phải thông qua trình quản lý gói của gói bạn đang sử dụng.

    Steps that will be executed:[ ] Check for expected files[ ] Check for write permissions[ ] Create backup[ ] Downloading[ ] Verify integrity[ ] Extracting[ ] Enable maintenance mode[ ] Replace entry points[ ] Delete old files[ ] Move new files in place[ ] Done

    Cơ sở dữ liệu bị thiếu một số chỉ mục. Do thực tế là việc thêm các chỉ mục vào các bảng lớn có thể mất một thời gian nên chúng không được thêm tự động. Bằng cách chạy “occ db:add-missing-indices”, các chỉ mục bị thiếu đó có thể được thêm thủ công trong khi phiên bản vẫn tiếp tục chạy. Sau khi các chỉ mục được thêm vào, các truy vấn đến các bảng đó thường nhanh hơn nhiều. Thiếu chỉ mục tùy chọn “textstep_session” trong bảng “text_steps”. Thiếu chỉ mục tùy chọn “fs_parent” trong bảng “filecache”. Thiếu chỉ mục tùy chọn “mounts_user_root_path_index” trong bảng “mounts”. Thiếu chỉ mục tùy chọn “systag_by_tagid” trong bảng “systemtag_object_mapping”.

    Chạy sudo -u www-data php /path/to/nextcloud/occ db:add-missing-indices. Hầu hết các cảnh báo về Bảo mật & thiết lập đã được giải quyết.

     

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *