Nextcloud là phần mềm mã nguồn mở miễn phí cho phép bạn tạo các dịch vụ lưu trữ tệp như Dropbox, Google Drive hoặc Mega.nz. Phần mềm này được tạo ra bởi nhà phát triển owncloud ban đầu Frank Karlitschek. Vào năm 2016, ông đã phân nhánh dự án Owncloud và tạo ra một dự án mới có tên là "Nextcloud".
Vào thời điểm này, dự án Nextcloud đã phát triển nhanh chóng và trở thành nhiều hơn là phần mềm lưu trữ tệp. Với sự hỗ trợ của rất nhiều plugin, Nextcloud đã trở thành một phần mềm cộng tác như vậy. Bạn có thể cài đặt các plugin để quản lý dự án, hội nghị truyền hình, chỉnh sửa cộng tác, ghi chú, ứng dụng email, v.v.
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Nextcloud trên AlmaLinux 9. Bạn sẽ cài đặt Nextcloud trên máy chủ AlmaLinux mới/chung. Hướng dẫn này sẽ bao gồm một số cài đặt phụ thuộc gói như máy chủ web httpd, máy chủ cơ sở dữ liệu MariaDB và PHP. Đến cuối hướng dẫn này, bạn cũng sẽ bảo mật Nextcloud bằng chứng chỉ firewalld, SELinux và SSL/TLS từ Letsencrypt.
Dưới đây là một số gói yêu cầu để cài đặt Nextcloud:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22559%22%3E%3C/svg%3E
Chạy lệnh sau để cài đặt máy chủ web httpd.
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi Máy chủ web httpd đã được cài đặt, hãy khởi động và kích hoạt httpd bằng lệnh sau.
Bây giờ hãy xác minh máy chủ web httpd để đảm bảo rằng dịch vụ đang chạy.
Bạn sẽ nhận được thông báo như sau - Máy chủ web httpd đã được kích hoạt và sẽ tự động khởi động khi hệ thống khởi động. Và trạng thái của máy chủ web httpd đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22235%22%3E%3C/svg%3E
Tiếp theo, bạn phải mở HTTP và HTTPS trên tường lửa bằng cách chạy lệnh sau.
Đầu ra 'thành công' xác nhận rằng hoạt động là thành công.
Bây giờ hãy xác minh danh sách các dịch vụ trên tường lửa bằng lệnh bên dưới.
Bạn sẽ thấy cả dịch vụ HTTP và HTTPS đều được thêm vào firewalld.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22163%22%3E%3C/svg%3E
Sau khi firewalld được cấu hình, bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ (tức là: http://192.168.5.25/). Bạn sẽ thấy trang index.html mặc định của máy chủ web httpd.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22546%22%3E%3C/svg%3E
Trước tiên, hãy chạy lệnh bên dưới để thêm kho lưu trữ EPEL vào hệ thống của bạn. Để cài đặt các gói PHP từ kho lưu trữ REMI, trước tiên bạn phải thêm kho lưu trữ EPEL.
Khi được nhắc, hãy nhập y để xác nhận, sau đó nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để cài đặt kho lưu trữ REMI cho hệ thống RHEL 9.
Nhập y khi được nhắc, sau đó nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Sau khi thêm kho lưu trữ REMI, hãy chạy lệnh sau để thiết lập lại cấu hình kho lưu trữ PHP hiện tại. Sau đó, kích hoạt mô-đun kho lưu trữ cho 'php:remi-8.1'.
Đầu ra mong đợi sẽ trông như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh dnf sau để cài đặt các gói PHP 8.1 thông qua kho lưu trữ REMI. Lệnh sau cũng sẽ cài đặt một số tiện ích mở rộng PHP cần thiết cho Nextcloud, bao gồm PHP-FPM.
Nhập y khi được nhắc, sau đó nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Sau khi PHP được cài đặt, tiếp theo bạn sẽ thực hiện một số thay đổi đối với Tệp cấu hình 'php.ini' và thiết lập tiện ích mở rộng PHP OPCache cho Nextcloud.
Mở tệp '/etc/php.ini' bằng lệnh trình chỉnh sửa nano sau.
Thay đổi một số tùy chọn mặc định như các dòng sau. Ngoài ra, hãy điều chỉnh kích thước của 'memory_limit' bằng bộ nhớ khả dụng trên máy chủ của bạn và tùy chọn 'date.timezone' bằng vị trí máy chủ của bạn.
Lưu tệp, sau đó thoát khỏi trình chỉnh sửa khi hoàn tất.
Bây giờ hãy mở tệp cấu hình PHP OPCache '/etc/php.d/10-opcache.ini' bằng nano biên tập viên.
Thêm các dòng sau vào tệp để bật và điều chỉnh PHP OPCache cho Nextcloud.
Lưu tệp, sau đó đóng trình biên tập khi hoàn tất.
Tiếp theo, chạy lệnh sau để khởi động lại máy chủ web httpd và dịch vụ PHP-FPM để áp dụng thay đổi.
Bây giờ bạn đã cấu hình PHP, đã đến lúc xác minh cài đặt PHP của bạn bằng cách tạo tệp 'test.php' sẽ cung cấp cho bạn thông tin chi tiết về cài đặt PHP của bạn.
Chạy lệnh sau để tạo tệp mới '/var/www/test.php'.
Mở trình duyệt web của bạn và truy cập địa chỉ IP máy chủ của bạn theo sau là đường dẫn tệp 'test.php' (ví dụ: http://192.168.5.25/test.php).
Trang sau sẽ hiển thị nếu cài đặt thành công:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22659%22%3E%3C/svg%3E
Đầu tiên, hãy thêm kho lưu trữ MariaDB chính thức bằng cách tạo tệp cấu hình kho lưu trữ mới 'MariaDB.repo' trong thư mục '/etc/yum.repos.d/' bằng trình chỉnh sửa nano sau.
Thêm các dòng sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Xác minh danh sách các kho lưu trữ khả dụng bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22194%22%3E%3C/svg%3E
Sau khi kho lưu trữ MariaDB được thêm vào, hãy cài đặt các gói máy chủ và máy khách MariaDB bằng lệnh dnf sau.
Khi được nhắc, hãy nhập y để xác nhận, sau đó nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22306%22%3E%3C/svg%3E
Sau khi MariaDB được cài đặt, hãy chạy lệnh sau để khởi động và kích hoạt máy chủ MariaDB.
Sau đó, hãy chạy lệnh bên dưới để đảm bảo rằng dịch vụ MariaDB đang chạy và đã bật.
Đầu ra sau đây sẽ được hiển thị khi dịch vụ MariaDB đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22186%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể xác minh phiên bản MariaDB bằng cách chạy lệnh sau lệnh.
Nếu bạn làm theo hướng dẫn này, bạn sẽ thấy máy chủ MariaDB 10.6 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22101%22%3E%3C/svg%3E
Bạn sẽ sử dụng tiện ích 'mariadb-secure-installation' để thiết lập mật khẩu gốc MariaDB, vô hiệu hóa đăng nhập từ xa cho người dùng gốc và xóa người dùng ẩn danh mặc định và kiểm tra cơ sở dữ liệu khỏi triển khai của bạn.
Chạy lệnh sau để bảo mật triển khai MariaDB của bạn.
Bạn sẽ được yêu cầu cung cấp các cấu hình MariaDB sau:
Để bắt đầu, bạn sẽ bắt đầu bằng cách đăng nhập vào shell MariaDB thông qua người dùng root bằng lệnh bên dưới. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu gốc MariaDB của bạn.
Tiếp theo, tạo cơ sở dữ liệu mới 'nextcloud_db' và người dùng 'nextuser@localhost' bằng cách chạy các truy vấn sau. Hãy chắc chắn thay đổi mật khẩu trong truy vấn sau bằng mật khẩu của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
Sau khi cơ sở dữ liệu và người dùng được tạo, hãy chạy truy vấn sau để đảm bảo rằng cơ sở dữ liệu 'nextcloud_db' là đã tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22356%22%20height=%22277%22%3E%3C/svg%3E
Sau đó, chạy truy vấn sau để đảm bảo rằng người dùng MariaDB 'nextuser@localhost' có thể truy cập cơ sở dữ liệu 'nextcloud_db'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E
Đầu tiên, hãy chạy lệnh dnf sau để cài đặt unzip, wget và các tiện ích khắc phục sự cố SELinux.
Bây giờ, hãy di chuyển đến thư mục '/var/www/' và tải xuống phiên bản mới nhất của mã nguồn Nextcloud thông qua lệnh wget bên dưới. Sau khi quá trình tải xuống hoàn tất, bạn sẽ thấy tệp 'latest.zip'.
Chạy lệnh sau để giải nén tệp 'latest.zip'. Mã nguồn Nextcloud sẽ có trong thư mục '/var/www/nextcloud'.
Bây giờ, hãy chạy lệnh sau để thay đổi quyền sở hữu thư mục '/var/www/nextcloud' thành người dùng 'apache2'. Điều này cho phép máy chủ web httpd truy cập mã nguồn Nextcloud.
Bây giờ, hãy bắt đầu bằng cách chạy lệnh sau để thiết lập gắn nhãn cho mã nguồn Nextcloud và thư mục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22136%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để cho phép máy chủ web httpd kết nối với mạng (điều này cho phép chia sẻ Máy chủ với Máy chủ), cơ sở dữ liệu và Memcache.
Với điều này trong đầu, bây giờ bạn đã tải xuống mã nguồn Nextcloud, cho phép máy chủ web httpd truy cập mã nguồn Nextcloud và cấu hình chính sách SELinux cho Nextcloud. Tiếp theo, bạn sẽ thiết lập máy chủ ảo httpd cho Nextcloud.
Trong quá trình cài đặt, tôi gặp một số lỗi về PHP-FPM không thể kết nối với socket MySQL/MariaDB, mà SELinux chặn. Bên dưới là chính sách tùy chỉnh được tạo từ tệp 'audit.log'.
Tạo tệp 'my-phpfpm.te' bằng trình soạn thảo bạn thích và thêm các dòng sau vào tệp.
Bây giờ, hãy chạy lệnh sau để chuyển đổi tệp 'my-phpfpm.te' thành mô-đun chính sách 'my-phpfpm.mod'.
Sau khi tệp mô-đun chính sách 'my-phpfpm.mod' được tạo, hãy chạy lệnh bên dưới để biên dịch mô-đun chính sách SELinux thành 'my-phpfpm.pp'
Cuối cùng, bạn có thể áp dụng đã biên dịch mô-đun chính sách SELinux 'my-phpfpm.pp' bằng cách chạy lệnh bên dưới.
Chạy lệnh nano sau để tạo cấu hình máy chủ ảo mới '/etc/httpd/conf.d/nextcloud.conf'.
Thêm các dòng sau vào tệp và đảm bảo thay đổi tên miền trong máy chủ ảo sau cấu hình.
Lưu tệp, sau đó thoát khỏi trình chỉnh sửa.
Tiếp theo, chạy lệnh sau để xác minh máy chủ web httpd và đảm bảo rằng bạn có cấu hình phù hợp. Như bạn có thể thấy 'Cú pháp OK' từ đầu ra, xác nhận rằng bạn đã cấu hình httpd đúng và phù hợp.
Bây giờ, hãy chạy lệnh bên dưới để khởi động lại máy chủ web httpd và áp dụng cấu hình máy chủ ảo mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22706%22%20height=%22186%22%3E%3C/svg%3E
Cuối cùng, hãy quay lại trình duyệt web của bạn và truy cập tên miền cài đặt Nextcloud của bạn (ví dụ: http://nexcloud.howtoforge.local/). Trang sau đây xác nhận rằng bạn đã cấu hình thành công máy chủ ảo httpd cho Nextcloud.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22646%22%3E%3C/svg%3E
Bây giờ bạn đã đến được nơi Nextcloud đang hoạt động với LAMP Stack trên AlmaLinux. Để tiếp tục quá trình, bạn sẽ bảo mật Nextcloud bằng chứng chỉ SSL/TLS thông qua Letsencrypt.
Để bắt đầu, hãy chạy lệnh sau để cài đặt Certbot và plugin của nó cho máy chủ web Apache/httpd và gói mod_ssl.
Nhập y khi được nhắc, sau đó nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22417%22%3E%3C/svg%3E
Sau khi cài đặt mod_ssl, bạn phải tạo chứng chỉ SSL cho localhost, nếu không, httpd sẽ báo lỗi.
Nhập lệnh sau để tạo chứng chỉ SSL/TLS tự ký cho localhost.
Cuối cùng, chạy lệnh sau để tạo SSL/TLS mới chứng chỉ từ Letsencrypt. Đảm bảo thay đổi tên miền và địa chỉ email trong lệnh sau.
Sau khi quá trình Certbot hoàn tất, cấu hình máy chủ ảo Nextcloud '/etc/httpd/conf.d/nextcloud.conf' sẽ tự động được thay đổi với SSL/TLS được bật và tự động chuyển hướng từ HTTP sang HTTPS cũng được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22565%22%3E%3C/svg%3E
Nhập tên người dùng và mật khẩu quản trị mới cho Nextcloud của bạn. Sau đó, nhấp vào cơ sở dữ liệu MySQL/MariaDB và nhập thông tin chi tiết về tên cơ sở dữ liệu MariaDB, người dùng và mật khẩu. Nhấp vào Cài đặt để thực hiện cài đặt.
Sau khi cài đặt Nextcloud thành công, bạn sẽ được chuyển hướng đến Bảng điều khiển Nextcloud như ảnh chụp màn hình sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào menu quản lý tệp ở góc trên bên trái và bạn sẽ thấy trình quản lý tệp Nextcloud, nơi bạn có thể tải lên, tạo hoặc xóa tệp trên nextcloud.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Để đưa Nextcloud lên tầm cao mới, bạn cũng có thể thiết lập Bộ nhớ đệm thông qua memcached, bảo mật Nextcloud khỏi các cuộc tấn công bằng cách dùng vũ lực thông qua fail2ban và thiết lập khóa tệp thông qua Redis.
Vào thời điểm này, dự án Nextcloud đã phát triển nhanh chóng và trở thành nhiều hơn là phần mềm lưu trữ tệp. Với sự hỗ trợ của rất nhiều plugin, Nextcloud đã trở thành một phần mềm cộng tác như vậy. Bạn có thể cài đặt các plugin để quản lý dự án, hội nghị truyền hình, chỉnh sửa cộng tác, ghi chú, ứng dụng email, v.v.
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Nextcloud trên AlmaLinux 9. Bạn sẽ cài đặt Nextcloud trên máy chủ AlmaLinux mới/chung. Hướng dẫn này sẽ bao gồm một số cài đặt phụ thuộc gói như máy chủ web httpd, máy chủ cơ sở dữ liệu MariaDB và PHP. Đến cuối hướng dẫn này, bạn cũng sẽ bảo mật Nextcloud bằng chứng chỉ firewalld, SELinux và SSL/TLS từ Letsencrypt.
Dưới đây là một số gói yêu cầu để cài đặt Nextcloud:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22559%22%3E%3C/svg%3E
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, bạn cần đáp ứng các yêu cầu sau:- Máy chủ Linux chạy AlmaLinux 9 - Ví dụ này sử dụng máy chủ có tên máy chủ 'alma-nextcloud' và địa chỉ IP '192.168.5.25'.
- Người dùng quản trị hoặc người dùng không phải root có quyền sudo/root.
- Tường lửa đang chạy và được bật.
- SELinux chạy ở chế độ thực thi.
- Tên miền trỏ đến địa chỉ IP của máy chủ - Ví dụ này sử dụng tên miền 'nextcloud.howtoforge.local'.
Cài đặt máy chủ web httpd
Để khởi động và chạy Nextcloud, bạn có thể sử dụng Apache/httpd hoặc Nginx. Trong phần này, bạn sẽ cài đặt máy chủ web httpd sẽ được sử dụng để chạy Nextcloud. Trên AlmaLinux, gói httpd có sẵn theo mặc định, bạn có thể cài đặt nó thông qua trình quản lý gói DNF.Chạy lệnh sau để cài đặt máy chủ web httpd.
Mã:
sudo dnf install httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi Máy chủ web httpd đã được cài đặt, hãy khởi động và kích hoạt httpd bằng lệnh sau.
Mã:
sudo systemctl start httpd
sudo systemctl enable httpd
Mã:
sudo systemctl status httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22235%22%3E%3C/svg%3E
Tiếp theo, bạn phải mở HTTP và HTTPS trên tường lửa bằng cách chạy lệnh sau.
Mã:
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
Bây giờ hãy xác minh danh sách các dịch vụ trên tường lửa bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --list-services
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22163%22%3E%3C/svg%3E
Sau khi firewalld được cấu hình, bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ (tức là: http://192.168.5.25/). Bạn sẽ thấy trang index.html mặc định của máy chủ web httpd.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22546%22%3E%3C/svg%3E
Cài đặt và cấu hình PHP 8.1
Bây giờ bạn đã cài đặt máy chủ web httpd và cấu hình firewalld, đã đến lúc cài đặt các gói PHP. Phần này sẽ trình bày cách cài đặt PHP 8.1 trên AlmaLinux 9 thông qua kho lưu trữ REMI.Trước tiên, hãy chạy lệnh bên dưới để thêm kho lưu trữ EPEL vào hệ thống của bạn. Để cài đặt các gói PHP từ kho lưu trữ REMI, trước tiên bạn phải thêm kho lưu trữ EPEL.
Mã:
sudo dnf install epel-release
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để cài đặt kho lưu trữ REMI cho hệ thống RHEL 9.
Mã:
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Sau khi thêm kho lưu trữ REMI, hãy chạy lệnh sau để thiết lập lại cấu hình kho lưu trữ PHP hiện tại. Sau đó, kích hoạt mô-đun kho lưu trữ cho 'php:remi-8.1'.
Mã:
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh dnf sau để cài đặt các gói PHP 8.1 thông qua kho lưu trữ REMI. Lệnh sau cũng sẽ cài đặt một số tiện ích mở rộng PHP cần thiết cho Nextcloud, bao gồm PHP-FPM.
Mã:
sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Sau khi PHP được cài đặt, tiếp theo bạn sẽ thực hiện một số thay đổi đối với Tệp cấu hình 'php.ini' và thiết lập tiện ích mở rộng PHP OPCache cho Nextcloud.
Mở tệp '/etc/php.ini' bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/php.ini
Mã:
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam
Bây giờ hãy mở tệp cấu hình PHP OPCache '/etc/php.d/10-opcache.ini' bằng nano biên tập viên.
Mã:
sudo nano /etc/php.d/10-opcache.ini
Mã:
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
Tiếp theo, chạy lệnh sau để khởi động lại máy chủ web httpd và dịch vụ PHP-FPM để áp dụng thay đổi.
Mã:
sudo systemctl restart httpd
sudo systemctl restart php-fpm
Chạy lệnh sau để tạo tệp mới '/var/www/test.php'.
Mã:
echo "" > /var/www/test.php
Trang sau sẽ hiển thị nếu cài đặt thành công:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22659%22%3E%3C/svg%3E
Cài đặt MariaDB 10.6
Theo mặc định, Nextcloud hỗ trợ nhiều RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) như MySQL/MariaDB, PostgreSQL, Oracle (phiên bản Enterprise) và SQLite. Trong phần này, bạn sẽ cài đặt máy chủ MariaDB 10.6 từ kho lưu trữ MariaDB chính thức.Đầu tiên, hãy thêm kho lưu trữ MariaDB chính thức bằng cách tạo tệp cấu hình kho lưu trữ mới 'MariaDB.repo' trong thư mục '/etc/yum.repos.d/' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/yum.repos.d/MariaDB.repo
Mã:
# MariaDB 10.6 RedHatEnterpriseLinux repository list
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
baseurl = https://mirror.23m.com/mariadb/yum/10.6/rhel/$releasever/$basearch
# gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey=https://mirror.23m.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Xác minh danh sách các kho lưu trữ khả dụng bằng lệnh bên dưới.
Mã:
sudo dnf repolist
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22194%22%3E%3C/svg%3E
Sau khi kho lưu trữ MariaDB được thêm vào, hãy cài đặt các gói máy chủ và máy khách MariaDB bằng lệnh dnf sau.
Mã:
sudo dnf install MariaDB-server MariaDB-client
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22306%22%3E%3C/svg%3E
Sau khi MariaDB được cài đặt, hãy chạy lệnh sau để khởi động và kích hoạt máy chủ MariaDB.
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Mã:
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22186%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể xác minh phiên bản MariaDB bằng cách chạy lệnh sau lệnh.
Mã:
sudo mariadb --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22101%22%3E%3C/svg%3E
Bảo mật máy chủ MariaDB
Bây giờ bạn đã cài đặt MariaDB máy chủ, đã đến lúc bảo mật triển khai MariaDB. Phần này sẽ đề cập đến cách sử dụng cơ bản tiện ích 'mariadb-secure-installation' để bảo mật triển khai MariaDB.Bạn sẽ sử dụng tiện ích 'mariadb-secure-installation' để thiết lập mật khẩu gốc MariaDB, vô hiệu hóa đăng nhập từ xa cho người dùng gốc và xóa người dùng ẩn danh mặc định và kiểm tra cơ sở dữ liệu khỏi triển khai của bạn.
Chạy lệnh sau để bảo mật triển khai MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
- Khi được nhắc nhập mật khẩu, hãy nhấn ENTER để tiếp tục. Cài đặt MariaDB mặc định không có mật khẩu cho người dùng root.
- Khi được yêu cầu chuyển phương thức xác thực sang 'unix_socket', hãy nhấn 'n' để chọn 'No'.
- Bây giờ hãy tạo một mật khẩu root MariaDB mới khi được nhắc. Nhập 'Y', sau đó nhập mật khẩu mới và lặp lại.
- Khi được yêu cầu tắt đăng nhập từ xa vào người dùng root MariaDB, hãy nhập 'Y'.
- Bây giờ hãy xóa người dùng ẩn danh mặc định khỏi máy chủ MariaDB của bạn. Nhập 'Y' cho 'Yes'.
- Nhập 'Y' một lần nữa để xóa cơ sở dữ liệu mặc định 'test' khỏi triển khai của bạn.
- Cuối cùng, nhập 'Y' một lần nữa để tải lại các đặc quyền bảng và áp dụng các thay đổi.
Tạo cơ sở dữ liệu MariaDB và người dùng cho Nextcloud
Bây giờ bạn đã bảo mật triển khai MariaDB, hãy tạo cơ sở dữ liệu MariaDB và người dùng mới mà Nextcloud sẽ sử dụng.Để bắt đầu, bạn sẽ bắt đầu bằng cách đăng nhập vào shell MariaDB thông qua người dùng root bằng lệnh bên dưới. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu gốc MariaDB của bạn.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE netxcloud_db;
CREATE USER nextuser@localhost IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON netxcloud_db.* TO nextuser@localhost;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
Sau khi cơ sở dữ liệu và người dùng được tạo, hãy chạy truy vấn sau để đảm bảo rằng cơ sở dữ liệu 'nextcloud_db' là đã tạo.
Mã:
SHOW DATABASES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22356%22%20height=%22277%22%3E%3C/svg%3E
Sau đó, chạy truy vấn sau để đảm bảo rằng người dùng MariaDB 'nextuser@localhost' có thể truy cập cơ sở dữ liệu 'nextcloud_db'.
Mã:
SHOW GRANTS FOR nextuser@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E
Tải xuống mã nguồn Nextcloud
Nếu bạn đã làm theo hướng dẫn cho đến giờ, thì bây giờ bạn đã cài đặt LAMP Stack (Linux, Apache/httpd, MariaDB và PHP) trên máy chủ AlmaLinux của mình. Tiếp theo, bạn sẽ tải xuống mã nguồn Nextcloud, sau đó thiết lập nhãn SELinux phù hợp cho mã nguồn Nextcloud.Đầu tiên, hãy chạy lệnh dnf sau để cài đặt unzip, wget và các tiện ích khắc phục sự cố SELinux.
Mã:
sudo dnf install unzip wget setroubleshoot-server setools-console -y
Mã:
cd /var/www/
wget -q https://download.nextcloud.com/server/releases/latest.zip
Mã:
sudo unzip latest.zip
Mã:
sudo chown -R apache:apache /var/www/nextcloud
Cấu hình SELinux
Sau khi tải xuống mã nguồn Nextcloud, bước tiếp theo là thiết lập chính sách SELinux và gắn nhãn cho Nextcloud.Bây giờ, hãy bắt đầu bằng cách chạy lệnh sau để thiết lập gắn nhãn cho mã nguồn Nextcloud và thư mục.
Mã:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/apps(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/.htaccess'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/.user.ini'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
sudo restorecon -Rv '/var/www/nextcloud/'
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22136%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để cho phép máy chủ web httpd kết nối với mạng (điều này cho phép chia sẻ Máy chủ với Máy chủ), cơ sở dữ liệu và Memcache.
Mã:
sudo setsebool -P httpd_can_network_connect_db on
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_can_network_memcache on
sudo setsebool -P mysql_connect_http on
Trong quá trình cài đặt, tôi gặp một số lỗi về PHP-FPM không thể kết nối với socket MySQL/MariaDB, mà SELinux chặn. Bên dưới là chính sách tùy chỉnh được tạo từ tệp 'audit.log'.
Tạo tệp 'my-phpfpm.te' bằng trình soạn thảo bạn thích và thêm các dòng sau vào tệp.
Mã:
module my-phpfpm 1.0;
require {
type unconfined_service_t;
type httpd_sys_content_t;
type httpd_t;
class dir write;
class unix_stream_socket connectto;
}
#============= httpd_t ==============
#!!!! This avc is allowed in the current policy
allow httpd_t httpd_sys_content_t:dir write;
allow httpd_t unconfined_service_t:unix_stream_socket connectto;
Mã:
sudo checkmodule -M -m -o my-phpfpm.mod my-phpfpm.te
Mã:
sudo semodule_package -o my-phpfpm.pp -m my-phpfpm.mod
Mã:
sudo semodule -i my-phpfpm.pp
Cấu hình httpd Virtual Host cho Nextcloud
Trong phần sau, bạn sẽ tạo một httpd virtual host mới cho Nextcloud. Vì vậy, trước khi đi xa hơn, hãy đảm bảo rằng bạn có một tên miền được trỏ đến địa chỉ IP của máy chủ.Chạy lệnh nano sau để tạo cấu hình máy chủ ảo mới '/etc/httpd/conf.d/nextcloud.conf'.
Mã:
sudo nano /etc/httpd/conf.d/nextcloud.conf
Mã:
DocumentRoot /var/www/nextcloud/
ServerName nexcloud.howtoforge.local
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
Dav off
Tiếp theo, chạy lệnh sau để xác minh máy chủ web httpd và đảm bảo rằng bạn có cấu hình phù hợp. Như bạn có thể thấy 'Cú pháp OK' từ đầu ra, xác nhận rằng bạn đã cấu hình httpd đúng và phù hợp.
Mã:
sudo apachectl configtest
Mã:
sudo systemctl restart httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22706%22%20height=%22186%22%3E%3C/svg%3E
Cuối cùng, hãy quay lại trình duyệt web của bạn và truy cập tên miền cài đặt Nextcloud của bạn (ví dụ: http://nexcloud.howtoforge.local/). Trang sau đây xác nhận rằng bạn đã cấu hình thành công máy chủ ảo httpd cho Nextcloud.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22646%22%3E%3C/svg%3E
Bây giờ bạn đã đến được nơi Nextcloud đang hoạt động với LAMP Stack trên AlmaLinux. Để tiếp tục quá trình, bạn sẽ bảo mật Nextcloud bằng chứng chỉ SSL/TLS thông qua Letsencrypt.
Bảo mật Nextcloud bằng SSL/TLS Letsencrypt
Phần này đề cập đến cách bảo mật Nextcloud bằng SSL/TLS từ Letsencrypt. Bạn sẽ cài đặt công cụ Certbot, thiết lập và kích hoạt httpd mod_ssl, sau đó bạn sẽ tạo chứng chỉ SSL/TLS từ Letsencrypt thông qua Certbot.Để bắt đầu, hãy chạy lệnh sau để cài đặt Certbot và plugin của nó cho máy chủ web Apache/httpd và gói mod_ssl.
Mã:
sudo dnf install certbot python3-certbot-apache mod_ssl
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22417%22%3E%3C/svg%3E
Sau khi cài đặt mod_ssl, bạn phải tạo chứng chỉ SSL cho localhost, nếu không, httpd sẽ báo lỗi.
Nhập lệnh sau để tạo chứng chỉ SSL/TLS tự ký cho localhost.
Mã:
openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
Mã:
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d nextcloud.howtoforge.local
Cài đặt Nextcloud qua Web Installer
Mở trình duyệt web của bạn và truy cập tên miền cài đặt Nextcloud của bạn (ví dụ: https://nexcloud.howtoforge.local/). Khi cài đặt thành công, bạn sẽ thấy trang cài đặt Nextcloud như ảnh chụp màn hình bên dưới:data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22565%22%3E%3C/svg%3E
Nhập tên người dùng và mật khẩu quản trị mới cho Nextcloud của bạn. Sau đó, nhấp vào cơ sở dữ liệu MySQL/MariaDB và nhập thông tin chi tiết về tên cơ sở dữ liệu MariaDB, người dùng và mật khẩu. Nhấp vào Cài đặt để thực hiện cài đặt.
Sau khi cài đặt Nextcloud thành công, bạn sẽ được chuyển hướng đến Bảng điều khiển Nextcloud như ảnh chụp màn hình sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào menu quản lý tệp ở góc trên bên trái và bạn sẽ thấy trình quản lý tệp Nextcloud, nơi bạn có thể tải lên, tạo hoặc xóa tệp trên nextcloud.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Kết luận
Tóm lại, bằng cách làm theo các bước được nêu trong hướng dẫn này, bạn đã cài đặt thành công Nextcloud trên AlmaLinux 9 với LAMP Stack. Bạn cũng đã bảo mật Nextcloud bằng chứng chỉ firewalld, SELinux và SSL/TLS từ Letsencrypt.Để đưa Nextcloud lên tầm cao mới, bạn cũng có thể thiết lập Bộ nhớ đệm thông qua memcached, bảo mật Nextcloud khỏi các cuộc tấn công bằng cách dùng vũ lực thông qua fail2ban và thiết lập khóa tệp thông qua Redis.