Trình quản lý OJS
Cài và quản lý website Open Journal Systems (OJS) — phần mềm mã nguồn mở quản lý tạp chí và xuất bản học thuật của Public Knowledge Project — trên một tên miền có sẵn, qua trình cài đặt CLI riêng của OJS. Có cài đặt, trang tổng quan chỉ đọc với trạng thái trực tiếp, xoá bộ nhớ đệm, đăng nhập quản trị dùng một lần, nhật ký lỗi, hệ thống sao lưu/khôi phục riêng, nhân bản, tự cập nhật và gỡ cài đặt.
Cài OJS
Vào HiTechCloud > Trình cài đặt tự động và nhấn Install OJS.
Trên trang cài đặt, cấu hình:
- Tên miền – Tên miền (và thư mục con tuỳ chọn) để cài vào. Để trống thư mục con để cài tại gốc tên miền.
- Phiên bản OJS – Mới nhất, hoặc cố định một bản phát hành cụ thể, xác định trực tiếp từ các tag GitHub của pkp/ojs.
- Tên đăng nhập / mật khẩu / email quản trị – Tài khoản Site Administrator ban đầu mà OJS tạo trong lúc cài. Để trống mật khẩu để tạo tự động.
Phía sau, thao tác này tải tarball đóng gói tương ứng trực tiếp từ pkp.sfu.ca thay vì GitHub — kho của OJS dùng git submodule (lib/pkp, một số plugin, ui-library) mà tệp nén GitHub thông thường âm thầm bỏ qua, dẫn đến bản cài bị hỏng, nên PKP lưu trữ sẵn các gói phát hành đã đóng gói đầy đủ. Tệp nén được giải nén vào một thư mục "app root" nằm cạnh docroot của tên miền, và docroot được thay bằng symlink tới đó (cùng kỹ thuật mà mô-đun Moodle dùng, giữ ở đây chủ yếu để Cập nhật có đích hoán đổi và khôi phục nguyên tử). Một thư mục riêng bên cạnh được tạo để lưu tệp của OJS (tệp nộp bài, v.v.), nằm hoàn toàn ngoài cây docroot/app root để không bao giờ truy cập được qua web. Sau đó HiTechCloud tạo một cơ sở dữ liệu MySQL/MariaDB riêng, cài tiện ích mở rộng PHP ftp nếu thiếu (bắt buộc theo bước kiểm tra nền tảng Composer của OJS), và chạy tools/install.php riêng của OJS — khác với trình cài đặt của Moodle hay Joomla, nó không nhận cờ CLI nào và chỉ nhận câu trả lời qua stdin. Sau đó, HiTechCloud sửa base_url, time_zone và allowed_hosts trong config.inc.php — cả ba đều bị để sai hoặc trống khi chạy tools/install.php không tương tác và nếu không sẽ khiến website mới tự khoá mình — đặt một tệp trợ giúp đăng nhập quản trị dùng một lần, và đăng ký một tác vụ cron mỗi phút chạy lib/pkp/tools/scheduler.php run, cách có tài liệu của OJS để chạy tác vụ theo lịch trong production thay vì trình chạy tác vụ cuối yêu cầu tích hợp vốn không được khuyến khích. Tiến trình được hiển thị trực tiếp khi từng bước hoàn tất.
Quản lý website OJS
Mọi bản cài OJS đều xuất hiện trên trang chung Trình quản lý website (/sites) cùng các website khác của bạn. Nhấn Quản lý trên một website OJS để mở trang tổng quan của nó:
- Thẻ Screenshot và các thẻ trạng thái OJS / PHP / MariaDB / Created, giống các trình quản lý CMS khác.
- Tệp – Docroot là symlink tới thư mục app root; lối tắt tới Trình quản lý tệp, và dung lượng thư mục theo thời gian thực.
- Cơ sở dữ liệu – Tên và tên đăng nhập, đọc trực tiếp từ
config.inc.php(không lưu riêng ở đâu khác) — OJS không có tiền tố bảng theo website, cùng lối tắt tới phpMyAdmin. - Phiên bản PHP – Sửa được với bản cài ở gốc; bản cài trong thư mục con kế thừa phiên bản PHP của tên miền.
Đăng nhập với quyền quản trị
Nút Đăng nhập với quyền quản trị tạo một liên kết đăng nhập dùng một lần và mở bảng điều khiển OJS ở trạng thái đã xác thực, không cần mật khẩu quản trị. Lõi OJS không có lệnh CLI tích hợp cho việc này, nên HiTechCloud đặt một tệp PHP trợ giúp đăng nhập nhỏ vào app root lúc cài. Mỗi lần nhấn sẽ xác định tài khoản Site Administrator đang hoạt động của website, cấp một token mới (lưu trong bảng riêng hitechcloud_login_tokens) có hiệu lực 10 phút và chỉ dùng được một lần, và đăng nhập trình duyệt qua hàm trợ giúp Validation::registerUserSession() của chính PKP — cùng cơ chế mà một lần đăng nhập thật sử dụng, chỉ trừ bước kiểm tra mật khẩu.
Bộ nhớ đệm
OJS không có lệnh CLI chuyên dụng để xoá bộ nhớ đệm, nên widget Cache làm trống trực tiếp bộ nhớ đệm template/dữ liệu trên đĩa (thư mục cache/ trong app root) — cùng kỹ thuật mà cộng đồng PKP ghi lại để khắc phục bản cài bị kẹt.
Nhật ký
Tab Nhật ký hiển thị phần cuối của tệp *.log mới nhất mà nó tìm thấy trong thư mục cache/ của app root hoặc thư mục tệp. Bản thân OJS ghi lỗi cấp PHP qua error_log được cấu hình của PHP thay vì một tệp phẳng riêng cho website, nên website không có plugin nào ghi nhật ký ở đó có thể chưa hiển thị gì — thay vào đó hãy xem nhật ký riêng của container PHP từ Dịch vụ.
Bản sao lưu
Website OJS có hệ thống sao lưu riêng, tách biệt với tính năng Bản sao lưu ở cấp tài khoản. Nội dung thực sự của website — tệp nộp bài, v.v. — nằm trong một thư mục "files" riêng ngoài docroot (bản thân docroot chỉ chứa mã của bản phát hành gốc), nên đó là thứ được sao lưu:
- Tạo bản sao lưu theo yêu cầu cho cơ sở dữ liệu, tệp, hoặc cả hai. Vì OJS không có tiền tố bảng theo website, bản sao lưu cơ sở dữ liệu xuất toàn bộ cơ sở dữ liệu thay vì một tập con đã lọc. Bản sao lưu được lưu theo tên miền và thời điểm (
backups/<domain>/<timestamp>/database.sqlvà/hoặcfiles.tar.gz) trên volumehtml_datacủa tài khoản. - Khôi phục bất kỳ ngày sao lưu nào trước đó. Khôi phục cơ sở dữ liệu nhập trực tiếp
database.sql; khôi phục tệp giải nénfiles.tar.gzđè lên thư mục tệp hiện tại.
Nhân bản
Thao tác Nhân bản sao chép một website OJS sang tên miền (hoặc thư mục con) mới. Nó sao chép cả thư mục app root và thư mục tệp, tạo cơ sở dữ liệu mới từ bản xuất của cơ sở dữ liệu nguồn, ghi lại tên/tên đăng nhập/mật khẩu cơ sở dữ liệu/base_url/files_dir trong config.inc.php của bản sao (tệp định dạng INI, khác với cú pháp PHP $CFG-> của Moodle), tạo symlink từ docroot đích tới bản sao, đăng ký tác vụ cron riêng cho bản sao, và chạy thao tác tìm-thay URL chung trên cơ sở dữ liệu đã nhân bản — OJS không có lệnh tương đương search-replace của WP-CLI, nên HiTechCloud tự xử lý.
Cập nhật
Thao tác Cập nhật cập nhật website đã cài bằng cách giải nén tarball của phiên bản đích vào một thư mục mới bên cạnh — không bao giờ động tới thư mục đang chạy — sao chép nguyên vẹn config.inc.php hiện có sang, và trỏ lại symlink docroot sang cây mới một cách nguyên tử trước khi chạy tools/upgrade.php upgrade riêng của OJS (thực sự không tương tác/dựa trên cờ, khác với trình cài đặt). Nếu bước nâng cấp thất bại, symlink được trỏ lại cây cũ còn nguyên vẹn, nên một lần nâng cấp lỗi không bao giờ làm website ngừng hoạt động. Khác với việc cập nhật của Moodle, thao tác này có thể nhắm tới một phiên bản cụ thể hoặc mặc định là mới nhất.
Gỡ bỏ
Nút Xoá ứng dụng trong tab Gỡ bỏ gỡ cài đặt hoàn toàn website: xoá tác vụ cron đã đăng ký, xoá cơ sở dữ liệu và người dùng cơ s ở dữ liệu, xoá symlink docroot cùng các thư mục app root và thư mục tệp, và gỡ nó khỏi Trình quản lý website. Không thể hoàn tác.
Không bao gồm
Để giữ tính năng này đơn giản, những mục sau không thuộc phần hỗ trợ OJS (khác với Trình quản lý WordPress):
- Trang "Trình quản lý OJS" riêng trên thanh bên — thay vào đó, hãy quản lý các website đã cài từ Trình quản lý website
- Console lệnh CLI/
tools/*.phpchung của OJS — chỉ có xoá bộ nhớ đệm, xem nhật ký, đăng nhập quản trị và cập nhật - Quét hệ thống tệp để tìm các bản cài chưa được theo dõi
- Quy tắc tăng cường bảo mật
- Chỉ hỗ trợ cơ sở dữ liệu MySQL/MariaDB — bản thân OJS cũng hỗ trợ PostgreSQL, nhưng trình cài đặt ở đây được cố định dùng
mysqli