WordPress là một hệ thống quản lý nội dung (CMS) mã nguồn mở rất phổ biến, cho phép người dùng tạo, tùy chỉnh và quản lý nội dung trên trang web của mình. Một CMS cung cấp cơ sở hạ tầng cơ bản để xây dựng một trang web, điều này rất hữu ích cho những người không có kiến thức lập trình để xây dựng trang web từ đầu. CMS WordPress đi kèm với nhiều công cụ tùy biến, chẳng hạn như bảng điều khiển quản trị với giao diện thân thiện giúp tạo trang mới, thêm phương tiện truyền thông và nhiều hơn nữa. Chính vì những lý do này, WordPress là một trong những CMS được sử dụng nhiều nhất trên thị trường hiện nay.
Có rất nhiều cách khác nhau để tiếp cận WordPress, nhưng một số quy trình cài đặt phức tạp hơn những cách khác. Bài hướng dẫn này dành cho những ai mong muốn cài đặt và quản trị một instance WordPress trên một máy chủ đám mây không được quản lý thông qua dòng lệnh.
Mặc dù phương pháp này yêu cầu nhiều bước hơn so với việc sử dụng một cài đặt WordPress có sẵn, nhưng nó mang lại cho quản trị viên quyền kiểm soát toàn diện hơn đối với môi trường WordPress của họ.
DataOnline sẽ sử dụng LAMP (Linux, Apache, MySQL và PHP) stack – một trong những kiến trúc máy chủ hỗ trợ WordPress bằng cách cung cấp hệ điều hành Linux, máy chủ web Apache, cơ sở dữ liệu MySQL và ngôn ngữ lập trình PHP. Chúng ta sẽ cài đặt và cấu hình WordPress qua LAMP trên một máy chủ Linux Ubuntu 22.04.
Tùy vào nhu cầu và mục tiêu của bạn, có thể có những lựa chọn khác phù hợp hơn. Vì WordPress là phần mềm mã nguồn mở, bạn có thể tải về và cài đặt miễn phí, nhưng để trang web có thể hoạt động trên Internet, bạn có thể cần mua cơ sở hạ tầng đám mây và tên miền. Hãy tiếp tục theo dõi hướng dẫn này nếu bạn quan tâm đến việc thực hiện cài đặt và cấu hình WordPress phía máy chủ.
Yêu Cầu Tiên Quyết
Để hoàn thành bài hướng dẫn này, bạn cần:
● Một máy chủ Ubuntu 22.04 được thiết lập theo hướng dẫn “Thiết lập máy chủ ban đầu với Ubuntu 22.04”. Đảm bảo bạn có một tài khoản sudo không phải root và đã bật tường lửa.
● Một LAMP stack được cài đặt trên máy chủ của bạn. Tham khảo hướng dẫn “Cách Cài Đặt Linux, Apache, MySQL, PHP (LAMP) Stack Trên Ubuntu 22.04” để cài đặt và cấu hình phần mềm này.
● Trang web của bạn phải được bảo mật bằng chứng chỉ TLS/SSL. WordPress nhận dữ liệu người dùng và lưu trữ thông tin, vì vậy việc có một lớp bảo mật là rất quan trọng. TLS/SSL là công nghệ cho phép bạn mã hoá lưu lượng truy cập từ trang web để đảm bảo kết nối giữa bạn và người dùng được bảo mật. Có hai lựa chọn để đáp ứng yêu cầu này:
Nếu bạn đã có tên miền, bạn có thể bảo mật trang web với Let’s Encrypt, cung cấp chứng chỉ miễn phí và tin cậy. Tham khảo hướng dẫn “Cách Bảo Mật Apache với Let’s Encrypt trên Ubuntu 20.04” để cài đặt.
Nếu bạn chưa có tên miền và chỉ sử dụng cấu hình này cho mục đích thử nghiệm hoặc sử dụng cá nhân, bạn có thể dùng chứng chỉ tự ký. Chứng chỉ tự ký cung cấp cùng loại mã hoá, nhưng không có xác thực tên miền. Tham khảo hướng dẫn SSL Tự Ký cho Apache trên Ubuntu 22.04 để cài đặt.
Khi bạn đã hoàn thành các bước thiết lập ban đầu, hãy đăng nhập vào máy chủ với tài khoản sudo và tiếp tục với bước đầu tiên.
Bước 1 – Tạo cơ sở dữ liệu Mysql và tài khoản người dùng cho WordPress
Bước đầu tiên là bước chuẩn bị. WordPress sử dụng MySQL để quản lý và lưu trữ thông tin của trang web cũng như người dùng. Bạn đã cài đặt MySQL, nhưng cần tạo một cơ sở dữ liệu và một tài khoản người dùng riêng cho WordPress sử dụng.
Để bắt đầu, đăng nhập vào tài khoản root của MySQL (tài khoản quản trị) bằng lệnh sau (lưu ý: đây không phải là tài khoản root của máy chủ):
sudo mysql
Lưu ý: Nếu bạn cài đặt MySQL theo một hướng dẫn khác với phần yêu cầu, có thể bạn đã bật xác thực bằng mật khẩu cho người dùng root của MySQL. Trong trường hợp đó, bạn có thể kết nối đến MySQL bằng lệnh:
mysql -u root -p
Trong MySQL, tạo một cơ sở dữ liệu chuyên dụng để WordPress quản lý. Bạn có thể đặt tên theo ý bạn, nhưng trong hướng dẫn này chúng ta sẽ dùng tên wordpress. Tạo cơ sở dữ liệu bằng lệnh:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Lưu ý: Mỗi câu lệnh SQL phải kết thúc bằng dấu chấm phẩy (;). Hãy kiểm tra lại nếu gặp lỗi.
Tiếp theo, bạn sẽ tạo một tài khoản người dùng MySQL riêng biệt để sử dụng cho cơ sở dữ liệu mới. Việc tạo các cơ sở dữ liệu và tài khoản riêng sẽ hỗ trợ về mặt quản trị và bảo mật. Trong hướng dẫn này, chúng ta sẽ dùng tên wordpressuser
, nhưng bạn có thể chọn tên khác nếu muốn.
Tạo người dùng bằng lệnh sau (nhớ chọn một mật khẩu mạnh cho người dùng này thay cho 'password'
):
CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Sau đó, cấp quyền truy cập đầy đủ cho người dùng wordpressuser
trên cơ sở dữ liệu wordpress:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
Bây giờ, bạn đã có cơ sở dữ liệu và tài khoản người dùng riêng cho WordPress. Để MySQL nhận diện các thay đổi mới, hãy làm mới quyền bằng lệnh:
FLUSH PRIVILEGES;
Thoát khỏi MySQL:
EXIT;
Ở bước tiếp theo, bạn sẽ tải về các PHP extension cần thiết để hỗ trợ các plugin của WordPress.
Bước 2 – Cài đặt thêm các PHP Extension
Khi cài đặt LAMP stack, chúng ta chỉ cần một tập hợp rất cơ bản các extension để PHP có thể giao tiếp với MySQL. Tuy nhiên, WordPress và nhiều plugin của nó lại yêu cầu thêm một số PHP extension khác.
Trước tiên, hãy cập nhật danh sách các gói phần mềm trên máy chủ bằng lệnh APT:
sudo apt update
Sau đó, cài đặt các PHP extension phổ biến cho WordPress:
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Những extension này sẽ tạo nền tảng cho việc cài đặt các plugin bổ sung trên trang WordPress của bạn.
Lưu ý: Mỗi plugin WordPress có thể có yêu cầu riêng về PHP. Nếu plugin của bạn cần thêm gói PHP nào đó, hãy kiểm tra tài liệu hướng dẫn của plugin và cài đặt theo cách tương tự.
Sau khi cài đặt, bạn cần khởi động lại Apache để nạp các extension mới. Bạn có thể chờ đến bước điều chỉnh cấu hình Apache ở phần tiếp theo hoặc khởi động ngay bây giờ:
sudo systemctl restart apache2
Sau khi khởi động lại, bạn có thể tiếp tục chuyển sang bước điều chỉnh cấu hình Apache.
Bước 3 – Điều chỉnh cấu hình Apache cho phép ghi đè và Rewrite vớI .htaccess
Tiếp theo, bạn sẽ thực hiện một vài thay đổi nhỏ trong cấu hình của Apache. Dựa theo các hướng dẫn yêu cầu, bạn sẽ có một tệp cấu hình cho trang web của mình trong thư mục /etc/apache2/sites-available/
.
Trong hướng dẫn này, chúng ta sẽ sử dụng tệp /etc/apache2/sites-available/wordpress.conf
làm ví dụ, nhưng bạn hãy thay thế bằng đường dẫn tới tệp cấu hình hiện có của bạn nếu cần. Ngoài ra, chúng ta sẽ sử dụng /var/www/wordpress
làm thư mục gốc cho cài đặt WordPress. Nếu bạn đã theo hướng dẫn LAMP, có thể thư mục này được đặt theo tên miền của bạn thay vì “wordpress”.
Lưu ý: Có thể bạn đang dùng cấu hình mặc định
000-default.conf
(với thư mục gốc là/var/www/html
). Điều này hoàn toàn được nếu bạn chỉ muốn lưu trữ một trang web trên máy chủ. Nếu không, hãy chia nhỏ cấu hình thành các tệp riêng biệt, một tệp cho mỗi trang web.
Sau khi xác định được các đường dẫn, bạn chuyển sang cấu hình file .htaccess
để Apache có thể xử lý các thay đổi cấu hình theo thư mục.
Cho phép ghi đè với .htaccess
Hiện tại, việc sử dụng file .htaccess
đang bị vô hiệu hóa. WordPress và nhiều plugin của nó sử dụng file này để điều chỉnh hành vi của máy chủ theo từng thư mục.
Mở tệp cấu hình Apache của trang web bằng trình soạn thảo văn bản (ở đây chúng ta dùng nano
):
sudo nano /etc/apache2/sites-available/wordpress.conf
Để cho phép file .htaccess
, bạn cần đặt chỉ thị AllowOverride
trong khối Directory
trỏ tới thư mục gốc của trang web. Thêm nội dung sau vào bên trong khối VirtualHost
của tệp cấu hình, đảm bảo sử dụng đúng thư mục gốc:
/etc/apache2/sites-available/wordpress.conf <VirtualHost *:80> . . . <Directory /var/www/wordpress/> AllowOverride All </Directory> . . . </VirtualHost>
Sau khi chỉnh sửa, lưu và đóng tệp. Trong nano
, bạn nhấn CTRL+X
, sau đó nhấn Y
và ENTER
.
Kích hoạt Module Rewrite
Tiếp theo, kích hoạt mod_rewrite
để có thể sử dụng tính năng permalink của WordPress:
sudo a2enmod rewrite
Lệnh này cho phép bạn có các permalink dạng dễ đọc, ví dụ như:
http://example.com/2012/post-name/ http://example.com/2012/12/30/post-name
Lệnh a2enmod
sẽ gọi một script kích hoạt module được chỉ định trong cấu hình của Apache.
Áp dụng các thay đổI
Trước khi áp dụng các thay đổi, hãy kiểm tra xem có lỗi cú pháp nào không bằng lệnh:
sudo apache2ctl configtest
Bạn có thể nhận được kết quả như sau:
Output AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK
Nếu bạn muốn ẩn dòng cảnh báo đầu tiên, hãy thêm chỉ thị ServerName
vào tệp cấu hình Apache chính tại /etc/apache2/apache2.conf. ServerName
có thể là tên miền hoặc địa chỉ IP của máy chủ. Đây chỉ là cảnh báo và không ảnh hưởng đến chức năng của trang web. Miễn là kết quả có Syntax OK
, bạn có thể tiếp tục.
Khởi động lại Apache để áp dụng các thay đổi (nhớ khởi động lại ngay cả khi bạn đã khởi động lại trước đó):
Bước 4 – Tải về WordPress
Bây giờ, khi phần mềm máy chủ đã được cấu hình, bạn có thể tải về và cài đặt WordPress. Vì lý do bảo mật, luôn luôn nên tải phiên bản WordPress mới nhất từ trang chủ của nó.
Đầu tiên, chuyển đến một thư mục có quyền ghi (chúng tôi khuyên dùng thư mục tạm như /tmp
):
cd /tmp
Sau đó, tải về gói nén của bản phát hành mới nhất với lệnh curl:
curl -O https://wordpress.org/latest.tar.gz
Giải nén tệp đã tải để tạo cấu trúc thư mục của WordPress:
tar xzvf latest.tar.gz
Bạn sẽ chuyển các tệp này vào thư mục gốc tài liệu (document root) trong chốc lát. Trước khi làm việc đó, bạn có thể tạo một file .htaccess rỗng (dummy) để WordPress có thể sử dụng sau này:
touch /tmp/wordpress/.htaccess
Sao chép file cấu hình mẫu sang tên mà WordPress sử dụng:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Ngoài ra, tạo thư mục upgrade để tránh các vấn đề về phân quyền khi WordPress tự cập nhật:
mkdir /tmp/wordpress/wp-content/upgrade
Bây giờ, sao chép toàn bộ nội dung trong thư mục /tmp/wordpress
vào thư mục gốc của trang web. Dấu chấm “.” ở cuối đường dẫn nguồn chỉ ra rằng mọi thứ, kể cả các tệp ẩn (như file .htaccess vừa tạo), sẽ được sao chép. Hãy đảm bảo thay /var/www/wordpress
bằng thư mục gốc bạn đã thiết lập trên máy chủ:
sudo cp -a /tmp/wordpress/. /var/www/wordpress
Bạn đã sẵn sàng để cấu hình thư mục WordPress.
Bước 5 – Cấu hình thư mục WordPress
Trước khi bắt đầu cấu hình WordPress qua giao diện web, bạn cần điều chỉnh một số cài đặt trong thư mục WordPress.
Điều chỉnh quyền sở hữu và phân quyền
Một bước quan trọng nữa là thiết lập quyền truy cập hợp lý cho các tệp và thư mục mà WordPress sử dụng để hoạt động.
Đầu tiên, chuyển quyền sở hữu toàn bộ các tệp cho người dùng và nhóm www-data
. Đây là tài khoản mà Apache sử dụng, và Apache cần có quyền đọc và ghi các tệp WordPress để phục vụ trang web cũng như tự động cập nhật.
Cập nhật quyền sở hữu bằng lệnh chown
(hãy đảm bảo trỏ đúng đến thư mục trên máy chủ của bạn):
sudo chown -R www-data:www-data /var/www/wordpress
Tiếp theo, chạy hai lệnh find
để đặt quyền phù hợp cho các thư mục và tệp của WordPress. Lệnh đầu tiên đặt quyền 750
cho tất cả các thư mục trong /var/www/wordpress
:
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
Lệnh thứ hai tìm tất cả các tệp và đặt quyền 640
:
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;
Những quyền này sẽ giúp bạn sử dụng WordPress hiệu quả, tuy nhiên một số plugin hoặc quy trình có thể yêu cầu tinh chỉnh thêm.
Cấu hình tệp wp-config.php
Bây giờ, bạn cần thực hiện một số thay đổi trong tệp cấu hình chính của WordPress.
Khi mở tệp, bước đầu tiên là điều chỉnh một số “secret keys” để tăng cường bảo mật cho cài đặt. WordPress cung cấp một công cụ tạo key an toàn để bạn không phải tự nghĩ ra các giá trị phức tạp. Những giá trị này chỉ dùng nội bộ, vì vậy việc sử dụng các giá trị an toàn, phức tạp sẽ không ảnh hưởng đến khả năng sử dụng.
Lấy các giá trị bảo mật từ WordPress Secret Key Generator bằng lệnh sau:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Bạn sẽ nhận được các giá trị duy nhất tương tự như ví dụ sau:
Warning! Điều quan trọng là bạn phải lấy các giá trị mới mỗi lần. KHÔNG sao chép các giá trị mẫu dưới đây!
Output define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
Sao chép kết quả mà bạn vừa nhận được.
Tiếp theo, mở tệp cấu hình của WordPress:
sudo nano /var/www/wordpress/wp-config.php
Tìm đến phần chứa các giá trị mẫu của các thiết lập:
/var/www/wordpress/wp-config.php . . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
Xóa các dòng mẫu đó và dán các giá trị bạn đã sao chép vào:
var/www/wordpress/wp-config.php . . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
Sau đó, bạn sẽ chỉnh sửa một số cài đặt kết nối cơ sở dữ liệu ở đầu tệp. Bạn cần thay đổi tên cơ sở dữ liệu, tên người dùng cơ sở dữ liệu và mật khẩu tương ứng mà bạn đã cấu hình trong MySQL.
Thay đổi khác bạn cần thực hiện là thiết lập phương thức WordPress dùng để ghi vào hệ thống tệp. Vì bạn đã cấp quyền ghi cần thiết cho máy chủ web, bạn có thể đặt rõ ràng phương thức filesystem thành “direct”. Nếu không thiết lập, WordPress sẽ yêu cầu nhập thông tin FTP khi thực hiện một số tác vụ.
Bạn có thể thêm cài đặt này ngay dưới phần cài đặt kết nối cơ sở dữ liệu (hoặc bất cứ đâu trong tệp):
/var/www/wordpress/wp-config.php . . . // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'wordpress' ); /** MySQL database username */ define( 'DB_USER', 'wordpressuser' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The Database Collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' ); . . . define('FS_METHOD', 'direct');
Sau khi hoàn tất, lưu và đóng tệp.
Bước 6 – Hoàn tất cài đặt qua giao diện Web
Bây giờ, khi cấu hình máy chủ đã hoàn tất, bạn có thể hoàn tất cài đặt WordPress qua giao diện web.
Mở trình duyệt web và truy cập tên miền hoặc địa chỉ IP công cộng của máy chủ:
https://server_domain_or_IP
Bạn sẽ được yêu cầu chọn ngôn ngữ sử dụng.
Tiếp theo, bạn sẽ đến trang thiết lập chính.
Chọn tên cho trang WordPress của bạn và chọn một tên người dùng. Khuyến nghị chọn một tên độc đáo, tránh dùng những tên thông dụng như “admin” để đảm bảo bảo mật. Một mật khẩu mạnh sẽ được tạo tự động. Hãy lưu lại mật khẩu này hoặc chọn một mật khẩu mạnh khác.
Nhập địa chỉ email của bạn và lựa chọn có muốn ngăn các công cụ tìm kiếm lập chỉ mục trang web hay không.
Khi bấm “Tiếp tục”, bạn sẽ được chuyển đến trang đăng nhập.
Sau khi đăng nhập, bạn sẽ được chuyển đến bảng điều khiển quản trị WordPress.
Tại thời điểm này, bạn có thể bắt đầu thiết kế trang web WordPress của mình. Nếu đây là lần đầu tiên bạn sử dụng WordPress, hãy khám phá giao diện để làm quen với CMS mới của bạn.
Kết Luận
Chúc mừng bạn, WordPress đã được cài đặt thành công và sẵn sàng để sử dụng.
Bây giờ, bạn có thể thực hiện một số việc sau:
● Chọn cài đặt permalink cho các bài viết WordPress, mục này nằm trong Settings > Permalinks.
● Chọn một giao diện mới tại Appearance > Themes.
● Cài đặt thêm plugin để tăng cường tính năng của trang web tại Plugins > Add New.
● Nếu bạn muốn cộng tác với người khác, có thể thêm người dùng mới tại Users > Add New.
Bạn có thể tham khảo thêm các tài nguyên về cách cài đặt WordPress theo các phương pháp khác, học cách cài đặt trên các bản phân phối máy chủ khác nhau, tự động hoá quá trình cài đặt WordPress và mở rộng quy mô các trang WordPress qua thẻ cộng đồng WordPress.