Pages

07 November 2011

Tự Học PHP - Level 1 - Bài 3: Cài đăt web server Apache, MySQL và PHP

Nguồn: http://tutorial.phpvn.org

1. Cài đặt giao thức TCP/IP
Các dịch vụ web server dựa  trên nền giao thức TCP/IP. Vì vậy trước khi cài đặt server, ta phải tiến hành cài đặt giao thức TCP/IP.

Để cài đặt giao thức TCP/IP, ta vào Control Panel, chọn Network. Nếu thấy dòng chữ TCP/IP đã xuất hiện trong ô Configuration, tức là giao thức TCP/IP đã được cài đặt trên máy. Còn nếu không, ta kích chuột vào Add. Hộp thoại Select Component hiển thị ra. Kích chọn tiếp Protocol -> Add. Trong danh sách bên trái, chọn Microsoft. Sau đó sang danh sách bên phải, chọn TCP/IP. Bấm Enter để bắt đầu quá trình cài đặt.

Trong quá trình cài đặt, nếu máy tính của bạn chưa có card mạng thì hệ thống sẽ yêu cầu cài một trình điều khiển card mạng nào đó. Đừng lo, cứ chọn đại theo chỉ dẫn sẽ xong thôi.

Sau khi cài đặt xong, mở cửa sổ Command Prompt ra. Gõ lệnh
C:\ping 127.0.0.1
Nếu thấy có 4 dòng chữ có dạng:
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx

tức là giao thức TCP/IP đã được cài đặt thành công.

Ghi chú: Dãy số 127.0.0.1 chính là địa chỉ IP mặc định của chính máy tính bạn đang sử dụng. Bạn cũng có thể sử dụng cái tên localhost thay cho địa chỉ IP 127.0.0.1 để truy cập vào máy tính của chính mình.

2. Cài đặt web server, PHP, MySQL:

Công cụ cài đặt ở đây được tôi lựa chọn là XAMPP - Bộ công cụ cài đặt trọn gói bao gồm Web server Apache, bộ xử lý PHP, và CSDL My SQL. Các bạn có thể tham khảo chi tiết phần mềm tại: http://www.apachefriends.org.

Trước khi cài đặt và vận hành hệ thống, hãy ngắt toàn bộ các website mặc định của IIS/PWS, và tắt luôn dịch vụ nếu các bạn đã từng cài các webserver này. Nếu các bạn đang chạy Apache và MySQL thì cũng gỡ bỏ (uninstall) đi.

Các bạn tiến hành cài đặt XAMPP vào một thư mục nào đó (chẳng hạn ở đây tôi chọn là c:\xampp).

Sau khi cài đặt xong, các bạn đã có thể vận hành Apache, PHP và MySQL.
Để vận hành hệ thống, các bạn vào thư mục của hệ thống (c:\xampp theo ví dụ trên), chạy file xampp-control.exe. Tiếp đó start các dịch vụ Apache và MySQL lên. Nếu quá trình khởi động thành công, khi gõ địa chỉ http://localhost hoặc http://127.0.0.1 vào trình duyệt thì sẽ hiển thị trang chủ XAMPP.

3. Một số thông tin về hệ thống:
- Thư mục tài liệu: Là thư mục gốc của Apache. Mọi địa chỉ URL gửi lên server sẽ được phân tích thành đường dẫn tương ứng với đường dẫn của thư mục gốc ảo trên. Theo mặc định, thư mục này được lưu trong thư mục cài đặt XAMPP với tên là htdocs (VD trên máy của tôi là C:\xampp\htdocs
- Thư mục dữ liệu của MySQL: Nằm trong thư mục /mysql/data. Trong thư mục này, MySQL sẽ lưu trữ các CSDL (Database) dưới dạng các thư mục, mỗi bảng trong CSDL được ghi trong một file riêng biệt.
- Để thao tác với CSDL MySQL, các bạn có thể mở trình duyệt và vào trang http://localhost/phpmyadmin/ . Chữ Localhost đã được giải thích ở trên.
- Để xem các thông tin của hệ thống, các bạn mở trang http://localhost/phpinfo.php



Cài đặt thủ công (manual) từng phần.

Link tải

- Apache HTTP server: http://httpd.apache.org/download.cgi , chọn Win32 Binary (MSI Installer).

- PHP: http://www.php.net/downloads.php , chọn Windows Binaries, gói zip package.

- MySQL: http://dev.mysql.com/downloads/ , chọn MySQL Community Server, chọn bản Without installer (unzip in C:\).

Cài đặt

Trước khi cài đặt, các bạn cũng phải chú ý một số điều như ở bài trên.

1. Apache

Cài đặt Apache với các lựa chọn mặc định (cứ thoải mái nhấn Next, trừ khi bạn muốn có 1 vài rắc rối  Grin). Trong mục network domain, server name và emai, có thể khai gì cũng được (nếu cần có thể chỉnh lại sau). Sau khi cài đặt xong, Apache sẽ chạy dưới dạng 1 service của Windows và nó được thiết lập mặc định khởi động cùng Windows. 1 chương trình nhỏ có tên Apache Service Monitor cũng được tự động chạy dưới khay hệ thống để có thể mở hoặc tắt Apache thuận tiện. Để kiểm tra, hãy vào trình duyệt và gõ vào khung address: http://localhost/. Dòng url này sẽ gọi file index.html nằm trong thư mục htdocs trong thư mục cài đặt Apache, đây là thư mục gốc mặc định của Apache, website của bạn sẽ dc chứa tại đây. Nhấn Enter và dòng chữ "It works!!!" to tướng hiện ra.

Chú ý: Với Windows SP2, Apache có thể bị block. Cách giải quyết: Unblock  Grin

Sau khi chạy thành công, có lẽ bạn sẽ muốn cấu hình lại Apache cho phù hợp hơn. Dùng Notepad mở file httpd.conf nằm trong thư mục conf trong thư mục cài đặt Apache (hoặc vào Start menu để mở) và tiến hành chỉnh sửa:

- Để chứa website của mình trong thư mục khác thuận tiện hơn thư mục mặc định htdocs của Apache, VD: C:\www, chỉnh lại như sau:

Code:
DocumentRoot "C:/www/" 
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Satisfy all
</Directory>
<Directory "C:/www/">

- Để thiết lập danh sách các file Apache sẽ tự động cung cấp (VD: index.html, index.htm, index.php) khi 1 thư mục được yêu cầu, chỉnh lại như sau:

Code:
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>

Như vậy, để truy cập đến file index.html trong thư mục C:\www, bạn ko cần phải gõ: http://localhost/index.html nữa mà chỉ cần gõ http://localhost/. Apache dò tìm các file theo thứ tự từ trái sang phải trong danh sách file mà bạn khai báo.

Chú ý: sau mỗi lần chỉnh sửa file httpd.conf, bạn phải restart lại Apache (dùng Apache Service Monitor) để cập nhật các thay đổi.

2. PHP

2.1 Cài đặt và cấu hình:

Giải nén ra 1 thư mục nào đó, VD: C:\php. Cần quan tâm đến 2 file sau:

- phpXapacheY.dll: đây là module mà Apache cần nạp để nó có thể hoạt động với PHP. X, Y lần lượt là số hiệu phiên bản của PHP và Apache, VD: php5apache2.dll. Bạn phải biết phiên bản Apache và PHP mình đang dùng để lựa chọn cho đúng. VD: nếu bạn có PHP 5.2.0 và Apache 2.2.3, thì ko thể dùng php5apache2.dll được mà phải dùng php5apache2_2.dll (module kết nối PHP5 với Apache 2.2.x). Bạn hãy vào trang chủ của PHP để biết các chú ý từ nhà sx. Để nạp module này (VD: php5apache2_2.dll) vào Apache, hãy mở httpd.conf và thêm vào cuối phần LoadModule các dòng như sau:

Code:
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Dòng cuối cùng là đường dẫn đến file cấu hình của PHP: php.ini.

- php.ini: đây là file cấu hình của PHP. Vào thư mục cài đặt PHP, chọn 1 trong 2 file php.ini-recommended hoặc php.ini-dist để sửa thành php.ini. Theo khuyến cáo của nhà cung cấp, hãy chọn php.ini-recommended.

2.2 Kiểm tra:

Restart Apache. Nếu Apache không thể khởi động, xem lại bước 1. Nếu thành công, dùng Notepad tạo 1 file phpinfo.php với nội dung như sau:

Code:
<?php
phpinfo();
?>

Copy file này vào thư mục chứa website (C:\www), rồi mở nó bằng trình duyệt (http://localhost/phpinfo.php ) bạn sẽ nhận dc 1 bảng chỉ rõ cấu hình của Apache và PHP cài đặt trong máy tính.

3. MySQL

3.1 Cài đặt và kiểm tra

- Giải nén ra 1 thư mục nào đó, VD: C:\MySQL. Trong thư mục cài đặt, chọn file ini phù hợp với mức độ CSDL của mình (VD: my-small.ini) rồi đổi tên thành my.ini và copy vào thư mục C:\Windows.

- Mặc định, dữ liệu của bạn sẽ được chứa trong C:\MySQL\data, nên chuyển nó ra nơi khác (VD: C:\mydata) đề phòng trường hợp nâng cấp MySQL sẽ làm mất dữ liệu. Mở my.ini, xoá dấu comment # tại dòng dưới đây và chỉnh lại như sau:

Code:
#innodb_data_home_dir = C:/mydata/

- Vào Start - Run, gõ cmd, cửa sổ Command Prompt thứ 1 hiện ra, gõ "C:\mysql\bin\mysqld" --console, MySQL server sẽ khởi động. Chữ console là để bắt MySQL server hiển thị quá trình xử lý trên cửa sổ này, nó sẽ có dạng như sau:

Quote
C:\>"C:\mysql\bin\mysqld" --console
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
061204 22:50:37 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
061204 22:50:38 InnoDB: Log file .\ib_logfile0 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
061204 22:50:39 InnoDB: Log file .\ib_logfile1 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
061204 22:50:40 InnoDB: Started; log sequence number 0 0
061204 22:50:42 [Note] C:\mysql\bin\mysqld: ready for connections.
Version: '5.0.27-community' socket: '' port: 3306 MySQL Community Edition (GP
L)

Nhưng để có thể giao tiếp được với CSDL này, bạn phải có 1 giao diện để tương tác với nó, gọi là MySQL client, có thể là giao diện đồ hoạ (phpMyAdmin) hoặc giao diện dòng lệnh - console. MySQL cung cấp sẵn cho bạn 1 MySQL client dạng console là mysql.exe trong C:\MySQL\bin. Để sử dụng nó, bạn tiếp tục mở 1 cửa sổ cmd thứ 2, gõ vào "C:\mysql\bin\mysql" -u root, nó sẽ trông giống thế này:

Quote
C:\>"c:\mysql\bin\mysql" -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.27-community

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

u là viết tắt của user, root là username. MySQL mặc định tạo user là root với quyền cao nhất và chưa đặt password. Bạn nên đặt password tại đây chứ không nên đặt tại file my.ini vì nó sẽ không được mã hoá. Vì chúng ta dùng localhost để thử nghiệm website nên không cần thiết phải đặt password.

Để tắt MySQL server, gõ exit tại dấu nhắc mysql>, cửa sổ cmd thứ 2 sẽ trả về thư mục gốc, tiếp tục gõ "C:\mysql\bin\mysqladmin" -u root shutdown. Cửa sổ cmd thứ 1 sẽ hiển thị quá trình tắt:

Quote
061204 22:54:49 [Note] C:\mysql\bin\mysqld: Normal shutdown

061204 22:54:49 InnoDB: Starting shutdown...
061204 22:54:52 InnoDB: Shutdown completed; log sequence number 0 43655
061204 22:54:52 [Note] C:\mysql\bin\mysqld: Shutdown complete

Khi làm việc trên hệ console này, hầu như chúng ta chỉ sử dụng 2 thao tác bật và tắt MySQL server, các thao tác khác sẽ được thực hiện thông qua mã lệnh trong các trang .php. Vì vậy, để thuận tiện, bạn nên tạo 2 file .bat (dạng text):

    * File thứ 1 đặt tên là MyStart.bat có nội dung: "C:\mysql\bin\mysqld" --console.

    * File thứ 2 đặt tên là MyStop.bat có nội dung: "C:\mysql\bin\mysqladmin" -u root shutdown.

Khi cần bật tắt MySQL server chỉ cần chạy 2 file này là được.

3.2 Kết nối MySQL với PHP:

- Bạn cần 2 file: libmysql.dllphp_mysql.dll (hoặc php_mysqli.dll). Các file này đều có  sẵn trong bộ cài đặt của php.

Vào thư mục gốc của php và copy libmysql.dll vào C:\windows\system32.

- Dùng Notepad mở php.ini:

    * Xoá dấu comment ";" tại 2 dòng dưới đây để PHP có thể load 2 extension mysql và mysqli. Tuy nhiên chỉ nên dùng 1 trong 2 extension, dùng cái nào thì xoá dấu ";" tại cái đó:

Code:
;extension=php_mysql.dll
;extension=php_mysqli.dll

    * Khai báo đường dẫn đến thư mục chứa extension của PHP:

Code:
extension_dir = "C:\php\ext"

- Kiểm tra: restart Apache, bật MySQL server, dùng trình duyệt mở file phpinfo.php đã tạo ở mục 2.2 (http://localhost/phpinfo.php). Trong bảng cấu hình của Apache và PHP giờ có thêm mục MySQL (hoặc MySQLi). Vậy là kết nối đã thành công.

Chú ý: nếu ko thấy mục MySQL(hoặc MySQLi) nghĩa là php vẫn chưa kết nối dc với mysql. Khi đó bạn hãy sử dụng các file libmysql.dll, php_mysql.dll (hoặc php_mysqli.dll) do MySQL cung cấp. php_mysql.dll (hoặc php_mysqli.dll) được gọi là connector - bộ kết nối. Connector cho MySQL mới nhất và PHP mới nhất có thể download từ http://dev.mysql.com/downloads/connector/php/ , các phiên bản cũ hơn download từ các link dưới đây (có thể sẽ ko có), trong đó thay x.y.z, a.b.c lần lượt bởi số hiệu phiên bản của PHP và MySQL cần dùng:

Download php_mysql.dll: http://dev.mysql.com/get/Downloads/Connector-php/php_x.y.z_mysql_a.b.c-win32.zip/from/pick

Download php_mysqli.dll: http://dev.mysql.com/get/Downloads/Connector-php/php_x.y.z_mysqli_a.b.c-win32.zip/from/pick

php_mysqli.dll là connector cải tiến của php_mysql.dll. Bạn nên download cả 2 về, nhưng mỗi lần chỉ nên dùng 1 trong 2 cái.

Sau khi download về, hãy copy đè libmysql.dll vào C:\windows\system32, copy đè php_mysql.dll và php_mysqli.dll vào thư mục extension của php (VD: C:\php\ext). Sau đó kiểm tra lại như trên. Nếu vẫn ko được thì hết cách Grin

Bài này tôi viết sau khi cài đặt Apache 2.2.3, PHP 5.2.0, MySQL 5.0.27. Hy vọng các phiên bản mới sẽ không kèm theo các rắc rối mới  Grin

P/S: Mình thì xài WAMP ... haizz ... www.wampserver.com/en/download.php