Cài đặt Apache
Bạn có thể dễ dàng cài đặt Apache bằng cách cài Apache webserver từ chương trình installer của WAMP Stack, WampServer hoặc XAMPP. Tuy nhiên ở đây mình chỉ cài Apache từ source để tiện cho việc tìm hiểu, tùy chỉnh việc cài đặt và cấu hình.
Bước 1: Download Apache từ source
Download Apache source từ Apache Lounge phiên bản 64 bit hoặc 32 bit. Phiên bản mới nhất của Apache hiện tại là 2.4.16, file cần download là httpd-2.4.16-win64-VC14.zip.
Bản Apache VC14 được build trên Visual C++ Redistributable for Visual Studio 2015 (vc_redist_x64/86.exe) nên bạn cần phải cài đặt nó trên Windows. Nếu bạn muốn cài đặt Apache trên Win XP thì hãy dùng bản Apache VC10 vì bàn VC14 không hỗ trợ Win XP.
httpd-2.4.16-win64-VC14.zip.Bước 2: Cài đặt Apache
Sau khi download Apache từ source, hãy giải nén thư mục Apache24 vào ổ C. Vì source này được build mặc định cho ổ C, nếu như bạn muốn cài đặt nó trên ổ D hoặc USB hay bất kỳ đâu thì bạn cần phải thay đổi lại cấu hình cho DocumentRoot… Vì các cấu hình hơi rắc rối nên mình sẽ để nó ở ổ C và để tên folder là Apache24 theo mặc định.
Như vậy là quá trình cài đặt Apache đã hoàn thành. Để khởi động Apache, vào thư mục C:\Apache24\binvà chạy file httpd.exe.
Bây giờ bạn có thể vào http://localhost để kiểm tra. Nếu như bạn nhìn thấy dòng “It works!” là bạn đã cài đặt và chạy Apache thành công.
Có thể bạn sẽ nhìn thấy thông báo này khi chạy file httpd.exe:
AH00558: httpd.exe: Could not reliably determine the server’s fully qualified domain name, using fe80::b93e:e93c:a570:f94a. Set the ‘ServerName’ directive globally to suppress this message
Đây chỉ là cảnh báo chứ không phải là lỗi. Để fix nó thì bạn cần phải gán giá trị cho mục ServerNametrong file C:\Apache24\conf\httpd.conf như sau:
#ServerName www.example.com:80
Bỏ dấu “#” phía trước và thay đổi giá trị thành “localhost” hoặc domain của bạn.
ServerName localhost
Bây giờ bạn có thể tắt cửa sổ httpd.exe và chạy lại file này để khởi động Apache xem thử còn lỗi không nhé.
http://localhost để kiểm tra. Nếu như bạn nhìn thấy dòng “It works!” là bạn đã cài đặt và chạy Apache thành công.
AH00558: httpd.exe: Could not reliably determine the server’s fully qualified domain name, using fe80::b93e:e93c:a570:f94a. Set the ‘ServerName’ directive globally to suppress this message
#ServerName www.example.com:80
ServerName localhost
Bật mod_rewrite trong Apache trên localhost
Để sử dụng được Wordpress Permalink hoặc rewrite cho htaccess thì bạn cần phải bật mod_rewrite trên localhost. Để bật mod_rewrite trong Apache, bạn cần mở file C:\Apache24\conf\httpd.conf và tìm đoạn sau:
#LoadModule rewrite_module modules/mod_rewrite.so
Xóa dấu “#” ở trước để bật module này nhé. Sau khi xóa sẽ được như sau:
LoadModule rewrite_module modules/mod_rewrite.so
Tiếp theo bạn cần tìm đến đoạn như sau:
<Directory “c:/Apache24/htdocs”>
………………….
AllowOverride None
………………….
</Directory>
Sửa AllowOverride None thành AllowOverride All như sau:
<Directory “c:/Apache24/htdocs”>
………………….
AllowOverride All
………………….
</Directory>
Restart Apache và kiểm tra. Bạn cũng có thể bật mod_rewrite trong XAMPP, WAMP, Appserv bằng cách làm tương tự.
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so
<Directory “c:/Apache24/htdocs”>
………………….
AllowOverride None
………………….
</Directory>
………………….
AllowOverride None
………………….
</Directory>
AllowOverride None thành AllowOverride All như sau:
<Directory “c:/Apache24/htdocs”>
………………….
AllowOverride All
………………….
</Directory>
………………….
AllowOverride All
………………….
</Directory>
Bước 3: Cài đặt service cho Apache
Bạn có thể cài đặt để khởi động, restart, stop Apache thông qua một service của Windows. Bạn cũng có thể khởi động Apache cùng với máy tính nếu bạn muốn.
Mở Command Prompt hoặc cmd (Run as Administrator) và sử dụng các lệnh sau:
cd C:\Apache24\bin
httpd -k install
Như ở trên, bạn cần đi đến thư mục bin của Apache (C:\Apache24\bin) và sử dụng lệnh httpd -k install để cài đặt một service. Nếu thành công thì bạn sẽ nhìn thấy thông báo như sau:
Installing the ‘Apache2.4‘ service
The ‘Apache2.4’ service is successfully installed.
Testing httpd.conf….
Errors reported here must be corrected before the service can be started.
Theo mặc định thì Apache sẽ cài đặt service là “Apache2.4“. Bạn có thể cài đặt tên service theo ý muốn bằng cách sử dụng lệnh sau:
httpd -k install -n "ten-service"
Bạn có thể start, stop hoặc restart Apache trên Windows bằng cách start, stop hoặc restart service này ở Control Panel > Administrative Tools > Services. Hoặc bạn có thể sử dụng lệnh để start và stop service của Apache bằng cách mở Command Prompt hoặc cmd (Run as Administrator) và sử dụng các lệnh sau:
# start Apache
net start Apache2.4
# stop Apache
net stop Apache2.4
Mặc định thì service của Apache sẽ tự động khởi động cùng với Windows. Điều đó có nghĩa là Apache sẽ tự khởi động khi bạn bật máy tính. Nếu bạn muốn khởi động Apache thủ công, nhấn đúp vào service và thay đổi mục Startup type thành Manual.
Để gỡ service này, sử dụng lệnh sau:
sc delete Apache2.4
Như vậy là bạn đã cài đặt Apache trên Windows xong. Tiếp theo bạn cần cài đặt và cấu hình cho PHP hoạt động với Apache.
httpd -k install để cài đặt một service. Nếu thành công thì bạn sẽ nhìn thấy thông báo như sau:
Installing the ‘Apache2.4‘ service
The ‘Apache2.4’ service is successfully installed.
Testing httpd.conf….
Errors reported here must be corrected before the service can be started.
The ‘Apache2.4’ service is successfully installed.
Testing httpd.conf….
Errors reported here must be corrected before the service can be started.
Cài đặt PHP
PHP có sẵn để cài đặt trên Windows và nó cũng được build với VC9, VC11, VC14 của Apache Lounge. PHP có cả 2 bản 32 bit và 64 bit chứ không giống như XAMPP chỉ có 32 bit. PHP không chỉ hỗ trợ cho Apache mà còn hỗ trợ cho Nginx và IIS nữa nhé.
Bước 1: Download PHP cho Windows
Để cài đặt PHP trên Windows, bạn cần phải download PHP 5 hoặc PHP 7 cho Windows về máy. Sau đó giải nén vào một thư mục tùy ý và copy vào ổ C. Ở đây mình sẽ dùng bản PHP 7 (64 bit) và giải nén ra thư mục là php.
Nếu bạn nào muốn sử dụng PHP như là một module (mod_php) của Apache (Apache Handlers) thì download bản Thread Safe. Nếu bạn muốn sử dụng PHP thông qua FastCGI thì download bản Non Thread Safe.
Cũng như Apache Lounge, PHP được build với VC9, VC11 và VC14 nên bạn cần phải cài đặt các phần mềm tương ứng là Visual C++ 2008 SP1 Redistributable Package (32 bit hoặc 64 bit), Visual C++ Redistributable for Visual Studio 2012 và Visual C++ Redistributable for Visual Studio 2015. Nếu bạn muốn cài đặt Apache và PHP trên Windows XP, bạn chỉ có thể sử dụng Apache VC10 và PHP 5.4 bản VC9.
Bước 2: Tạo file php.ini
Sau khi giải nén và copy thư mục php vào ổ C, bạn cần phải tạo file php.ini để cấu hình cho PHP. Trong thư mục C:\php sẽ có file php.ini-production, bạn nên copy file này và đổi tên thành php.ini nhé.
Bước 3: Bật module cho PHP
Sau khi đã tạo file php.ini thì bây giờ bạn có thể cấu hình cho PHP theo ý bạn muốn. Ở đây mình chỉ hướng dẫn bạn bật các module cần thiết để chạy trang web.
Để hỗ trợ các tính năng hay các function của PHP mà bạn cần, bạn phải bật các PHP modules (extension) tương ứng. Ví dụ để sử dụng được CURL trong PHP thì bạn phải bật php_curl hoặc muốn kết nối tới MySQL với PHP thì phải bật php_mysqli vậy.
Các modules (extension) của PHP nằm trong thư mục ext. Để bật các modules này thì bạn cần phải cấu hình file php.ini để khai báo thư mục ext và các file modules.
Mở file php.ini và tìm đoạn sau:
; extension_dir = “ext”
Xóa dấu “;” ở trước đoạn trên:
extension_dir = “ext”
Để bật các modules (extensions) cho PHP, tìm đến những đoạn như ;extension=php_bz2.dll và tương ứng với module mà bạn muốn bật, sau đó xóa bỏ dấu “;” ở trước. Ví dụ ở đây mình sẽ bật module gd, curl, mysqli, soap thì mình sẽ bật như sau:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysqli.dll
extension=php_soap.dll
Như vậy là bạn đã hoàn thành việc cài đặt PHP trên Windows rồi. Bây giờ chỉ việc cấu hình để Apache có thể chạy được PHP thôi.
; extension_dir = “ext”
extension_dir = “ext”
;extension=php_bz2.dll và tương ứng với module mà bạn muốn bật, sau đó xóa bỏ dấu “;” ở trước. Ví dụ ở đây mình sẽ bật module gd, curl, mysqli, soap thì mình sẽ bật như sau:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysqli.dll
extension=php_soap.dll
extension=php_gd2.dll
extension=php_mysqli.dll
extension=php_soap.dll
Cấu hình Apache chạy PHP
Để Apache có thể chạy được PHP, bạn cần phải cấu hình cho Apache sử dụng mod_php hoặc sử dụng CGI để xử lý PHP. Ở đây mình sẽ hướng dẫn bạn cấu hình để Apache có thể chạy PHP với hai phương pháp trên.
Nếu bạn muốn sử dụng mod_php, bạn cần phải tải về phiên bản Non Thread Safe (NTS) của PHP. Nếu bạn muốn sử dụng FastCGI, bạn cần phải tải về phiên bản Thread Safe (TS).
mod_php, bạn cần phải tải về phiên bản Non Thread Safe (NTS) của PHP. Nếu bạn muốn sử dụng FastCGI, bạn cần phải tải về phiên bản Thread Safe (TS).Sử dụng mod_php (Apache 2.0 Handler)
Cách dễ dàng nhất để Apache chạy PHP là sử dụng mod_php. PHP sẽ được xử lý thông qua một module của PHP, ngay ở bên trong Apache và không cần đến một máy chủ ở bên ngoài.
Sử dụng mod_php là nhanh hơn nhiều so với các máy chủ xử lý PHP khác như CGI, FastCGI nhưng nó cũng có nhiều nhược điểm khác.
Để cấu hình cho Apache xử lý PHP sử dụng mod_php, bạn cần phải cấu hình trong file C:\Apache24\conf\httpd.conf. Mở file httpd.conf và thêm đoạn sau vào cuối cùng của file:
LoadModule php5_module "c:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"
Trong thư mục C:/php của bạn sẽ có một file dạng như “php5apache2_4.dll”, bạn cần phải thay thế tên file để có một cấu hình phù hợp cho bạn. Nếu bạn đang sử dụng PHP 7, thì bạn cần phải thay đổi “php5_module” thành “php7_module” và file php7apache2_4.dll.
LoadModule php7_module "c:/php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"
Cấu hình trên sẽ cho phép mod_php được load và sẽ xử lý PHP cho tất cả file nào có chứa .php. Các file như vidu.php.txt cũng sẽ được xử lý như PHP, điều này là không cần thiết và gây ra lãng phí. Để cấu hình cho Apache chỉ LoadModule mod_php cho các file có đuôi cuối cùng là .php thì bạn cần sửa lại như sau:
<FilesMatch \.php$>
LoadModule php7_module "c:/php/php7apache2_4.dll"
SetHandler application/x-httpd-php
</FilesMatch>
# configure the path to php.ini
PHPIniDir "C:/php"
Lưu file httpd.conf và restart Apache. Để kiểm tra Apache đã chạy được PHP hay chưa, bạn cần tạo một file phpinfo.php trong C:\Apache24\htdocs với nội dung:
<?php phpinfo(); ?>
Sau đó vào http://localhost/phpinfo.php để kiểm tra.
http://localhost/phpinfo.php để kiểm tra.Cấu hình Apache chạy PHP thông qua FastCGI
FastCGI là gì? FastCGI là một giao thức của các chương trình với một máy chủ web. Đối với Apache và PHP thì FastCGI là một cổng giao tiếp giữa Apache và PHP.
Để cấu hình Apache chạy PHP thông qua FastCGI, bạn cần phải sử dụng các module hỗ trợ như mod_fcgid.
- Đầu tiên bạn cần download mod_fcgid và giải nén để có file mod_fcgid.so. Bạn cần phải phiên bản phù hợp với bản Apache bạn đang dùng. Ví dụ bạn đang dùng Apache VC14 64 bit thì download bản mod_fcgid VC14 64 bit nhé.
- Sau khi giải nén thì copy file mod_fcgid.so vào thư mục modules của Apache tại C:\Apache24\modules.
- Mở file cấu hình C:\Apache24\conf\httpd.conf và thêm đoạn sau vào cuối file:
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
FcgidInitialEnv TMP "C:/WINDOWS/Temp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 50
FcgidMaxRequestLen 8131072
# Location php.ini:
FcgidInitialEnv PHPRC "c:/php"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
<Files ~ "\.php$>"
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
</Files>
Bạn chỉ được sử dụng một trong hai mod_fcgid hoặc mod_php để xử lý PHP thôi nhé.
- Trong file httpd.conf, tìm dòng sau và thêm ExecCGI vào cuối dòng đó:
Options Indexes FollowSymLinks ExecCGI
Sau khi chỉnh sửa thì bạn sẽ được như vầy:
<Directory "c:/Apache24/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks ExecCGI
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
Nếu bạn không làm bước này, có thể bạn sẽ gặp lỗi 403 Forbidden.
ForbiddenYou don’t have permission to access /phpinfo.php on this server.
- Restart Apache.
Để kiểm tra Apache đã chạy được PHP hay chưa, bạn cần tạo một file phpinfo.phptrong C:\Apache24\htdocs với nội dung:
<?php phpinfo(); ?>
Sau đó vào http://localhost/phpinfo.php để kiểm tra.

Nếu bạn thấy mục “Server API” là “CGI/FastCGI” thì bạn đã cấu hình Apache chạy PHP sử dụng FastCGI thành công.
Như vậy là bạn đã hoàn thành việc cấu hình để Apache chạy PHP thông qua mod_php hoặc FastCGI.
LoadModule fcgid_module modules/mod_fcgid.so FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" FcgidInitialEnv SystemRoot "C:/Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:/WINDOWS/Temp" FcgidInitialEnv TMP "C:/WINDOWS/Temp" FcgidInitialEnv windir "C:/WINDOWS" FcgidIOTimeout 64 FcgidConnectTimeout 16 FcgidMaxRequestsPerProcess 1000 FcgidMaxProcesses 50 FcgidMaxRequestLen 8131072 # Location php.ini: FcgidInitialEnv PHPRC "c:/php" FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 <Files ~ "\.php$>" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php </Files>
Bạn chỉ được sử dụng một trong hai mod_fcgid hoặc mod_php để xử lý PHP thôi nhé.
Options Indexes FollowSymLinks ExecCGI
Sau khi chỉnh sửa thì bạn sẽ được như vầy:
<Directory "c:/Apache24/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks ExecCGI
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
Nếu bạn không làm bước này, có thể bạn sẽ gặp lỗi 403 Forbidden.
ForbiddenYou don’t have permission to access /phpinfo.php on this server.
http://localhost/phpinfo.php để kiểm tra.
Nếu bạn thấy mục “Server API” là “CGI/FastCGI” thì bạn đã cấu hình Apache chạy PHP sử dụng FastCGI thành công.
Cài đặt MySQL từ source
Mục đích của việc cài bản này là để bạn có thể dễ dàng quản lý với các source khác như Nginx, Apache và PHP. Nếu như bạn đã cài Nginx hoặc Apache và PHP từ source thì việc cài MySQL từ source là hợp lý nhất.
Đầu tiên bạn cần tạo một thư mục để lưu trữ tất cả source của Nginx, Apache và PHP ở một nơi, đương nhiên là MySQL cũng ở đây luôn. Ở đây mình sẽ tạo thư mục Web trên ổ đĩa D nhé.
- Tải bản MySQL ZIP Archive cho 64 bit hoặc 32 bit phù hợp với máy tính của bạn.
- Sau khi tải về, bạn giải nén sẽ được một thư mục như mysql-xxx. Đổi tên thư mục này thành mysql cho nó đẹp rồi copy vào thư mục D:\Web vừa tạo ở trên.
- Trong thư mục D:\Web\mysql có một file là my-default.ini, bạn nên đổi lại thành my.ini.
Bây giờ bạn cần đi đến thư mục bin trong D:\Web\mysql để cài đặt MySQL, bao gồm cả việc thực hiện một số lệnh bảo mật.
Mở Command Prompt hoặc run cmd (Run as administrator):
cd /d D:\Web\mysql\bin
Ở đây mình sẽ hướng dẫn bạn cài đặt MySQL qua 2 lệnh mysqld và mysql_install_db.
Cài đặt MySQL bằng lệnh mysqld:
mysqld --install MySQL5.6 --defaults-file=D:\Web\mysql\my.ini
Nếu bạn thấy “Service successfully installed.“ là bạn đã cài MySQL thành công rồi.
Với dòng lệnh trên, MySQL sẽ cài đặt một Service với tên là MySQL5.6 và với file cấu hình là D:\Web\mysql\my.ini.
Hoặc bạn có thể cài đặt MySQL bằng lệnh mysql_install_db:
mysql_install_db.exe --datadir=D:\Web\Database --service=MySQL5.6 --password=mat-khau-cua-tui --socket=MySQL
Khi sử dụng lệnh mysql_install_db, bạn có rất nhiều tùy chọn như thiết lập mật khẩu, tên Services. Quan trọng là bạn sẽ tạo được tên socket để có thể sử dụng PHP để kết nối đến MySQL thông qua gói mở rộng php_mysqli.dll. Bạn cũng có thể chỉ định thư mục chứ các tập tin cơ sở dữ liệu của bạn ở bất cứ đâu mà bạn muốn.
Bạn có thể dễ dàng khởi động MySQL, hoặc restart, hoặc stop MySQL bằng cách start, restart hay stop service này trong Control Panel > Administrative Tools > Services. Service MySQL5.6 này cũng có thể dễ dàng start hoặc stop bằng lệnh, mở Command Prompt hoặc run cmd (Run as administrator):
net start MySQL5.6
net stop MySQL5.6
Mặc định thì MySQL cài đặt service này sẽ tự động start cùng với máy tính. Nếu bạn muốn khởi động MySQL thủ công, nhấp đôi chuột vào MySQL5.6 trong Services và chọn Manual tại mục Startup type.
Vậy là bạn đã cài đặt MySQL xong và bước tiếp theo là cần thực hiện một số việc để bảo mật MySQL.
mysql_install_db:php_mysqli.dll. Bạn cũng có thể chỉ định thư mục chứ các tập tin cơ sở dữ liệu của bạn ở bất cứ đâu mà bạn muốn.Bảo mật MySQL trên Windows
Để bảo mật cho MySQL, theo khuyến nghị từ MySQL thì bạn nên thiết lập mật khẩu cho user root, loại bỏ anonymous users, test database.
Trong D:\Web\mysql\bin có file mysql_secure_installation.pl, bạn có thể bảo mật bằng cách chạy file này bằng Perl. Nếu bạn không muốn cài đặt Perl vào máy, bạn có thể sử dụng các lệnh dưới đây để bảo mật cho MySQL cũng được.
Bạn cần khởi động MySQL và sử dụng lệnh sau để login vào MySQL với user root:
mysql -u root -p
Nó sẽ hiện “Enter password:” đòi bạn nhập mật khẩu để login vào root, nhưng bạn chưa có nên Enter luôn là được.
Để thiết lập mật khẩu cho root
Có nhiều cách để thiết lập mật khẩu cho user root của MySQL, ở đây mình sẽ dùng lệnh SET PASSWORD
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('matkhau-moi');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('matkhau-moi');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('matkhau-moi');
Nhớ đổi lại matkhau-moi theo ý của bạn nhé. Bạn có thể kiểm tra mật khẩu đã được thiết lập cho user root của MySQL chưa bằng cách exit và restart MySQL và đăng nhập lại.
exit
net stop MySQL5.6
net start MySQL5.6
mysql -u root -p
Nhập mật khẩu vừa thiết lập vào mục “Enter password:” và enter, nếu bạn login được như sau là bạn đã thiết lập mật khẩu thành công:
mysql: Unknown OS character set ‘cp1258’.
mysql: Switching to the default character set ‘latin1’.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, 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>
mysql: Unknown OS character set ‘cp1258’.
mysql: Switching to the default character set ‘latin1’.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 MySQL Community Server (GPL)
mysql: Switching to the default character set ‘latin1’.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, 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.
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>
Loại bỏ các user ẩn danh (anonymous users)
Bạn có thể thiết lập mật khẩu cho các user ẩn danh, nhưng mình nghĩ các user này cũng chẳng để làm gì. Nên loại bỏ hết ra cho nó an toàn.
Để loại bỏ các user ẩn danh (anonymous users), sử dụng lệnh sau:
DELETE FROM mysql.user WHERE User='';
Nếu bạn thấy “Query OK, 1 row affected (0.00 sec)” thì đã có 1 user bị loại bỏ.
Loại bỏ các database thử nghiệm
Mặc định thì MySQL có các database để thử nghiệm, các database này có tên bắt đầu là “test”. Bạn có thể dễ dàng loại bỏ các database này với lệnh sau:
DELETE FROM mysql.db WHERE Db LIKE 'test%';
DROP DATABASE test;
FLUSH PRIVILEGES;
Nếu bạn thấy “Query OK, 2 rows affected (0.00 sec)” thì đã có 2 cái bị loại bỏ.
Vậy là bạn đã hoàn thành việc cài đặt và bảo mật MySQL trên Windows, bây giờ bạn có thể trải nghiệm MySQL ngon lành rồi. Bạn có thể cài đặt phpMyAdmin để quản lý MySQL thông qua một trình duyệt web.
Cài đặt phpMyAdmin
Đầu tiên bạn cần phải download phpMyAdmin mới nhất. Vì nó chưa có ngôn ngữ tiếng Việt nên mình chỉ chọn phiên bản English thôi. Nếu bạn dùng Windows thì download bản .zip cho dễ giải nén nhé.
Chú ý: nếu bạn dùng PHP 5.3 thì bạn chỉ có thể cài bản phpMyAdmin 4.4.15 hoặc cũ hơn. Bạn vào trang download để biết thêm chi tiết.
# cd /usr/src
# wget https://files.phpmyadmin.net/phpMyAdmin/4.5.0.1/phpMyAdmin-4.5.0.1-english.tar.gz
Giải nén và copy thư mục này vào thư mục root HTML của bạn. Giống như bạn cài đặt WordPress hoặc XenForo vậy.
# tar zxf phpMyAdmin-4.5.0.1-english.tar.gz
# cp -avr phpMyAdmin-4.5.0.1-english /var/www/html
/var/www/html là thư mục root của trang web bạn, nó cũng là nơi bạn cài đặt WordPress tùy theo nơi bạn đang dùng.
Bây giờ bạn cần đi đến /var/www/html và rename thư mục phpMyAdmin-4.5.0.1-english vừa copy vào. Mục đích của việc rename là để cho nó dễ nhớ và tránh việc người khác có thể biết được URL của phpMyAdmin. Ở đây mình sẽ rename nó thành phpmyadmin0201.
# cd /var/www/html
# mv phpMyAdmin-4.5.0.1-english phpmyadmin0201
Vậy là đã xong việc cài đặt, bây giờ bạn có thể vào http://ip-cua-ban/phpmyadmin0201 hoặc http://localhost/phpmyadmin0201 nếu bạn đang dùng localhost trên Windows.
http://ip-cua-ban/phpmyadmin0201 hoặc http://localhost/phpmyadmin0201 nếu bạn đang dùng localhost trên Windows.Cấu hình phpMyAdmin
Để đăng nhập và sử dụng phpMyAdmin, bạn cần phải cài đặt MySQL và đặt mật khẩu cho user root. Nếu bạn login vào một tài khoản mà không có mật khẩu, phpMyAdmin sẽ bảo lỗi như sau:
Login without a password is forbidden by configuration (see AllowNoPassword)
Bạn cũng có thể cấu hình lại để cho phép login với user không cần mật khẩu nhưng mà làm như vậy thì không an toàn, không khuyến khích.
Login without a password is forbidden by configuration (see AllowNoPassword)
Tạo file config.inc.php
config.inc.php là file cấu hình của phpMyAdmin nhưng mặc định thì nó không được tạo sẵn. Bạn phải tạo ra nó thủ công, cách tốt nhất là nên copy file config.sample.inc.php và đổi lại thành config.inc.php.
# cd /var/www/html/phpmyadmin0201
# cp config.sample.inc.php config.inc.php
Vậy là bạn đã tạo file config.inc.php, bạn có thể thay đổi một vài hoặc tất cả cấu hình của phpMyAdmin ở trong đó.
Sau khi MySQL đã được cài đặt, bây giờ bạn có thể đăng nhập vào phpMyAdmin với user root và mật khẩu mà bạn đã đặt.
Có thể bạn sẽ gặp lỗi như sau:
The configuration file now needs a secret passphrase (blowfish_secret).
Để fix lỗi này, bạn cần mở file config.inc.php và tìm đến đoạn sau và nhập giá trị cho nó, bạn có thể nhập một vài ký tự bất kỳ:
$cfg[‘blowfish_secret’] = ”; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Sau khi nhập bạn sẽ có như sau:
$cfg[‘blowfish_secret’] = ‘dfgdfggshfhas7aew9389‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Refresh và đăng nhập lại vào phpMyAdmin, bạn sẽ thấy lỗi này biến mất. Nếu bạn không đặt nhập được thì xóa cache trình duyệt đi nhé.
Và cũng có thể bạn sẽ gặp một cảnh báo như sau:
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to ‘Operations’ tab of any database to set it up there.
Chú ý: đây không phải là lỗi, nhưng bạn cũng nên cấu hình để sử dụng đầy đủ tính năng của phpMyAdmin. Đối với những bạn cài đặt phpMyAdmin trên host thì dừng lại tại đây, vì bạn không thể tiếp tục cấu hình nếu như bạn không có quyền root của MySQL.
Để loại bỏ cảnh báo này, bạn cần phải import file create_tables.sql trong thư mục sql. Bạn có thể import file create_tables.sql bằng cách nhấn vào mục Import trong phpMyAdmin và chọn file create_tables.sql trong thư mục sql.
Nếu bạn gặp lỗi #1100 như sau:
Error
SQL query: DocumentationEdit Edit
SELECT `comment`
FROM `phpmyadmin`.`pma__column_info`
WHERE db_name = ‘hi’
AND table_name = ”
AND column_name = ‘(db_comment)’
MySQL said: Documentation
#1100 – Table ‘pma__column_info’ was not locked with LOCK TABLES
Thì bạn có thể fix lỗi này bằng cách mở file config.inc.php và bỏ dấu “//” ở phía trước dòng sau:
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
Bỏ dấu “//” ở trước mỗi dòng có giá trị bắt đầu với pma__.
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Bỏ dấu “//” ở trước 2 dòng dưới đây và thay thế giá trị thành user và mật khẩu MySQL của bạn, có thể là root hoặc một user nào đó.
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
Nếu như bạn không sử dụng user root thì bạn cần phải tạo ra user và mật khẩu mới như ở trên. Đăng nhập vào MySQL bằng lệnh sau:
sudo mysql -u root -p
Nếu đăng nhập MySQL thành công, bạn sẽ nhìn thấy như sau:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 739
Server version: 10.1.9-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Tiếp theo, bạn cần phải tạo ra user và mật khẩu mới như đã khai báo ở trên. Bạn nên thay đổi mật khẩu khác để an toàn hơn.
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
Bây giờ bạn cần phải thiết lập đặc quyền cho user này, sử dụng lệnh sau:
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
Tiếp tục sử dụng lệnh dưới đây để thiết lập cho user này có đặc quyền đối với database phpmyadmin:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
Bây giờ bạn cần logout ra khỏi phpMyAdmin và đăng nhập lại để kiểm tra.
Như vậy là bạn đã hoàn thành việc cài đặt phpMyAdmin trên Ubuntu, CentOS và Windows. Mình nghĩ rằng không cần phải bảo mật thêm gì cả vì thư mục phpMyAdmin và mật khẩu root đều là của bạn.
The configuration file now needs a secret passphrase (blowfish_secret).
$cfg[‘blowfish_secret’] = ”; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg[‘blowfish_secret’] = ‘dfgdfggshfhas7aew9389‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to ‘Operations’ tab of any database to set it up there.
Or alternately go to ‘Operations’ tab of any database to set it up there.
Error
SQL query: DocumentationEdit Edit
SELECT `comment`
FROM `phpmyadmin`.`pma__column_info`
WHERE db_name = ‘hi’
AND table_name = ”
AND column_name = ‘(db_comment)’
MySQL said: Documentation
SELECT `comment`
FROM `phpmyadmin`.`pma__column_info`
WHERE db_name = ‘hi’
AND table_name = ”
AND column_name = ‘(db_comment)’
MySQL said: Documentation
#1100 – Table ‘pma__column_info’ was not locked with LOCK TABLES
config.inc.php và bỏ dấu “//” ở phía trước dòng sau:pma__.phpmyadmin:



0 Nhận xét