Elgg là một khuôn khổ web và CMS miễn phí, mã nguồn mở, có thể tùy chỉnh cao để xây dựng một môi trường xã hội trực tuyến. Nó được viết bằng PHP và sử dụng MySQL làm cơ sở dữ liệu phụ trợ. Nó cung cấp một giao diện người dùng web đơn giản, thân thiện với người dùng và có thể tùy chỉnh giúp người dùng mới bắt đầu tạo và quản lý nội dung thông qua trình duyệt web. Elgg cho phép các trường học, cao đẳng và đại học tạo ra môi trường xã hội của họ trong khuôn viên trường. Đây là một trong những công cụ mạng xã hội phổ biến nhất cung cấp một khuôn khổ mạnh mẽ mà bạn có thể xây dựng mọi loại môi trường xã hội.
Bài đăng này sẽ chỉ cho bạn cách cài đặt Elgg với Nginx và Let's Encrypt SSL trên Ubuntu 22.04.
Sau khi cập nhật tất cả các gói, bạn có thể tiến hành bước tiếp theo.
Sau khi tất cả các gói được cài đặt, hãy chỉnh sửa tệp php.ini và sửa đổi một số cài đặt mặc định:
Thay đổi các cài đặt sau theo yêu cầu của bạn:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu Elgg bằng lệnh sau:
Tiếp theo, xóa các quyền và thoát khỏi MySQL bằng lệnh sau:
Tại thời điểm này, cơ sở dữ liệu MariaDB và người dùng đã được tạo cho Elgg. Bây giờ bạn có thể tiến hành bước tiếp theo.
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, di chuyển thư mục đã giải nén đến thư mục gốc web Nginx bằng lệnh sau:
Tiếp theo, tạo thư mục dữ liệu cho Elgg và thiết lập quyền sở hữu thích hợp cho thư mục dữ liệu và thư mục elgg:
Lúc này, Elgg được tải xuống thư mục gốc web Nginx. Bây giờ bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không:
Bạn sẽ thấy kết quả sau:
Tiếp theo, khởi động lại dịch vụ Nginx bằng lệnh sau:
Bạn có thể kiểm tra trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Nhấp vào nút Tiếp theo. Bạn sẽ thấy trang kiểm tra yêu cầu PHP:
Đảm bảo tất cả các yêu cầu đã được cài đặt, sau đó nhấp vào nút Tiếp theo. Bạn sẽ thấy trang cấu hình cơ sở dữ liệu:
Cung cấp thông tin cơ sở dữ liệu, thư mục dữ liệu, URL trang web và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang cấu hình trang web:
Cung cấp thông tin trang web của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang tạo người dùng quản trị Elgg:
Cung cấp tên người dùng quản trị, email, mật khẩu và nhấp vào nút Tiếp theo. Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ thấy trang sau:
Nhấp vào Đi tới trang web. Bạn sẽ thấy bảng điều khiển Elgg trên trang sau:
Sau khi Certbot được cài đặt, hãy bảo mật trang web của bạn bằng Let's Encrypt SSL bằng cách chạy lệnh sau:
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Nhập 2 và nhấn Enter để hoàn tất quá trình cài đặt. Bạn sẽ thấy kết quả đầu ra sau:
Bài đăng này sẽ chỉ cho bạn cách cài đặt Elgg với Nginx và Let's Encrypt SSL trên Ubuntu 22.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 22.04.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình trên máy chủ.
Bắt đầu
Trước khi bắt đầu, hãy cập nhật các gói hệ thống lên phiên bản cập nhật. Bạn có thể cập nhật tất cả các gói bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Cài đặt Nginx, PHP và MariaDB
Trước tiên, bạn cần đảm bảo Nginx, MariaDB, PHP và các tiện ích mở rộng PHP khác đã được cài đặt trong hệ thống của mình. Nếu chưa cài đặt, bạn có thể cài đặt chúng bằng lệnh sau:
Mã:
apt-get install nginx mariadb-server php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath unzip curl -y
Mã:
nano /etc/php/8.1/fpm/php.ini
Mã:
memory_limit = 256Mpost_max_size = 64Mupload_max_filesize = 32Mdate.timezone = UTC
Mã:
systemctl restart php8.1-fpm
Cấu hình cơ sở dữ liệu MariaDB
Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Elgg. Để thực hiện, hãy đăng nhập vào MySQL bằng lệnh sau:
Mã:
mysql
Mã:
CREATE DATABASE elggdb;
CREATE USER elgguser@localhost IDENTIFIED BY 'securepassword';
Mã:
GRANT ALL PRIVILEGES ON elggdb.* TO elgguser@localhost;
Mã:
FLUSH PRIVILEGES;
EXIT;
Cài đặt Elgg Ubuntu 22.04
Tiếp theo, bạn sẽ cần tải xuống phiên bản mới nhất của Elgg từ trang web Github. Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://github.com/Elgg/Elgg/releases/download/4.2.3/elgg-4.2.3.zip
Mã:
unzip elgg-*.zip
Mã:
mv elgg-4.2.3 /var/www/html/elgg
Mã:
mkdir /var/www/html/data
chown -R www-data:www-data /var/www/html/elgg/
chown -R www-data:www-data /var/www/html/data
chmod -R 755 /var/www/html/elgg
Tạo Nginx Virtual Host cho Elgg
Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx để lưu trữ Elgg trên internet. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/elgg.conf
Mã:
server { listen 80; server_name elgg.example.com; root /var/www/html/elgg; index index.php; access_log /var/log/nginx/elgg_access.log; error_log /var/log/nginx/elgg_error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_keep_conn on; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }}
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2022-07-18 05:53:15 UTC; 6 giây trước Tài liệu: man:nginx(8) Tiến trình: 18028 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 18029 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 18031 (nginx) Nhiệm vụ: 3 (giới hạn: 4579) Bộ nhớ: 3,3M CPU: 53ms CGroup: /system.slice/nginx.service ??18031 "nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on;" ??18032 "nginx: tiến trình công nhân" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""18/07 05:53:15 ubuntu2204 systemd[1]: Bắt đầu Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...18/07 05:53:15 ubuntu2204 systemd[1]: Bắt đầu Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Truy cập Elgg Web Giao diện
Tại thời điểm này, Elgg đã được cài đặt và cấu hình với Nginx. Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web Elgg bằng URL . Bạn sẽ được chuyển hướng đến trang chào mừng Elgg:Nhấp vào nút Tiếp theo. Bạn sẽ thấy trang kiểm tra yêu cầu PHP:
Đảm bảo tất cả các yêu cầu đã được cài đặt, sau đó nhấp vào nút Tiếp theo. Bạn sẽ thấy trang cấu hình cơ sở dữ liệu:
Cung cấp thông tin cơ sở dữ liệu, thư mục dữ liệu, URL trang web và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang cấu hình trang web:
Cung cấp thông tin trang web của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang tạo người dùng quản trị Elgg:
Cung cấp tên người dùng quản trị, email, mật khẩu và nhấp vào nút Tiếp theo. Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ thấy trang sau:
Nhấp vào Đi tới trang web. Bạn sẽ thấy bảng điều khiển Elgg trên trang sau:
Bật Let's Encrypt SSL trên Elgg
Luôn là một ý tưởng hay khi bảo mật trang web của bạn bằng Let's Encrypt SSL. Trước tiên, hãy cài đặt ứng dụng khách Certbot Let's Encrypt trên máy chủ của bạn bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Mã:
certbot --nginx -d elgg.example.com
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có muốn chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)ó: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho elgg.example.comĐang chờ xác minh...Đang dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/elgg.conf
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Mã:
Chuyển hướng tất cả lưu lượng trên cổng 80 sang ssl trong /etc/nginx/conf.d/elgg.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://elgg.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=elgg.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/elgg.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/elgg.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 19-10-2022. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.