Hướng dẫn tạo trang mạng nội bộ intranet cho doanh nghiệp nhỏ và vừa với WordPress

Bạn đang muốn tạo một trang mạng nội bộ bằng WordPress cho tổ chức của mình? WordPress là một nền tảng mạnh mẽ với nhiều tùy chọn linh hoạt khiến nó trở nên lý tưởng để có thể sử dụng làm trang mạng nội bộ của các công ty và tổ chức. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách tạo một trang mạng nội bộ WordPress cho tổ chức của bạn trong khi vẫn giữ được tính bảo mật và riêng tư.

Intranet/Extranet là gì? Tại sao phải sử dụng WordPress làm trang mạng nội bộ của bạn?

Intranet hay Extranet là một phương thức truyền thông được một tổ chức sử dụng để liên lạc, chia sẻ file, thông báo và các hoạt động nội bộ khác.

WordPress là một nền tảng tuyệt vời để xây dựng các trang mạng nội bộ của một tổ chức. WordPress dễ bảo trì, có mã nguồn mở và cho phép bạn sử dụng hàng nghìn plugin WordPress để tích hợp thêm các tính năng mới khi cần thiết.

Intranet là mạng nội bộ của công ty. Thường thì hệ thống CNTT của một văn phòng được kết nối với nhau qua cáp hoặc các bộ định tuyến không dây. Một máy tính trong mạng này có thể được sử dụng làm máy chủ và chạy một website WordPress trên nó.

Hãy thực hiện theo hướng dẫn của chúng tôi trong bài viết hướng dẫn cài đặt WordPress trên hệ thống Windows sử dụng WAMP hoặc cài đặt WordPress trên máy Mac sử dụng MAMP, bạn sẽ có thể bắt đầu cài đặt WordPress lên intranet.

Extranet là một phương thức mạng intranet nhưng ở mức độ rộng hơn, thậm chí là mức độ internet công cộng (cho phép tất cả các thiết bị). Nói một cách đơn giản, đó có thể là một website công cộng, tuy nhiên được đặt mật khẩu chỉ cho phép những người được cấp quyền mới có thể truy cập.

Extranet cực kỳ hữu ích nếu tổ chức của bạn có nhiều cơ sở ở các vị trí địa lý khác nhau.

Để tạo extranet với WordPress, bạn cần một WordPress hosting và một tên miền (domain). Sau đó, bạn có thể cài đặt WordPress và thiết lập nó như một địa chỉ intranet của công ty mình.

Khi bạn đã cài đặt WordPress intranet, bước tiếp theo là chuyển đổi nó thành một mạng lưới truyền thông chung trong tổ chức.

Để làm điều này, bạn sẽ phải sử dụng một vài plugin WordPress. Chúng tôi sẽ hướng dẫn cho bạn các bước thiết lập cơ bản để làm tiền đề cho hệ thống WordPress intranet của bạn phát triển và đáp ứng nhu cầu của công ty.

Thiết lập BuddyPress làm WordPress intranet hub

BuddyPress là một dự án chị em của WordPress. BuddyPress giúp chuyển đổi trang web WordPress của bạn thành một mạng xã hội. Dưới đây là một số tính năng tiêu biểu của mạng nội bộ được hỗ trợ bởi BuddyPress:

  • Bạn sẽ có thể mời người dùng đăng ký trên mạng nội bộ của công ty
  • Người dùng sẽ có thể tạo hồ sơ
  • Tính năng Activity stream cho phép người dùng theo dõi các cập nhật mới nhất giống như Twitter hoặc Facebook
  • Bạn sẽ có thể tạo nhóm người dùng (group) để sắp xếp người dùng vào các phòng ban hoặc nhóm
  • Người dùng có thể theo dõi nhau với tư cách bạn bè
  • Người dùng có thể gửi tin nhắn riêng tư cho nhau
  • Bạn có thể thêm các tính năng mới bằng cách cài đặt plugin của bên thứ ba
  • Bạn sẽ nhiều lựa chọn về giao diện với các theme WordPress cho BuddyPress

Để bắt đầu, trước tiên bạn cần cài đặt và kích hoạt plugin BuddyPress . Để biết thêm chi tiết, hãy xem hướng dẫn chi tiết của chúng tôi về cách cài đặt plugin WordPress .

Sau khi kích hoạt, hãy truy cập trang Settings » BuddyPress để cấu hình cho plugin.

Để xem thêm hướng dẫn từng bước đầy đủ, hãy tham khảo hướng dẫn của chúng tôi về cách biến WordPress thành mạng xã hội với BuddyPress .

Bảo mật trang WordPress intranet với All-in-One Intranet

Nếu bạn đang chạy một trang mạng nội bộ WordPress trên máy chủ trong mạng nội bộ, bạn có thể bảo mật nó bằng cách giới hạn quyền truy cập chỉ cho phép các IP nội bộ bằng file .htaccess.

Tuy nhiên, nếu bạn đang chạy Extranet, người dùng của bạn có thể truy cập mạng nội bộ từ các mạng và địa chỉ IP khác nhau.

Để đảm bảo rằng chỉ những người dùng được ủy quyền mới có quyền truy cập vào mạng nội bộ của công ty, bạn cần đặt extranet của mình ở chế độ riêng tư và chỉ những người dùng đã đăng ký mới có thể truy cập được.

Để làm được điều đó, bạn sẽ cần cài đặt và kích hoạt plugin All-in-One Intranet. Để biết thêm chi tiết, hãy xem hướng dẫn từng bước của chúng tôi về cách cài đặt plugin WordPress .

Sau khi kích hoạt, hãy truy cập trang Settings » All-in-One Intranet để cấu hình cho plugin.

Trước tiên, bạn cần tích vào ô Force site to be entirely private để đưa toàn bộ website về chế độ riêng tư.

Thứ duy nhất mà plugin không đưa về chế độ riêng tư là các file trong thư mục uploads của bạn, nhưng chúng tôi sẽ hướng hướng dẫn bạn cách bảo vệ nó ở phần sau của bài viết.

Tiếp theo, bạn cần điền URL mà bạn muốn người dùng được chuyển hướng sau khi họ đăng nhập vào ô Redirect after login URL.

Cuối cùng, bạn có thể tự động đăng xuất những người dùng không hoạt động sau một số phút nhất định.

Đừng quên nhấp vào nút Save changes để lưu cài đặt của bạn.

Bảo mật thư mục uploads cho trang WordPress intranet

Đưa toàn bộ website về chế độ riêng tư sẽ không ảnh hưởng đến các file ảnh, video,….Nếu một người nào đó biết địa chỉ URL của một file nêu trên, họ có thể truy cập thoải mái mà không gặp hạn chế.

Để ngăn chặn điều này, chúng ta sẽ chuyển hướng tất cả các yêu cầu được thực hiện đối với thư mục uploads sang một file PHP đơn giản.

Tập lệnh php này sẽ kiểm tra xem người dùng đã đăng nhập chưa. Nếu họ đã đăng nhập, thì nó sẽ gửi file đến người dùng. Nếu không, người dùng sẽ được chuyển hướng đến trang đăng nhập.

Trước tiên, bạn cần tạo một file mới trên máy tính của mình bằng trình soạn thảo văn bản như Notepad chẳng hạn. Sau đó, sao chép và dán đoạn mã sau và lưu file với tên download-file.php trên màn hình desktop.

<?php
require_once('wp-load.php');
 
is_user_logged_in() ||  auth_redirect();
 
list($basedir) = array_values(array_intersect_key(wp_upload_dir(), array('basedir' => 1)))+array(NULL);
 
$file =  rtrim($basedir,'/').'/'.str_replace('..', '', isset($_GET[ 'file' ])?$_GET[ 'file' ]:'');
if (!$basedir || !is_file($file)) {
    status_header(404);
    die('404 — File not found.');
}
 
$mime = wp_check_filetype($file);
if( false === $mime[ 'type' ] && function_exists( 'mime_content_type' ) )
    $mime[ 'type' ] = mime_content_type( $file );
 
if( $mime[ 'type' ] )
    $mimetype = $mime[ 'type' ];
else
    $mimetype = 'image/' . substr( $file, strrpos( $file, '.' ) + 1 );
 
header( 'Content-Type: ' . $mimetype ); // always send this
if ( false === strpos( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS' ) )
    header( 'Content-Length: ' . filesize( $file ) );
 
$last_modified = gmdate( 'D, d M Y H:i:s', filemtime( $file ) );
$etag = '"' . md5( $last_modified ) . '"';
header( "Last-Modified: $last_modified GMT" );
header( 'ETag: ' . $etag );
header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + 100000000 ) . ' GMT' );
 
// Support for Conditional GET
$client_etag = isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) ? stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) : false;
 
if( ! isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
    $_SERVER['HTTP_IF_MODIFIED_SINCE'] = false;
 
$client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE'] );
// If string is empty, return 0. If not, attempt to parse into a timestamp
$client_modified_timestamp = $client_last_modified ? strtotime( $client_last_modified ) : 0;
 
// Make a timestamp for our most recent modification...
$modified_timestamp = strtotime($last_modified);
 
if ( ( $client_last_modified && $client_etag )
    ? ( ( $client_modified_timestamp >= $modified_timestamp) && ( $client_etag == $etag ) )
    : ( ( $client_modified_timestamp >= $modified_timestamp) || ( $client_etag == $etag ) )
    ) {
    status_header( 304 );
    exit;
}
 
readfile( $file );

Sau đó hãy kết nối với trang web của bạn bằng ứng dụng FTP client, rồi upload file bạn vừa tạo lên thư mục /wp-content/uploads/.

Tiếp theo, bạn cần chỉnh sửa file .htaccess trong thư mục gốc của trang web. Thêm đoạn mã sau vào cuối file .htaccess của bạn:

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^wp-content/uploads/(.*)$ download-file.php?file=$1 [QSA,L]

Đừng quên lưu các thay đổi và upload file mới đè lên file cũ trên website.

Bây giờ tất cả các yêu cầu của người dùng đến thư mục uploads của bạn sẽ được gửi đến một tập lệnh proxy để kiểm tra xem đã đăng nhập hay chưa và chuyển hướng người dùng đến trang đăng nhập.

Chèn contact form vào trang WordPress intranet với WPForms

Mục tiêu chính của mạng nội bộ công ty là giao tiếp. BuddyPress thực hiện một công việc tuyệt vời với các tính năng như activity stream, comment và nhắn tin.

Tuy nhiên, đôi khi bạn cần thu thập thông tin một cách riêng tư trong một cuộc thăm dò hoặc khảo sát. Bạn cũng sẽ cần sắp xếp và lưu trữ thông tin đó để sử dụng sau này.

Đây là lúc sử dụng WPForms – trình tạo biểu mẫu WordPress tốt nhất trên thị trường.

WPForms không chỉ cho phép bạn dễ dàng tạo các biểu mẫu tuyệt đẹp mà còn lưu lại các phản hồi của người dùng trong cơ sở dữ liệu. Bạn có thể xuất dữ liệu câu trả lời cho bất kỳ biểu mẫu nào thành các file CSV.

Điều này cho phép bạn sắp xếp các câu trả lời vào một bảng tính, in chúng ra sau đó chia sẻ trong công ty.

Mở rộng trang WordPress intranet

Bây giờ bạn đã có một trang mạng nội bộ hoàn hảo cho tổ chức của mình. Tuy nhiên, bạn có thể sẽ muốn thêm một số tính năng mới hoặc làm cho nó an toàn hơn.

Có rất nhiều plugin WordPress có thể giúp bạn làm điều đó. Dưới đây là một số công cụ mà bạn có thể sử dụng ngay lập tức.

  • Sucuri – Để cải thiện tính bảo mật của WordPress bằng cách bảo vệ nó khỏi các truy cập trái phép và các cuộc tấn công DDoS độc hại.
  • Envira Gallery – Để tạo các thư viện ảnh đẹp.
  • Google Drive Embedder – Dễ dàng nhúng tài liệu Google Drive vào bất kỳ đâu trong trang WordPress intranet của bạn.

Chúng tôi hy vọng bài viết này đã giúp bạn biết cách tạo một trang mạng nội bộ WordPress intranet cho tổ chức của mình. Bạn cũng có thể muốn tham khảo thêm danh sách các widget WordPress hữu ích nhất của chúng tôi cho trang web của bạn.

Nếu thích bài viết này, hãy theo dõi YouTube Channel để xem thêm các video hướng dẫn về WordPress. Bạn cũng có thể tìm kiếm chúng tôi trên Twitter hoặc Facebook.

Leave a Reply

Your email address will not be published. Required fields are marked *

+