Hướng dẫn cài LAMP stack trên CentOS 7

2 năm trước

 

Giới thiệu

"LAMP" stack là một nhóm phần mềm mã nguồn mở được cài đặt cùng nhau để máy chủ có khả năng quản lý website và các ứng dụng web. LAMP là cụm từ viết tắt các chữ cái đầu của Linux (hệ thống vận hành),Apache ( Webserver ),MySQl (hệ cơ sở dữ liệu) và PHP( công cụ xử lý nội dung động).

Trong phần này chúng ta sẽ cài trên CentOS 7 VPS để đáp ứng hệ thống vận hành Linux.

 

Yêu cầu căn bản

Một máy chủ chạy hệ điều hành Centos 7. Nếu chưa có bạn có thể mua Cloud Server tại ViCloud

Một tài khoản người dùng giả định cài đặt trên máy chủ.

 

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

 Apache web server là một web server nổi tiếng bậc nhất trên thế giới hiện nay để quản lý website .

Ta có thể cài Apache một cách dễ dàng sử dụng hệ thống quản lý các gói của CentOS là   yum, cho phép cài đặt hầu hết các phần mềm miễn phí từ kho lưu trữ được cung cấp bởi CentOS.

Bắt đầu gõ lệnh:

sudo yum install httpd

Vì sử dụng lệnh sudo nên quá trình đó sẽ được thực thi với đặc quyền root và nó sẽ yêu cầu bạn nhập mật khẩu để xác nhận truy cập.

Sau đó web server sẽ được cài đặt.

Khi xong bạn có thể khởi động Apache trên VPS:

sudo systemctl start httpd.service

Bạn có thể kiểm tra ngay để đảm bảo rằng mọi thứ đều hoạt động suôn sẻ theo đúng kế hoạch bằng việc truy cập địa chỉ IP công khai trên máy chủ bằng trình duyệt web của bạn ( xem dưới tiêu đề tiếp theo để biết địa chỉ IP công khai là gì nếu chưa rõ):

http://your_server_IP_address/

Bạn sẽ thấy một trang web mặc định CentOS 7 Apache để nhận thông tin cũng như là thử nghiệm kết quả:

CentOS 7 Apache default

Nếu giống như thế này thì web server của bạn đã được cài chính xác rồi đấy.

Việc cuối cùng cần làm là khởi động Apache sử dụng lệnh sau:

sudo systemctl enable httpd.service

Cách tìm địa chỉ IP công khai của máy chủ

 Nếu bạn không biết địa chỉ IP công khai của máy chủ là gì thì có khá nhiều cách để tìm .Đây thường là địa chỉ bạn sử dụng để kết nối với máy chủ thông qua SSH.

Đầu tiên là sử dụng công cụ iproute2  để lấy địa chỉ đó bằng cách nhập:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Nó sẽ trả về một hoặc hai dòng là những địa chỉ chính xác nhưng máy của bạn chỉ cần dùng một địa chỉ nên bạn có thể chọn một trong hai.

Một cách khác là dùng bên thứ ba để truy cập máy chủ của bạn để hỏi địa chỉ IP là gì:

curl http://icanhazip.com

Bất kể phương pháp nào đi nữa thì bạn đều có thể thao tác trực tiếp nhay trên thanh địa chỉ trên trình duyệt web của bạn để truy cập tới máy chủ.

 

Bước 2 - Cài đặt MySQL (MariaDB)

Giờ thì web server đã hoạt động, ta sẽ cài MariaDB - một công cụ thay thế được thả vào MySQL . MariaDB là một công cụ phát triển kết nối nối của hệ thống quản lý cơ sở dữ liệu liên quan của MySQL . Đơn giản là nó tổ chức sắp xếp cũng như hỗ trợ truy cập vào hệ thống cơ sở dữ liệu mà website chứa thông tin ở đó.

Sử dụng lệnh yum để cài đặt phần mềm,  lúc này chúng ta cũng sẽ cài thêm các gói công cụ hỗ trợ khác cho phép ta sử dụng những công cụ đó để kết nối chúng lại với nhau:

sudo yum install mariadb-server mariadb

Sau đó là khởi động MariaDB dùng lệnh sau:

sudo systemctl start mariadb

Giờ thì hệ cơ sở dữ liệu MySQL đã hoạt động, chúng ta sẽ dùng thêm một tập lệnh bảo vệ để gỡ bỏ những yếu tố độc hại và ngăn chặn chúng có thể truy cập hệ cơ sở dữ liệu của ta dù chỉ một chút.

sudo mysql_secure_installation

Hệ thống sẽ yêu cầu bạn nhập mật khẩu gốc hiện tại, vì bạn mới chỉ cài đặt MySQL nên vẫn chưa có, thế nên cứ để trống ở đấy và nhấn enter xuống dòng Sau đó hệ thống sẽ hỏi bạn có muốn cài mật khẩu không thì tiếp tục ấn phím Y,và làm theo hướng dẫn:

Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorization.
New password: passwordRe-enter new password: passwordPassword updated successfully!
Reloading privilege tables..
... Success!

Tất cả những câu hỏi còn lại bạn chỉ cần nhấn "ENTER" và chọn giá trị mặc định. Bước này nó sẽ gỡ vài người dùng mẫu và cơ sở dữ liệu, cũng như vô hiệu hóa khả năng đăng nhập từ xa và sau đó sẽ tải lại để MySQL ngay lập tức hoạt động theo những thay đổi mà bạn vừa cài đặt.

Việc cuối cùng là khởi động MariaDB bằng lệnh sau:

sudo systemctl enable mariadb.service

Lúc này hệ cơ sở dữ liệu được cài đặt và ta sẽ chuyển sang bước tiếp theo.

 

Bước 3  - Cài PHP

PHP là một phần trong quá trình cài đặt có trách nhiệm xử lý code để mô phỏng nội dung động. Nó sẽ chạy lệnh kết hợp với hệ cơ sở dữ liệu của MySQL để nhận thông tin và xử lý rồi đưa tới webserver .

Ta sử dụng  yum  để cài đặt và cài thêm gói hỗ trợ php-mysql :

sudo yum install php php-mysql

Sau đó khởi động lại Apache web server để xem nó có hoạt động được với PHP không bằng cách nhập:

sudo systemctl restart httpd.service

Cài Modun PHP 

Để nâng cao chức năng của PHP ta sẽ cài thêm vài modun hỗ trợ nữa.

Để xem thư viện Modun PHP , hãy nhập lệnh sau:

yum search php-

Bạn có thể cài đặt theo ý muốn, mỗi công cụ đều có những dòng mô tả ngắn theo sau:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
. . .

Để tìm hiểu thêm bạn có thể tìm trên internet hoặc nhập lệnh sau để có thông tin mô tả chi tiết:

yum info package_name

Một mục đầu ra được gọi là Description sẽ mô tả chi tiết chức năng mà Modun đó cung cấp:

Ví dụ để tìm Modun php-fpm làm nhiệm vụ gì thì chỉ cần nhập:

yum info php-fpm

Một bản mô tả thông tin chi tiết hiện ra cho bạn sẽ trông như thế này:

. . .
Summary : PHP FastCGI Process Manager
URL : http://www.php.net/
License : PHP and Zend and BSD
Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
: implementation with some additional features useful for sites of
: any size, especially busier sites.

Sau khi tham khảo bạn có thể đưa ra quyết định có nên cài gói này hay không , nếu cài thì sử dụng lệnh yum install mà chúng ta thường hay dùng cho các phần mềm khác.

Ví dụ muốn cài Modun php-fpm:

sudo yum install php-fpm

Nếu bạn muốn cài Modun khác bạn chỉ việc liệt kê ngay đằng sau lệnh yum install như thế này::

sudo yum install package1package2...

Lúc này LAMP stack đã được cài đặt và định cấu hình, tuy nhiên ta cần kiểm nghiệm PHP .

Bước 4 - Kiểm nghiệm PHP xử lý trên Web Server

Để kiểm nghiệm một cách chính xác nhất chúng ta có thể tạo một tập lệnh PHP cơ bản.

Ta gọi tập lệnh đó là info.php. Để Apache có thể tìm thấy file và thực thi một cách chuẩn xác thì ta cần lưu nó trong một danh mục cụ thể được gọi là "web root".

Trên CentOS 7, mục này nằm ở địa chỉ /var/www/html/. Chúng ta có thể tạo file bằng cách nhập:

sudo vi /var/www/html/info.php

Một file trống xuất hiện, chúng ta sẽ nhập code PHP hợp lệ vào đó:

Khi xong thì lưu và đóng file.

Nếu bạn đang dùng Firewall thì nhập lệnh sau để cho phép luồng HTTP và HTTPS có thể truy cập được:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Giờ thì ta có thể kiểm nghiệm liệu rằng webserver của chúng ta có mô phỏng nội dung chính xác được tạo ra bởi tập lệnh PHP hay không. Để biết thì bạn cần truy cập trang trên trình duyệt của bạn bằng cách sử dụng địa chỉ IP công khai.

Địa chỉ là:

http://your_server_IP_address/info.php

Giao diện xuất hiện sẽ như thế này:

CentOS 7 default PHP info

Trang này cho bạn thông tin căn bản về máy chủ từ phía PHP. Nó rất hữu ích trong việc sửa lỗi cũng như đảm bảo quá trình cài đặt được sử dụng chính xác.

Nếu thành công thì PHP sẽ làm việc đúng như những gì bạn mong đợi.

Bạn cần gỡ file này sau khi kiểm nghiệm vì nó có thể sẽ đưa thông tin máy chủ của bạn tới người dùng không được ủy quyền. Vậy nên bạn cần nhập lệnh:

sudo rm /var/www/html/info.php

Bạn có thể tái tạo lại trang này nếu bạn cần truy cập thông tin lại lần nữa.

 

Kết luận

Giờ thì bạn đã cài đặt được LAMP satck rồi và sau này bạn có thể tận dụng nó để thực hiện nhiều việc hơn. Đơn giản là vì bạn đã cài đặt một platform cơ bản cho phép bạn có thể cài đặt được hầu hết các website và các phần mềm web trên máy chủ của bạn.