Tools

Tìm hiểu Webserver, PHP

Để chạy được các Script PHP mới mục đích tìm hiểu về nguyên lý, cú pháp cốt yếu của ngôn ngữ này thì chỉ việc cài đặt PHP Install PHP. Để tạo và chạy một trang Web đầy đủ tính năng thường cần một hệ thống gồm:

  • Máy chủ HTTP hoàn chỉnh (có thể chọn Apache, ISS, Nginx) - máy chủ này nhận các yêu cầu gửi đến (HTTP Request), và triệu gọi đến PHP nếu yêu cầu đó cần thi hành script PHP, kết quả trả về cho client HTTP Response. Ở đây chọn Apache Web server (Web server - phổ biển nhất sử dụng cùng PHP)
  • PHP engine - chương trình phần tích cú pháp PHP và thực thi code PHP.
  • Một máy chủ cơ sở dữ liệu như MS SQL Server, MySQL ... nếu ứng dụng có cần truy cập CSDL. Ở đây chọn MySQL

Giải thích về các thành phần trên ta tìm hiểu một chút về ứng dụng Web để xem cách chúng làm việc thế nào với hình vẽ dưới đây.

Server Apache và PHP

Hình vẽ mô tả sự làm việc của Webserver - Php - Database server

Bạn có thể cài đặt và cấu hình từng phần riêng rẽ để cuối cùng có được cả 3 thành phần:

  1. Trước tiên người dùng truy cập Website bằng trình duyệt, trình duyệt sẽ gửi các yêu cầu (thông quả địa chỉ URI với Get, Post ...) đến Server.
  2. Web Server (Apache) tiếp nhận yêu cầu đó, phân tích yêu cầu đó, nếu nó xác định được Script PHP cần chạy thì Web Server sẽ yêu cầu chạy Script PHP đó, lúc này nhiệm vụ xử lý sẽ là của PHP.
  3. PHP chạy các Script với các khả năng của bản thân nó, nó cũng truy vấn đến Cơ sở dữ liệu (Ví dụ truy vấn đến database của MySQL) và hệ thống file trên Server để hoàn thành nhiệm vụ bạn đặt ra. Cuối cùng nó trả về cho Webserver thường là nội dung HTML và mã trạng thái.
  4. Lúc này Web Server gửi nội dung HTML về cho trình duyệt, trình duyệt nhận được tiến hành Render HTML và bạn sẽ nhìn thấy nội dung trang Web.

Cài đặt WampServer trên Windows

Việc cài từng gói phần mềm này khá phức tạp, thực tế ta chọn một gói phần mềm tích hợp sẵn cả ba thành phần trên và một lần cài đặt là xong. Trên Windows có thể chọn WampServer,  chuyên dành cho lập trình viên cài đặt Apache-MySQL-PHP trên Windows.

Bạn cần đảm bảo cài đặt Visual Studio 2012 VC 11 trước

Sau đó vào trang http://www.wampserver.com/en/ tải về bản WampServer tương ứng với cấu hình máy tính của bạn, rồi tiến hành chạy file tải về để cài đặt giống như các chương trình khác.

Ở trên Windows sau khi cài đặt xong, bạn chạy WampSever thì ở Taskbar có menu như hình:

Biểu tượng của Wampserver màu xanh cho biết tất cả các thành phần đang chạy OK. Nó cung cấp một Menu cho phép truy cập và cấu hình tất cả các thành phần của Apache, PHP, MySQL.

wampserver

Bạn dùng trình duyệt web, với địa chỉ trình duyệt là http://localhost/  hoặc http://127.0.0.1/ thì hiện ra trang của Wampsever là thành công

Lúc này mặc định nơi lưu trữ các script php (*.php) các HTML (*.html, *.htm ...) là ở đường dẫn C:\wamp\www hoặc C:\wamp64\www, bạn chỉ việc để các file của bạn trong đó, hoặc trong các folder tự tạo trong đó và gọi để chạy script của bạn từ trình duyệt.

Ví dụ bạn tạo php script tên là helloworld.php lưu tại

c:\wamp\www\myfirstscript\helloworld.php thì bạn chạy nó từ trình duyệt bằng địa chỉ:

http://localhost/myfirstscript/helloworld.php

Cũng có thể cấu hình vhost (điều chỉnh file cấu hình httpd.conf) với các tên miền ảo, trỏ đến một thư mục nào đó. Cũng có thể thực hiện bằng cách truy cập vào địa chỉ như hình dưới

Nếu sử dụng máy Mac, thì tham khảo bài viết: cài đặt Apache, PHP, MySQL trên macOS

Chương trình PHP đầu tiên

Để biên tập và viết mã cho PHP bạn có thể dùng một Text Editor bất kỳ để viết hoặc có thể dùng IDE từ miễn phí đến có phí như:

  • Dùng Notepad của Windows để viết (miễn phí)
  • Dùng Notepad++ để viết (miễn phí - nên dùng), tải về https://notepad-plus-plus.org/
  • NetBeans IDE(Free)
  • Aptana Studio PHP Editor(Free)
  • PhpStorm
  • PhpDesigner - không miễn phí - tốt - gợi ý tốt khi viết code
  • (Còn rất nhiều nữa)

Ở đây sẽ chọn sử dụng Visual Studio Code (miễn phí, rất tôt) - hãy tải về và cài đặt

Giờ hãy tạo ra một thư mục để lưu dự án code, ví dụ thư mục myfirstscript, mở thư mục đó ra bằng Visual Studio Code và tạo một file tên helloworld.php, sau đó viết vào nội dung:

<?php
  echo "Hello, world!\n";
?>

Để chạy script này, đang ở thự mục dự án, gõ lệnh vào terminal (cmd)

php helloworld.php

Bạn cũng thể gõ lệnh trên trực tiếp vào terminal của Visual Studio Code

Như vậy, chạy code trên đã in ra màn hình lời chào.

Nếu muốn code trên truy cập qua trình duyệt, thì bạn phải đưa code vào thư mục thích hợp trong Wampserver (với Windows) - và cấu hình vhost trỏ vào thư mục làm việc chứa code.

Cách đơn giản hơn là sử dụng PHP chạy máy chủ HTTP, giả sử ta sẽ chạy máy chủ làm việc trên thư mục myfirstscript, lắng nghe ở cổng 8080 (chọn để tránh xung đột với Apache), thì vào thư mục đó gõ lệnh:

php -S 0.0.0.0:8080

Lúc này có thể truy cập đến địa chỉ http://localhost:8080

Đó là chương trình đầu tiên viết bằng PHP, nó thật đơn giản nhưng chứa cấu trúc mà các file php sau bạn cần theo.

Tìm hiểu cấu trúc chương trình PHP của ví dụ trên

Đầu tiên là dòng mở thẻ PHP

<?php

Nó cho biết bắt đầu của khối các dòng lệnh viết bằng PHP. Nếu PHP có thiết lập trong php.ini

short_open_tag = "1"

thì bạn có thể dùng dạng ngắn (không có chữ php)

<?

Dòng tiếp theo là hiện thị dòng thông điệp: Hello World!

echo "Hello, world!\n";

Lệnh echo của PHP theo sau là một chuỗi, ở đây là "Hello, world!" sẽ in ra (xuất ra) console hay gửi về browser dòng text. Lưu ý dấu hai chấm ; ở cuối dòng, nó cho biết kết thúc câu lệnh.

Lưu ý là echo() không chỉ hiện thị string, nó có thể hiện thị rất nhiều loại dữ liệu, như số, biểu thức, bạn tìm hiểu về nó ở phần khác. 

Lệnh khác giống echo là print(), nó có chức năng tương từ ngoại trừ có trả về giá trị TRUE/FALSE, bạn có thể sử dụng print thay cho echo nếu thích.

Cuối cùng là cho biết đã hết một khối code PHP, đơn gian thêm vào dòng.

?>

Trong một file bạn có thể có nhiều khối có PHP, các đoạn text không nằm trong khối code php được hiểu sẽ xuất nội dung chính nó ra.

Ví dụ:

<?php
    echo 'Hello, World!\n';
    echo 'abc\n';
?>

Dòng text này là mã xuất trực tiếp mà không phải qua code PHP

<?php
    echo 'Hi PHP agin!\n';
    echo time();
?>

Điều này giúp cho việc nhúng các code PHP và văn bản HTML rất dễ dàng.

Ví dụ bạn tạo file phtml.php với nội dung có nhung code PHP như sau:

<!DOCTYPE html>
<html>
    <head>
        <title>PHP & HTML</title>
    </head>
    <body>
        <h1>Đây là chương trình PHP</h1>
        <p>
            <?php 
                echo 'Hello PHP!';
                echo date(" H:m:s");
             ?>
        </p>
    </body>
</html>

Bạn thấy code PHP đã được nhúng trong File HTML

Thêm các Extension cho Visual Studo Code

Để hỗ trợ tốt hơn khi viết code PHP, như gợi ý cú pháp ... bạn cài các extension sau:

  • PHP IntelliSense: nhớ thiết lập php.suggest.basicfalse
  • Code Runner: nhớ đánh dấu chọn thiết lập Run In Terminal
  • HTML CSS Support
  • IntelliSense for CSS class names in HTML

Nếu muốn có khả năng Debug, hãy tham khảo Sử dụng XDebug


Đăng ký nhận bài viết mới