Xây dựng máy chủ web chạy PHP và MySQL

Trong phần này sẽ xây dựng một hệ thống để phát triển ứng dụng Web bằng PHP: cài đặt gồm, máy chủ Web Apache, máy chủ dữ liệu MySQL và PHP, cấu hình để chúng làm việc rồi cài đặt Wordpress

  • Cài đặt máy chủ Apache
  • Cài đặt MySQL
  • Cài đặt PHP
  • Cài đặt Wordpress

Cài đặt máy chủ Apache trên WSL 2

Mở dòng lệnh PS hoặc Windows Terminal, vào Ubuntu cài mặc định bằng lệnh wsl thực hiện các lệnh

sudo apt update && sudo apt upgrade -y sudo apt install apache2 sudo service apache2 start

Apache đang chạy, truy cập địa chỉ //localhost để kiểm tra

Apache chạy trong Ubuntu WSL2

Kiểm tra các module được nạp

apache2ctl -M

Nạp một module, ví dụ rewrite

sudo a2enmod rewrite

Mặc định cài đặt MySQL 8

sudo apt install mysql-server -y sudo service mysql start

Chỉnh cấu hình MySQL ở file /etc/mysql/my.cnf, ví dụ cấu hình sử dụng xác thực kiểu mysql_native_password

[mysqld] default_authentication_plugin=mysql_native_password sudo service mysql restart

Cuối cùng, thử gõ lệnh sudo mysql để kết nối vào MySQL Server, gõ exit để thoát ra.

Quản trị MySQL Server xem tại: MySQL Server

Cài đặt PHP Ubuntu WSL

Thực hiện lệnh

sudo apt install php libapache2-mod-php php-mysql -y

Kiểm tra

Từ dòng lệnh gõ

php -v

Mở file

sudo nano /etc/apache2/mods-enabled/dir.conf

Sửa lại nội dung của nó, cho index.php lên đầu.

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>

Tạo một file index.php với lệnh

sudo nano /var/www/html/index.php

Đưa nội dung sau vào:

<?php phpinfo(); ?>

Truy cập lại //localhost

Apache PHP WSL2

Cài đặt Wordpress

Tải về Wordpress, giả sử thư mục làm việc của webiste sẽ ở trên máy Windows, tại thư mục: c:\mysite\site1 - có nghĩa là thư mục /mnt/c/mysite/site1 trong Ubuntu

File tải về, giải nén vào thư mục site1

Mở file config của Apache

sudo nano /etc/apache2/apache2.conf

Cấu hình VirtualHost, truy cập bằng tên miền test.com, thì chạy ứng dụng Wordpress ở thư mục /mnt/c/mysite/site1/

<VirtualHost *:80> ServerName test.com DocumentRoot /mnt/c/mysite/site1/ <Directory /mnt/c/mysite/site1/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> </pre>

Mở file C:\Windows\System32\drivers\etc\host của Windows (dùng notepad.exe với quyền Admin), thêm vào dòng thiết lập tên miền ảo test.com, trỏ tới IP 127.0.0.1

127.0.0.1 test.com

Hoặc lấy địa chỉ IP của Ubuntu bằng lệnh

ip a

Sau đó thiết lập test.com trỏ tới IP tìm được

Giờ truy cập //test.com để bắt đầu cài Wordpress

Cài đặt Wordpress trên WSL

Chuẩn bị CSDL

Vào MySQL bằng lệnh:

sudo mysql

Rồi thực hiện các câu lệnh (query) để tạo ra một user có tên testuser với password là 123456, tạo một database có tên wp_site1 và phân quền để testuser có mọi quyền trên database này

CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456'; create database wp_site1; GRANT ALL PRIVILEGES ON wp_site1.* TO 'testuser'@'localhost'; FLUSH PRIVILEGES;

Quay trở lại cài đặt Wordpress, điền các thông tin trên vào

Cài đặt Wordpress trên WSL

Các quá trình sau rất đơn giản, thực hiện cho đến cuối bạn sẽ có một Website chạy trong Ubuntu với MySQL,PHP, Apache đồng thời mã nguồn bạn có thể sửa đổi trực tiếp từ Windows.

Tới thời điểm này WSL2 vẫn còn một số bất tiện chưa được Microsoft khắc phụ như: IP của thay đổi sau mỗi lần khởi động máy. Các dịch vụ cần chạy lại một cách thủ công khi khởi động lại.

Với hệ điều hành Linux ổn định, tiêu thụ điện năng rất ít Raspberry Pi là một ứng viên sáng giá cho chức năng web server phục vụ nhu cầu truy cập vừa và ít.

Bài viết này Raspberry Pi Việt Nam sẽ hướng dẫn các bạn cách cài đặt một web server hoàn chỉnh với Apache, PHP và MySQL.

YÊU CẦU

Một chiếc Raspberry Pi đã được cài đặt Raspbian và kết nối Internet và được thiết lập địa chỉ IP tĩnh. Bạn có thể xem Thiết lập địa chỉ IP tĩnh cho Raspberry Pi nếu chưa biết cách đặt IP tĩnh.

CÁC BƯỚC

  1. Cài đặt Apache Web Server
  2. Cài đặt PHP
  3. Cài đặt MySQL

STEP 1: CÀI ĐẶT APACHE WEB SERVER

Apache là một ứng dụng web server phổ biến nhất trên thế giới và có thể cài đặt trên Raspberry Pi, cho phép bạn public một hoặc nhiều website ra Internet

Mặc định, Apache chỉ hỗ trợ các file HTML, tuy nhiên với một vào modules bổ sung, chúng ta có thể chạy được Apache với các file PHP.

INSTALL APACHE

Cài đặt gói dịch vụ Apache bằng cách chạy lệnh sau:

sudo apt-get install apache2 -y

KIỂM TRA WEB SERVER

Mặc định, Apache sẽ chạy một file test HTML sau khi cài đặt xong. Bạn chỉ cần mở trình duyệt lên, gõ địa chỉ IP của Raspberry Pi hoặc gõ localhost (nếu bạn test bằng chính máy Raspberry Pi)

Nếu Apache cài đặt thành công bạn sẽ nhìn thấy như hình dưới:

Thông báo khi truy cập trang mặc định của Apache

THAY ĐỔI TRANG MẶC ĐỊNH CỦA APACHE

Sau khi cài đặt Apache xong, mặc định dữ liệu của web sẽ nằm ở /var/www/. Trong này có file index.html chính là file mà bạn đã nhìn thấy nội dung ở bước trên. Để chuyển đến thư mục /var/www và xem danh sách file trong này bạn có thể chạy 2 lệnh sau:

cd /var/www

ls -al

Bạn sẽ nhìn thấy như sau:

total 1

drwxr-xr-x 2 root root 4096 Jan 8 01:29 .

drwxr-xr-x 12 root root 4096 Jan 8 01:28 ..

-rw-r–r– 1 root root 177 Jan 8 01:29 index.html

Điều này thể hiện là trong folder /var/www chỉ có 1 file index.html. Link đến dấu chấm (.) sẽ trỏ đến /var/www/, còn link dấu hai chấm(..) thì trỏ đến thư mục cao hơn /var/.

STEP 2: CÀI ĐẶT PHP

Với PHP, bạn có thể xây dựng các trang web động với nhiều tính năng hơn HTML

Các bạn cài đặt PHP theo lệnh sau:

sudo apt-get install php5 libapache2-mod-php5 -y

TEST PHP

Các bạn tạo một file mới trong /var/www, ví dụ file info.php bằng lệnh sau:

sudo nano info.php

Copy và paste nội dung sau vào:

<?php echo “hello world”; ?>

STEP 3: CÀI ĐẶT MYSQL

MySQL là một database server rất phổ biến, nhiều máy chủ trên thế giới đang sử dụng MySQL cho các website của mình.

Bạn chạy lệnh sau để cài đặt MySQL

sudo apt-get install mysql-server php5-mysql -y

Trong quá trình cài MySQL, bạn sẽ được yêu cầu nhập mật khẩu root của MySQL, bạn cần ghi nhớ mật khẩu này để còn thao tác trên cơ sở dữ liệu về sau. Lưu ý mật khẩu root của MySQL khác mật khẩu root của Raspbian.

Như vậy là việc cài đặt Apache, PHP, MySQL đã hoàn thành. Công việc này rất đơn giản trên Raspbian, thực tế bạn chỉ cần trải qua 3-4 câu lệnh là đã cài đặt xong. Giờ bạn có thể cài đặt nhiều ứng dụng khác trên nền PHP-MySQL (WordPress, vBulletin, Drupal, …) lên Raspbian của mình.

Chúc các bạn thành công.

Để học ngôn ngữ PHP và phát triển ứng dụng với ngôn ngữ này bạn cần cài đặt các thành phần cần thiết: chương trình dịch (để sử dụng PHP CLI bản mới nhất), bộ server Apache+PHP+MySQL (cho phát triển và triển khai ứng dụng web PHP), một text editor/IDE phù hợp.

Giới thiệu chung về chương trình dịch PHP

PHP là một ngôn ngữ lập trình dạng script (tương tự như Python) với chương trình dịch (interpreter) riêng của nó. Chương trình dịch của PHP có thể chạy độc lập (không cần web server) hoặc chạy tích hợp với một chương trình web server.

Ở dạng độc lập, chương trình dịch của PHP hoạt động được trên cả Windows, Mac và Linux. Ở chế độ này, chương trình dịch của PHP hoạt động gần tương tự như chương trình dịch của Python, C# (.NET core) hay Java. Người ta gọi chương trình dịch ở chế độ này là PHP CLI (command line interface). PHP CLI cho phép chạy script ở dạng ứng dụng console.

Do vậy, để học ngôn ngữ lập trình PHP thì bạn không cần thiết phải cài đặt web server. Bạn có thể viết script và sử dụng chương trình dịch PHP để chạy trực tiếp script đó ở dạng ứng dụng console. Việc viết script và chạy ở dạng console như vậy hoàn toàn tương tự như khi bạn học lập trình với các ngôn ngữ khác (như C#, Java, Python, F#, C, C++). Nó đặc biệt giống với việc học ngôn ngữ script như Python.

Ở dạng tích hợp, chương trình dịch của PHP hoạt động như phần mở rộng của một chương trình web server. PHP có thể hoạt động cùng Apache (Linux/Windows), NGinx (Linux/Windows) hay IIS (windows). Đây là chế độ hoạt động chính của chương trình dịch PHP.

Ở chế độ này, chương trình web server sẽ điều hướng truy vấn tới chương trình dịch của PHP để xử lý script tương ứng. Kết quả chạy script PHP sẽ được web server trả về cho trình duyệt. Các script PHP chạy ở chế độ tích hợp này phải tuân thủ một số yêu cầu riêng để tạo ra ứng dụng web.

Trong phần tiếp theo của bài học chúng ta sẽ xem xét cách cài đặt chương trình dịch PHP trên Windows và cách tích hợp nó với chương trình máy chủ web Apache.

Cài đặt chương trình PHP

PHP chạy trên nhiều hệ điều hành. Để đơn giản hóa việc minh họa, trong bài học này chúng ta sẽ chỉ thực hiện trên windows. Về việc cài đặt trên các hệ điều hành khác sẽ trình bày riêng ở phần phụ lục.

Bước 1. Chọn chương trình PHP

Bộ chương trình dịch trọn vẹn của PHP cho windows được cung cấp miễn phí tại địa chỉ //windows.php.net/download/. Bộ chương trình PHP được cung cấp ở dạng file chạy nén trong tập tin zip. PHP không cung cấp các bộ cài đặt (file msi).

Lưu ý rằng ở trang này có nhiều bộ chương trình khác nhau. Bạn lựa chọn như sau:

  • Chọn phiên bản PHP. Phiên bản mới nhất hiện nay là PHP 8 (8.0.0).
  • Chọn bản 64 bit (x64) hoặc 32 bit (x86) tùy vào cấu hình máy.
  • Chọn bản NTS – non thread safe (đơn luồng).
  • Chọn bản Zip, không chọn bản Debug Pack hay Developement package.

Đây là lựa chọn phù hợp để chạy PHP CLI.

Theo đó, phiên bản mới nhất hiện nay dành cho máy 64 bit đáp ứng các yêu cầu trên là VS16 x64 Non Thread Safe (2020-Nov-24 22:43:38) và có thể tải từ đường link //windows.php.net/downloads/releases/php-8.0.0-nts-Win32-vs16-x64.zip. Bản 32 bit tương ứng là VS16 x86 Non Thread Safe (2020-Nov-24 22:45:09), tải từ link //windows.php.net/downloads/releases/php-8.0.0-nts-Win32-vs16-x86.zip.

Bước 2. Cài đặt

Việc cài đặt PHP chỉ đơn giản là giải nén file zip vừa tải về. Hãy giải nén file zip vào thư mục C:\PHP.

Bạn có thể giải nén vào thư mục bất kỳ. Tuy nhiên, để tiện lợi cho việc hướng dẫn ở các bài sau, chúng ta thống nhất cài PHP vào thư mục C:\PHP. Nếu lựa chọn giải nén vào thư mục khác, ở các phần hướng dẫn cấu hình bạn chú ý thay đổi đường dẫn PHP cho phù hợp.

Bước 3. Cấu hình Windows

Thêm đường dẫn C:\PHP vào danh sách đường dẫn của hệ thống (PATH).

System Properties -> tab Advanced -> Environment Variables -> Path -> nút New.

Thao tác trên giúp windows tìm tới file chương trình C:\PHP\php.exe khi chúng ta gọi lệnh php từ Command Prompt (cmd).

Bước 4. Tạo file cấu hình php.ini

Mở thư mục C:\PHP tìm đến file php.ini-development. Đổi tên file này thành php.ini.

php.ini là file cấu hình bắt buộc của PHP. Thiếu file cấu hình này, PHP sẽ báo lỗi khi hoạt động.

Trong bộ chương trình PHP đã có sẵn hai file cấu hình, php.ini-development và php.ini-deployment. Trong đó, php.ini-development chứa những thông tin cấu hình sẵn phù hợp cho quá trình phát triển ứng dụng. File còn lại phù hợp cho việc triển khai.

Đến đây bạn đã sẵn sàng để viết chương trình PHP CLI đầu tiên.

Hello world, PHP CLI!

Để thử nghiệm, hãy tạo thư mục PhpProjects. Trong thư mục này tạo file văn bản index.php. Chú ý để phần mở rộng là php.

Mở file index.php bằng notepad và viết nội dung cho file như sau:

<?php echo "Hello world from PHP CLI";

Hãy mở Command Prompt (cmd) và chuyển PhpPorjects làm thư mục hiện hành.

Chạy lệnh php index.php. Bạn thu được kết quả như sau:

Như vậy chương trình dịch PHP đã được hệ thống gọi và truyền cho nó file script index.php. PHP CLI thực thi script này (chỉ có lệnh in echo 'Hello world ...').

Giờ hãy điều chỉnh code của index.php như sau:

<?php echo "Hello world from PHP CLI\n\r"; $name = readline('Your name:'); echo "Hello, $name. Welcome to heaven!";

Chạy lại ứng dụng (lệnh php index.php) và nhập tên, bạn thu được kết quả như sau:

Trong ví dụ này, bạn tiếp nhận cả dữ liệu từ console.

Như vậy, cách sử dụng PHP CLI như vậy cũng giống như sử dụng lệnh python, dotnet hay java của các ngôn ngữ tương ứng. Bạn có thể xuất/nhập dữ liệu qua console mà không cần đến giao diện web.

Việc viết và chạy script như trên sẽ được sử dụng chủ đạo ở phần đầu của tập tài liệu này.

PHP và web server

PHP CLI rất phù hợp cho học ngôn ngữ PHP ở giai đoạn đầu. Tuy nhiên, tiếp theo bạn bắt buộc phải sử dụng PHP ở chế độ tích hợp với web server để phát triển ứng dụng web – mục đích chính của học lập trình PHP.

Mặc dù PHP có thể tích hợp với nhiều chương trình web server, Apache vẫn là lựa chọn phổ biến nhất hiện nay, đặc biệt là làm môi trường phát triển ứng dụng PHP.

Không chỉ vậy, để tạo ra môi trường thực sự cho ứng dụng web, bạn còn cần đến các server khác như MySQL (server cơ sở dữ liệu), Mercury (mail server), Filezilla (FTP server, phục vụ triển khai ứng dụng web).

Việc cài đặt Apache và tích hợp với PHP (và các server khác) là công việc của quản trị viên hệ thống hơn là của lập trình viên.

Để hỗ trợ lập trình viên nhanh chóng cài đặt môi trường cho phát triển ứng dụng, một số hãng thứ ba xây dựng sẵn các gói server mã mở.

Các gói server mã mở này thông thường bao gồm 3 thành phần chính: Apache web server, hệ quản trị cơ sở dữ liệu MySQL, tích hợp chương trình dịch PHP hoặc Perl. Vì vậy các gói phần mềm này thường được gọi chung là AMP.

Do bộ server này hoạt động đa nền tảng, người ta thường gọi chúng theo nền tảng: WAMP (dành cho Windows), LAMP (dành cho Linux), hoặc MAMP (dành cho Mac).

Hiện nay có nhiều gói AMP khác nhau: XAMPP (//www.apachefriends.org/download.html), AMPPS stack (//ampps.com/downloads), WAMP (//www.wampserver.com/en/).

Hầu hết chúng đều tương tự nhau khi sử dụng cho phát triển ứng dụng. Việc lựa chọn mang tính cá nhân.

Để thống nhất, trong tập hướng dẫn này chúng ta sẽ sử dụng bộ XAMPP. Bộ XAMPP có ưu điểm rất lớn là nhanh cập nhật phiên bản mới nhất của PHP.

PHP web app và XAMPP

Bạn tải bộ cài XAMPP và cài đặt như một chương trình windows bình thường vào thư mục C:\XAMPP.

Để quản lý các server, bạn chạy file C:\XAMPP\xampp-control.exe.

Để chạy ứng dụng PHP bạn cần chạy Apache server (và MySQL sau này). Bấm vào nút Start tương ứng ở cột Actions.

Nếu cổng 80, 443 còn rỗi, server Apache sẽ khởi động. Trong lần hoạt động đầu tiên Apache sẽ hỏi hệ thống để bind với cổng TCP 80 và 443. Tương tự MySQL sẽ hỏi và bind với cổng 3306.

Giờ bạn đã có một web server hoạt động và tích hợp sẵn với PHP.

Giờ chúng ta sẽ cùng viết một ứng dụng web bằng PHP đơn giản nhất.

Trong thư mục C:\XAMPP\htdocs tạo thư mục mới webapp. Trong thư mục webapp tạo file index.php và viết nội dung như sau:

<?php echo "<h1>Hello world from PHP</h1>"; // vẫn sử dụng lệnh echo

Mở trình duyệt và nhập địa chỉ localhost/webapp/ (hoặc 127.0.0.1/webapp/), bạn thu được kết quả như sau:

Truy vấn HTTP với địa chỉ localhost/webapp được trình duyệt gửi tới chương trình Apache qua giao thức HTTP. Apache không trực tiếp xử lý truy vấn này mà gọi tới chương trình dịch PHP (ở dạng extension của Apache).

File script index.php được chương trình dịch thực hiện nhưng kết quả in của lệnh echo giờ được chuyển thành mã HTML trả lại cho Apache. Apache gửi HTML trở lại cho trình duyệt.

Chúng ta sẽ trình bày chi tiết hơn về cách sử dụng XAMPP trong bài học về cài đặt môi trường phát triển ứng dụng web với PHP.

IDE cho PHP

Việc viết code cho PHP rất đơn giản: chỉ cần một chương trình hỗ trợ xử lý văn bản plaintext. File script của PHP chỉ là các file văn bản thông thường. Bạn có thể sử dụng ngay notepad của Windows.

Với lịch sử lâu dài và sự phổ biến của mình, hiện nay có rất nhiều công cụ cho phát triển ứng dụng PHP. Trong đó có những trình xử lý văn bản (text editor) cho đến các IDE – môi trường tích hợp cho phát triển ứng dụng.

Nếu ưa thích sự đơn giản, bạn có thể sử dụng text editor như Notepad++, Sublime Text, Atom. Thậm chí lập trình viên PHP chuyên nghiệp vẫn sử dụng các text editor này.

Nếu muốn hỗ trợt tốt hơn nữa, bạn có thể dùng đến các IDE. IDE – Integrated Development Environment – là một bộ công cụ trọn vẹn dành cho việc phát triển ứng dụng, bao gồm từ viết code, phân tích code, chạy thử nghiệm, debug, đóng gói, phân phối.

Có rất nhiều PHP IDE. Phổ biến nhất là PhpStorm, Eclipse PDT, Netbean. Nếu bạn tìm trên google những IDE tốt nhất cho PHP, 3 loại IDE trên sẽ xuất hiện trong hầu hết các danh sách. Việc lựa chọn IDE nào là sở thích cá nhân.

PhpStorm là IDE được sử dụng trong tập hướng dẫn này. Đây là một IDE mất phí. Bạn có thể tải bản thử nghiệm 30 ngày từ địa chỉ //www.jetbrains.com/phpstorm/download/. Nếu bạn có một email edu, bạn có thể đăng ký chương trình hỗ trợ giáo dục của JetBrains để sử dụng miễn phí tất cả các sản phẩm của JetBrains cho mục đích giáo dục. License gia hạn từng năm một.

Bạn có thể apply cho license từ link //www.jetbrains.com/community/education/#students.

JetBrains PhpStorm

Trong bài học sau chúng ta sẽ học cách cấu hình PhpStorm để làm việc với PHP CLI. Bạn cũng sẽ học cách cấu hình PhpStorm để làm việc với web server trong một bài học riêng.

Kết luận

Trong bài học này chúng ta đã thực hiện cài đặt các công cụ cần thiết cho quá trình học ngôn ngữ lập trình PHP:

  • Cài đặt bộ chương trình dịch PHP để sử dụng PHP CLI.
  • PHP CLI phù hợp cho việc học ngôn ngữ PHP, tránh những rắc rối chưa cần thiết của ứng dụng web.
  • Cài đặt bộ server XAMPP với đầy đủ các thành phần cần thiết cho phát triển và triển khai ứng dụng web với PHP.
  • Cài đặt PhpStorm IDE.
  • Viết thử nghiệm một số script cho CLI và Apache.

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Video liên quan

Chủ đề