Bạn đã có PHP trên VPS rồi nhưng ứng dụng đó chỉ cho phép bạn thực thi các file PHP mà thôi, chứ chưa thể cài được WordPress bởi vì bạn sẽ cần thêm một ứng dụng rất quan trọng nữa là MySQL để hỗ trợ lưu trữ database cho website WordPress mà bạn sẽ cài vào sắp tới.
I. Cách cài MySQL vào VPS
Cài MySQL cũng rất dễ, chúng ta cũng vẫn sẽ sử dụng Yum package để cài đặt. Bạn chạy lệnh dưới đây để cài MySQL:
01
|
sudo yum install mysql-server -y
|
Sau đó khởi động MySQL (tên service là mysqld):
01
|
sudo service mysqld start
|
Và nó sẽ hiện ra rất nhiều thông tin như thế này:
[thach@vpscanban ~]$ sudo service mysqld start
Initializing MySQL database: WARNING: The host 'vpscanban' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h vpscanban password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
[OK ]
Starting mysqld: [OK ]
Điều này có nghĩa là chúng ta chỉ mới cài MySQL vào nhưng chưa thiết lập cho nó, vả lại chúng ta còn thiếu một thông tin cực kỳ quan trọng đó là MySQL Root Password. MySQL Root Password là mật khẩu cho database user tên là root để đăng nhập vào MySQL.
Bạn đừng nhầm lẫn giữa root password cho MySQL và root password của VPS, hai cái này hoàn toàn khác nhau.
Để thiết lập, bạn chạy đoạn sau:
01
|
sudo /usr/bin/mysql_secure_installation
|
Đầu tiên là nó sẽ hỏi:
Enter current password for root (enter for none):
Do bạn chưa thiết lập mật khẩu root cho MySQL nên ấn Enter mà không cần nhập gì cả.
Tiếp tục nó sẽ hỏi bạn muốn thiết lập mật khẩu cho user root hay không, gõ y và enter.
Set root password? [Y/n] y
Cuối cùng nó sẽ hỏi bạn thêm 4 câu hỏi nữa, cứ ấn Y rồi Enter hết.
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL
Ok, hãy khởi động lại MySQL nhé.
01
|
sudo service mysqld restart
|
Bây giờ bạn đã có một MySQL Server trên VPS và đã có mật khẩu root của MySQL rồi. Hãy thử đăng nhập vào MySQL với lệnh sau:
01
|
sudo mysql -u root -p123456
|
Trong đó, root là tên user root và 123456 là mật khẩu root của MySQL mà bạn vừa thiết lập.
Nếu nó hiện ra thế này là thành công:
Server version: 5.5.39 MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Gõ exit; để thoát ra.
II. Tạo database và database user trên VPS
Chắc các bạn cũng đã biết là khi cài WordPress trên Shared Host, chúng ta phải tạo cho nó một cái database đúng không? Ở đây cũng vậy, chúng ta cũng phải cần tạo ra một database và một database user để kết nối vào WordPress để lưu trữ dữ liệu.
Mặc dù bạn có thể sử dụng database user là root với mật khẩu root của MySQL nhưng việc này quá nguy hiểm nếu bạn có nhiều database khác nhau, vì hacker chỉ cần biết mật khẩu root của MySQL là có thể chiếm quyền quản trị toàn bộ databases có trên VPS.
Do đó, mình khuyến khích bạn sử dụng một database user riêng cho từng database để an toàn.
Đăng nhập vào MySQL
Để làm việc với MySQL chúng ta đều phải cần đăng nhập vào MySQL Server với lệnh mysql
.
Có thể bạn không cần viết thẳng cái mật khẩu ra đằng sau -p
vì bạn có thể nhập nó sau khi thực hiện lệnh đăng nhập.
Lưu ý thêm một điều là trong MySQL bạn sẽ viết bằng lệnh SQL, nên mỗi câu lệnh bạn phải kết thúc bằng dấu hai chấm (;).
2.1) Lệnh tạo database
Để tạo database, chúng ta sử dụng lệnh sau trong MySQL Server:
Trong đó, dulieu1 là tên database mà mình cần tạo. Thông báo thực hiện thành công sẽ có dạng này:
01
|
Query OK, 1 row affected (0.00 sec
|
Để chắc chắn là bạn đã có database vừa tạo trên server, hãy gõ lệnh:
Kết quả trả về:
01
02
03
04
05
06
07
08
09
|
+--------------------+
| Database |
+--------------------+
| information_schema |
| dulieu1 |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
|
2.2) Lệnh tạo database user
Để tăng khả năng bảo mật, MySQL không đơn phương cho phép ứng dụng gửi dữ liệu trực tiếp vào ổ cứng mà sẽ thông qua quyền kiểm soát của một database user. Và để tránh việc sử dụng user root làm user thực hiện lệnh kết nối vì lý do bảo mật, chúng ta sẽ cần tạo một database user khác để quản lý database dulieu1 mà chúng ta vừa tạo ở trên.
Lệnh tạo database user như sau:
01
|
CREATE USER dulieu1_user@localhost;
|
Trong đó, localhost
là hostname của bạn, bạn không nên thay đổi cái này trừ khi bạn biết mình đang làm gì.
Bây giờ chúng ta đã có một user mang tên dulieu1_user
, bạn có thể đặt tên bất kỳ nhưng mình đặt như thế này cho dễ nhớ.
Để chắc chắn bạn đã có user vừa tạo trên server, hãy kiểm tra bằng cách chạy lệnh sau:
01
|
SELECT User FROM mysql. user ;
|
Kết quả trả về:
01
02
03
04
05
06
07
08
09
|
+--------------+
| User |
+--------------+
| dulieu1_user |
| root |
| root |
| root |
+--------------+
4 rows in set (0.00 sec)
|
Đã gọi là user thì phải có password, bây giờ chúng ta sẽ thiết lập password cho user dulieu1_user vừa tạo bằng lệnh sau:
01
|
SET PASSWORD FOR dulieu1_user@localhost= PASSWORD ( "123456" );
|
Trong đó, 123456 ở cuối dòng lệnh là mật khẩu mà bạn cần thiết lập cho user dulieu1_user.
Bây giờ bạn có thể thoát ra khỏi MySQL Server bằng lệnh exit;
và thử đăng nhập vô MySQL Server bằng user mà bạn vừa tạo.
01
|
mysql -u dulieu1_user -p123456
|
Sau đó gõ lệnh SHOW DATABASES;
xem danh sách database mà nó đang sở hữu.
Bạn có thể thấy là nó chỉ có đúng một database mặc định tên là
information_schema chứ không hề có database mang tên
dulieu1. Và nếu nó chưa hiển thị database cần kết nối ở đây thì cũng đồng nghĩa với việc bạn sẽ bị báo lỗi kết nối database khi
cài đặt WordPress.
Lý do là ở trên chúng ta chỉ vừa tạo database và database user mà thôi chứ chưa hề cấp quyền cho user dulieu1_user sử dụng database dulieu1. Ở phần dưới chúng ta sẽ làm công việc này.
2.3) Cấp quyền cho database user truy cập vào database
Hãy thoát ra và đăng nhập vào lại MySQL Server với tài khoản root nhé. Bây giờ ở đây chúng ta sẽ cần cấp quyền cho user tên là dulieu1_user có thể kết nối vào database tên dulieu1, thì chúng ta sẽ có lệnh như sau:
01
|
GRANT ALL PRIVILEGES ON dulieu1.* TO dulieu1_user@localhost IDENTIFIED BY '123456' ;
|
Hãy nhớ là nếu nó hiển thị Query OK, 0 rows affected (0.00 sec)
thì mới là thành công nhé.
Trong đó, 123456 chính là mật khẩu của user dulieu1_user.
Cấp quyền xong, hãy gõ lệnh sau để nó tái tạo lại MySQL Server để cập nhật.
Ok, bây giờ database user tên dulieu1_user đã có quyền truy cập database tên là dulieu1 rồi. Bạn có thể thử login vào MySQL Server với database user vừa tạo và ấn lệnh SHOW DATABASES
xem nó có hiển thị database vừa được cấp quyền không.
III. Tối ưu MySQL
Mặc định khi cài MySQL vào nó chưa được tối ưu nếu bạn gửi nhiều request cùng lúc, bạn hãy mở file /etc/my.cnf lên và chèn đoạn sau vào dưới cuối của file đó:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
[mysqld]
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 500M
tmp_table_size=20M
max_heap_table_size=20M
thread_cache_size = 64
|
Sau đó khởi động lại MySQL với lệnh service mysqld restart
.
IV. Cài đặt phpMyAdmin
Có thể bạn sẽ cảm thấy hơi khó khăn nếu sử dụng các dòng lệnh để thao tác những tác vụ cần thiết như tạo database, sửa dữ liệu,…nên có thể bạn sẽ khá cần đến công cụ phpMyAdmin để quản trị database dễ hơn.
Chạy lệnh sau để cài đặt phpMyAdmin:
Mở file /etc/httpd/conf.d/phpMyAdmin.conf lên và tìm:
01
02
03
04
05
06
07
|
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
|
Sửa 127.0.0.1 thành IP máy tính của bạn vì mặc định nó chỉ có thể truy cập bởi mạng nội bộ trên máy chủ.
Sau đó là khởi động lại Apache.
Bây giờ bạn có thể truy cập vào phpMyAdmin với đường dẫn http://example.com/phpmyadmin. Bạn có thể truy cập với bất kỳ domain nào có trên VirtualHost.
Nếu bạn muốn thay đường dẫn từ http://domain/phpMyAdmin thành http://domain/hehe thì sửa 2 đoạn ở đầu file /etc/httpd/conf.d/phpMyAdmin.conf:
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
thành
Alias /hehe /usr/share/phpMyAdmin
Alias /huhu /usr/share/phpMyAdmin
Và khởi động lại Apache:
Lời kết
Vậy là bây giờ ta đã có một webserver có đầy đủ các chức năng để chạy được một website WordPress rồi, còn chần chờ gì nữa mà không cài ngay một website WordPress lên nào. Ở phần sau, mình sẽ hướng dẫn bạn cách cài một website WordPress bằng cách nhanh nhất trên VPS.