Cài đặt apache php mysql trên windows

Đối với hệ điều hành Windows chúng ta sẽ dễ dàng cài đặt Apache + MySQL + PHP thông qua các gói cài đặt đã được cấu hình sẵn Apache + MySQL + PHP. Tuy nhiên trong hệ điều hành Linux chúng ta thường chọn cách cài đặt riêng lẽ từng gói trên.

 Tại sao chúng ta thường triển khai ứng dụng web PHP trên Linux?

  • Nhiều cuộc thử nghiệm đã chứng minh rằng Linux với định dạng ext4 hoạt động tốt hơn Windows với định dạng NTFS và do đó PHP khi chạy trên Linux sẽ có tốc độ thực thi nhanh hơn so với trên Windows.
  • Không phải tốn thêm chi phí cho license của hệ điều hành, dễ dàng nâng cấp các bản cập nhật.
  • Bảo mật tốt hơn thông qua cơ chế phân quyền của hệ điều hành.
  • Tiêu tốn ít tài nguyên (RAM + disk storage) so với hệ điều hành Windows.

Các biến thể phổ biến của hệ điều hành Linux thường được sử dụng để triển khai ứng dụng web PHP:

  • CentOS
  • Ubuntu
  • Debian
  • Redhat Enterpise Linux

Cài đặt apache php mysql trên windows

Trong bài viết này chúng ta sẽ tìm hiểu cách cài đặt LAMP trên hệ điều hành CentOS.  Bạn cần cài đặt hệ điều hành CentOS lên VPS hoặc dedicated server để có thể thực hiện được bài lab này. Để có thể cài đặt được LAMP bạn cần phải có quyền root.

Trước khi cài đặt bạn nên cập nhật respository

[root@ecode ~]# yum install updates

Bước 1: Cài đặt Apache

[root@ecode ~]# yum install httpd

Sau khi cài đặt xong bạn có thể khởi động Apache thông qua lệnh sau

[root@ecode ~]# service httpd start

Để kiểm tra Apache đã chạy thành công chúng ta sẽ gõ địa chỉ ip của server lên trình duyệt. Ví dụ: http://12.56.123.32. Nếu như bạn thấy trang mặc định của Apache hiện lên nghĩa là Apache đã được cài đặt thành công. Nếu như bạn không biết WAN IP của server bạn có thể sử dụng lệnh sau để lấy IP

[root@ecode ~]# ifconfig eth0 | grep inet | awk '{ print $2 }'

Trong trường hợp webserver đã được thiết lập firewall chặn cổng 80, bạn sẽ không thể truy cập vào trang web mặc định của Apache. Bạn có thể mở cổng 80 thông qua lệnh sau:

[root@ecode ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@ecode ~]# firewall-cmd --reload

Bước 2: Cài đặt MySQL server thông qua lệnh sau:

[root@ecode ~]# yum install mysql-server

Start MySQL server qua lệnh sau:

[root@ecode ~]# service mysqld start

Sau khi cài đặt thành công bạn nên đổi lại mật khẩu MySQL:

[root@ecode ~]# /usr/bin/mysql_secure_installation

MySQL sẽ hỏi bạn có muốn xóa anonymous users và disable login từ xa và một số tùy chọn khác như xóa database test và reload lại quyền hạn. Bạn hãy chọn y (yes)

Bước 3: Cài đặt PHP

[root@ecode ~]# yum install php php-mysql

Để kiểm tra PHP đã được cài đặt thành công hay chưa bạn sẽ tạo file test.php trong /var/www/html/ với nội dung như sau:

Restart lại webserver qua lệnh sau

[root@ecode ~]# yum install httpd
0

Sau đó truy cập theo địa chỉ http://your-server-ip/test.php. Nếu bạn thấy màn hình tương tự sau hiện ra nghĩa là đã cài đặt thành công:

Cài đặt apache php mysql trên windows

Để thiết lập Apache và MySQL tự động khởi động khi server start, chúng ta sẽ sử dụng thêm 2 lệnh sau:

[root@ecode ~]# yum install httpd
1

Trong trường hợp bạn muốn quản trị MySQL thông qua PHP MyAdmin bạn có thể cài đặt thêm PHP MyAdmin. Ngoài mô hình webserver theo LAMP, còn một mô hình webserver khác cũng khá phổ biến là LEMP (Linux, Nginx, MySQL/MariaDB, PHP).

Để lập trình Apache, PHP, MySql trên Windows, bạn có thể cài đặt các gói tích hợp sẵn như XAMPP, WampServer,… chẳng hạn. Tuy nhiên, nếu bạn muốn tự tay cài đặt và cấu hình, thì dưới đây là hướng dẫn cho bạn. Thời điểm mình post bài này, phiên bản mới nhất của chúng lần lượt là Apache 2.4.10, PHP 5.6.1, MySQL Community Server 5.6.21.

Bước 1: Tạo thư mục web gốc

Đầu tiên, hãy tạo một thư mục nơi sẽ đặt các ứng dụng web. Bạn có thể tạo ở bất kỳ đâu bạn muốn. Trong bài này, giả sử mình sẽ tạo thư mục webroot ở phân vùng D: để khi có cài lại hệ điều hành (vốn ở phân vùng C:) thì các ứng dụng web của mình vẫn còn đó. Như vậy, đường dẫn đầy đủ của thư mục sẽ là D:\webroot.

Bước 2: Tải về và cài đặt Apache

Có hai cách để tải về Apache. Nếu chọn cách một thì bạn sẽ đơn giản được việc cài Apache, nhưng sẽ hơi khó khăn hơn khi tìm bản PHP phù hợp. Ngược lại, bạn có phiên bản Apache và PHP mới nhất, nhưng phải làm bằng tay nhiều hơn chút. Hai cách đó gồm:

  • Tải Apache từ apache.org: đây là website chính thức của dự án Apache, tại thời điểm mình viết bài này, Apache đã có phiên bản 2.4.10, tuy nhiên, bản này còn ở dạng mã nguồn, chưa được build, nếu tải về, bạn phải tự build lấy. Bản build mới nhất có thể tải từ apache.org là 2.2.25. Xem tiếp mục 2.1 nếu bạn chọn tải nó từ đây.
  • Tải Apache từ apachelounge.com: đây là website dự án biên dịch Apache trên Windows, bạn có thể tải xuống Apache bản mới nhất đã được build tại http://www.apachelounge.com/download/. Xem tiếp 2.2 nếu bạn chọn tải từ đây.

2.1 Tải về Apache tại http://httpd.apache.org/.

Bạn hãy tìm tải tập tin Binaries có phần đuôi .msi, đây là bộ cài đặt Apache đã biên dịch.

Sau khi tải xong, bấm đúp để cài đặt. Tại cửa sổ Server Information, mục Network Domain và Server Name, bạn có thể để là localhost, như hình:

Cài đặt apache php mysql trên windows

Tiếp theo, tại cửa sổ Destination Folder, bạn chọn lại đường dẫn cài đặt Apache nếu muốn. Mình sẽ để mặc định theo máy của mình là C:\Program Files (x86)\Apache Software Foundation\Apache2.2\.

Bấm Next, đây là trình cài đặt tự động, chúng ta chỉ việc ngồi chờ đến khi hoàn tất.

Nếu trong lúc cài, bạn thấy xuất hiện cửa sổ thông báo như: apache2: Could not reliably determine the server’s fully qualified domain name, using x.x.x.x for ServerName (x.x.x.x là một địa chỉ IP) thì bạn cứ để đó. Đây không phải là lỗi. Chúng ta sẽ sửa sau.

Sau khi cài đặt xong, Apache sẽ chạy tự động, để ý dưới góc phải thanh taskbar, bạn sẽ thấy xuất hiện biểu tượng:

Cài đặt apache php mysql trên windows

Bấm vào, bạn sẽ thấy menu xổ xuất hiện, có mục Apache2.2, vào trong đó, bạn sẽ thấy có 3 mục con là Start, Stop, Restart, trong đó, Start bị vô hiệu tức là Apache đang chạy. Nếu Start chưa vô hiệu, bạn thử bấm để chạy (thực ra biểu tượng hình tam giác xanh như trên có nghĩa Apache đã chạy rồi).

Để thử xem đã cài Apache thành công chưa, mở trình duyệt, gõ địa chỉ: http://localhost. Nếu bạn thấy xuất hiện một trang trắng có dòng chữ It works! thì bạn đã thành công.

2.2 Tải về Apache mới nhất tại http://www.apachelounge.com/download/. Nhớ chọn bản 32 hay 64 bit tùy thuộc máy của bạn. Ví dụ, tại thời điểm viết bài này, mình sẽ tải bản mới nhất là httpd-2.4.10-win64-VC11.zip.

Cài đặt apache php mysql trên windows

Quan trọng: bạn để ý tên tập tin tải xuống có chữ VC11 ngay trước .zip. Nó cho biết bản Apache này được build bằng Visual Studio 2012. Điều này rất quan trọng, vì bạn sẽ cần phải tải và cài đặt thêm thư viện Visual C++ Redistributable for Visual Studio 2012. Hãy tìm nó tại đây.

Nếu file download của bạn có chữ VC9, Apache được build bằng Visual Studio 2008, lúc này, bạn cần tải và cài đặt thư viện Visual C++ Redistributable for Visual Studio 2008 SP1, hãy tìm tại đây cho x86 hoặc tại đây cho x64.

Một chú ý nữa: lúc tải PHP, bạn cũng nên tải bản tương ứng với VC9 hoặc VC11 (xem bước 4).

Tại thời điểm mình viết bài này thì bản tải từ apachelounge.com không có trình cài đặt. Tải về xong bạn chỉ việc giải nén rồi lưu vào đâu đó. Trong bài này, giả sử mình sẽ lưu nó vào thư mục C:\apache.

Khác với trường hợp 2.1, ở đó, trình cài đặt đã cấu hình Apache để bạn có thể test thử ngay bằng cách vào http://localhost, còn trường hợp này thì bạn chưa thể thử. Hãy qua bước kế tiếp để cấu hình Apache.

Bước 3: Cấu hình Apache nhận thư mục web gốc đã tạo ở bước 1

Ở bước 2, nếu bạn đã chọn làm theo cách 2.1, hãy đọc tiếp mục 3.1, ngược lại, hãy đọc tiếp mục 3.2. Bạn lưu ý 3 điều:

  1. Trong ví dụ ở mục 2.1, mình minh họa bằng cách cài Apache theo mặc định vào thư mục C:\Program Files (x86)\Apache Software Foundation\Apache2.2, còn ở mục 2.2, mình giải nén và chép Apache vào thư mục C:\apache. Để bạn dễ theo dõi và không lẫn lộn giữa 2 trường hợp, từ dưới đây, mình sẽ ghi lại thành <đường dẫn cài Apache>, bạn hãy lưu ý sửa lại cho đúng trường hợp của bạn.
  2. Đường dẫn trên Windows thường ghi theo kiểu Drive:\path\to\file, trong file cấu hình Apache, bạn luôn đổi \ thành /, ví dụ thay vì ghi C:\apache, hãy ghi thành C:/apache.
  3. Trong file cấu hình Apache, các dòng có # ở đầu là chú thích (nếu cần thiết, bạn có thể ghi thêm chú thích của bạn), nếu bỏ # đầu dòng, ngay lập tức dòng đó sẽ có ý nghĩa cấu hình.

3.1 Tình huống tải về từ http://httpd.apache.org/

Mặc định, thư mục web gốc nằm tại <đường dẫn cài Apache>\htdocs. Bây giờ, bạn cần cấu hình Apache để đặt lại thư mục web gốc về D:\webroot như đã tạo ở bước 1.

Vào thư mục <đường dẫn cài Apache>\conf, dùng Notepad mở tập tin httpd.conf. Tìm đến dòng:

DocumentRoot “<đường dẫn cài Apache>/htdocs”

Và sửa lại thành

DocumentRoot “D:/webroot”

Sau đó, thêm nội dung dưới đây:


    AllowOverride All
    Order allow,deny
    Allow from all

Ở trên, bạn nên để AllowOverride All để có thể dễ dàng sử dụng tập tin .htaccess ở mỗi thư mục ứng dụng web.

Ở bước 2.1, nếu bạn gặp thông báo apache2: Could not reliably determine the server’s fully qualified domain name, using x.x.x.x for ServerName (x.x.x.x là một địa chỉ IP) thì hãy tìm dòng có ServerName rồi sửa nó thành ServerName localhost:80, nhớ bỏ # ở đầu dòng, nếu có.

Sau khi làm xong, bấm biểu tượng Apache ở taskbar rồi chọn Restart. Chờ một vài giây, nếu bạn làm đúng, Apache sẽ khởi động lại mà không gặp lỗi gì.

Giờ thử tạo một tập tin index.html, lưu vào thư mục D:/webroot, sau đó, mở trình duyệt rồi vào lại http://localhost (có thể cần xóa cache). Nếu trang bạn tạo hiển thị thì bạn đã thành công bước này.

3.2 Tình huống tải về từ http://www.apachelounge.com/

Hãy vào thư mục <đường dẫn cài Apache>\conf, dùng Notepad mở tập tin httpd.conf. Tìm đến dòng có:

  • ServerRoot và sửa thành ServerRoot “<đường dẫn cài Apache>“, bỏ # ở đầu dòng, nếu có, và lưu ý, không ghi dấu / ở cuối.
  • #ServerName www.example.com:80 và sửa lại thành ServerName localhost:80
  • DocumentRoot “c:/Apache24/htdocs” và sửa lại thành DocumentRoot “D:/webroot”
  • Thêm vào đoạn cấu hình sau:

        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted

    Ở trên, bạn nên để AllowOverride All để có thể dễ dàng sử dụng tập tin .htaccess ở mỗi thư mục ứng dụng web.

Sau đó, hãy lưu lại.

Tiếp theo, hãy bấm chuột phải mở Command Prompt chạy với quyền Admin (Run as Adminstrator). Nếu bạn không biết Command Prompt ở đâu, hãy bấm Start > Search rồi gõ cmd.

Tại dấu nhắc Command Prompt, gõ lần lượt các lệnh sau:

cd <đường dẫn cài Apache>\bin

httpd.exe -k install

Dòng lệnh thứ 2 giúp bạn cài đặt Apache như một servies của Windows. Xong lệnh này, bạn hãy xem nó có báo gì không. Bạn có thể kiểm tra thử đã cài service thành công hay chưa bằng cách, từ Windows, bấm Start > Search rồi gõ services.msc.

Cửa sổ Services hiện ra, hãy tìm xem trong danh sách có Apache2.4 như trong hình sau hay không.

Cài đặt apache php mysql trên windows

Tiếp theo, vào thư mục <đường dẫn cài Apache>\bin, tìm tập tin ApacheMonitor.exe rồi bấm đúp để chạy, bạn sẽ thấy dưới thanh taskbar xuất hiện biểu tượng giống như sau:

Cài đặt apache php mysql trên windows

Hãy bấm vào đó, bạn sẽ thấy menu xổ xuất hiện, có mục Apache2.4, vào trong đó, bạn sẽ thấy có 3 mục con là Start, Stop, Restart. Hãy bấm Start để khởi động Apache. Chờ trong giây lát, nếu khởi động thành công, biểu tượng trên sẽ đổi thành:

Cài đặt apache php mysql trên windows

Nếu Apache không thể khởi động, bạn hãy xem kỹ lại tập tin cấu hình httpd.conf.

Giờ thử tạo một tập tin index.html, lưu vào thư mục D:/webroot, sau đó, mở trình duyệt rồi vào lại http://localhost. Nếu trang web bạn tạo hiển thị thì bạn đã thành công bước này.

Bước 4: Tải về và cài đặt PHP

Vào http://windows.php.net/download/, tìm phiên bản PHP bạn mong muốn rồi tải về. Bạn nên chọn bản Thread Safe. Ngoài ra, bạn lưu ý điều sau:

  • Ở trang tải xuống PHP, ở đầu mỗi liên kết tải bạn đều thấy ghi VCx (x là một số) ở đầu, như hình:

    Cài đặt apache php mysql trên windows

  • Nếu ở bước 2 bạn làm theo cách 2.1, hãy tìm bản tải VC6
  • Nếu bạn làm theo cách 2.2, như đã đề cập, hãy tìm bản tải VC9 hoặc VC11 và 32 bit hay 64 bit tương ứng với bản build Apache bạn đã cài đặt.

Tùy phiên bản PHP bạn tải, có thể có trình cài đặt hoặc không. Phiên bản PHP 5.6.1 mình tải không có trình cài đặt, bạn chỉ việc tải xuống rồi giải nén ra một thư mục nào đó. Giả sử mình sẽ giải nén nó vào thư mục C:\php.

Sau đó, hãy tìm trong thư mục PHP xem có tập tin dạng php5apache2_x.dll (x là một số) hay không. Chúng ta cần thư viện này để Apache có thể làm việc với PHP. Lưu ý: số 2_x phải tương ứng với phiên bản Apache bạn đã tải: nếu bạn đã tải Apache 2.2.x, bạn sẽ cần tập tin php5apache2_2.dll, nếu bạn đã tải Apache 2.4.x, bạn sẽ cần tập tin php5apache2_4.dll. Nếu bạn làm theo hướng dẫn nãy giờ, chắc chắn mọi thứ sẽ phù hợp. Nếu không, hãy tìm bản tải PHP khác có tập tin dll phù hợp.

Tìm trong thư mục C:\php (hay thư mục khác nơi bạn đã giải nén PHP) các thư mục và tập tin sau:

  • Thư mục ext. Trường hợp của mình là C:\php\ext. Đây là thư mục chứa các module của PHP
  • Tập tin php.ini-production (hoặc có thể là php.ini-dist hay gì đó có php.ini ở đầu). Hãy đổi tên nó thành php.ini. Đây là tập tin cấu hình của PHP.

Dùng Notepad mở tập tin php.ini, chúng ta cần cấu hình một chút.

Trong tập tin php.ini, bạn để ý thấy có các dòng bắt đầu bằng ; là những chú thích. Hãy tìm đến extension_dir, nếu nó đang chú thích, hãy bỏ ; ở đầu và ghi lại thành:

extension_dir = “C:/php/ext/”

Dòng này xác định thư mục chứa các module của PHP.

Tiếp theo, hãy tạo một thư mục sessions (hay tên gì tùy bạn) trong thư mục C:\php. Sau đó, tìm đến dòng ;session.save_path rồi sửa thành session.save_path=’C:/php/sessions/’. Đây sẽ là thư mục lưu các session.

Bước 5: Cấu hình Apache làm việc với PHP

Vào lại thư mục <đường dẫn cài Apache>\conf, dùng Notepad mở tập tin httpd.conf. Thêm các dòng sau (mình đề xuất thêm vào sau các dòng LoadModule đang có để dễ quản lý):

PHPIniDir “C:/php”
LoadModule php5_module “C:/php/php5apache2_4.dll”
AddHandler application/x-httpd-php .php

Xong, hãy khởi động lại Apache. Sau đó, hãy tạo thử tập tin index.php với nội dung:

echo "Hello world";
?>

Rồi mở trình duyệt, thử gõ http://localhost/index.php. Nếu xuất hiện dòng chữ Hello World thì bạn đã thành công bước này.

Bước 6: Tải và cài đặt MySQL

Hãy vào http://dev.mysql.com/downloads/mysql/ tải bản MySQL mới nhất rồi bấm đúp để cài đặt. Việc cài đặt MySQL khá dễ dàng vì có trình cài đặt bằng giao diện đồ họa. Bạn hãy tự làm việc này theo hướng dẫn trên màn hình cài đặt. Nhìn chung cứ bấm Yes, Next, OK hết là được. Trong lúc cài đặt, sẽ có hộp thoại yêu cầu bạn nhập mật khẩu cho tài khoản root – tài khoản cao nhất để quản trị MySQL, bạn hãy nhập và nhớ nó. Chúng ta sẽ dùng tài khoản đó để lập trình với PHP.

Cài đặt xong, bạn để ý dưới góc phải taskbar, sẽ có xuất hiện biểu tượng như hình:

Cài đặt apache php mysql trên windows

Bạn chọn đến phiên bản MySQL đã cài (máy mình có cài 2 bản WampServer trước đó nên có 3 mục, máy bạn sẽ không hiển thị 3 mục giống vậy), sẽ có menu con có mục Start, Stop, Restart, bấm Start để chạy MySQL nếu nó chưa chạy.

Trình cài đặt mặc định sẽ cài cho bạn bộ công cụ cần thiết để làm việc với MySQL, trong đó có công cụ hữu ích là MySQL Workbench.

Cài đặt apache php mysql trên windows

Bạn có thể dùng MySQL Workbench để quản lý và thao tác với MySQL, không cần dùng thêm ứng dụng gì.

Bước 7: Cấu hình PHP làm việc với MySQL

Vào thư mục PHP – trường hợp của mình là C:\php, rồi vào thư mục ext kiểm tra xem hai tập tin sau đây có hay chưa (chắc chắn là có, nhưng nếu không có thì bạn phải kiểm tra lại các bước cài đặt của mình):

  • php_mysql.dll: đây là thư viện driver giúp thao tác MySQL từ mã PHP, driver này bị cảnh báo là sẽ bị thay thế trong các phiên bản PHP mới.
  • php_mysqli.dll: cũng giống như php_mysql.dll, tuy nhiên, các phiên bản PHP mới khuyên dùng driver này thay thế cho php_mysql.dll.

Tại thời điểm mình viết bài này thì có nhiều thư viện, framework nguồn mở dùng driver mới, nhưng cũng có nhiều thư viện dùng driver cũ. Mình sẽ chọn cách cho chạy cả hai driver này.

Mở lại tập tin cấu hình php.ini, tìm đến dòng:

  • ;extension=php_mysql.dll rồi bỏ dấu ; ở đầu thành extension=php_mysql.dll
  • ;extension=php_mysqli.dll rồi bỏ dấu ; ở đầu thành extension=php_mysqli.dll

Nếu không có một trong hai dòng trên thì bạn cứ gõ thêm vào nhé.

Sau đó, hãy khởi động lại Apache.

Để kiểm tra mọi thứ đã làm việc với nhau hay chưa, hãy tạo thử tập tin test_db.php với nội dung sau:

Mật khẩu root bạn đã tạo");

if (mysqli_connect_errno()) {
echo "Ket noi that bai";
} else {
echo "Ket noi thanh cong";
}
?>

Chạy thử bằng cách vào địa chỉ http://localhost/test_db.php. Nếu xuất hiện Ket noi thanh cong, thì chúc mừng bạn, mọi thứ đã hoàn tất.

Ngoài MySQL Workbench, bạn cũng có thể cài thêm phpMyAdmin, một ứng dụng PHP thông dụng giúp thao tác MySQL.