Cách cài đặt bộ Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 18.04

2 năm trước

 

Giới thiệu

Bộ "LAMP" là một nhóm phần mềm nguồn mở thường được cài đặt cùng nhau để cho phép máy chủ lưu trữ các trang web động và ứng dụng web. Thuật ngữ này thực ra là một từ viết tắt đại diện cho hệ điều hành Linux, với máy chủ Apache web. Dữ liệu trang web được lưu trữ trong cơ sở dữ liệu MySQL và nội dung động được xử lý bằng PHP.

Trong hướng dẫn này, chúng ta sẽ cài đặt bộ LAMP trên máy chủ Ubuntu 18.04.

 

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, cần có một máy chủ Ubuntu 18.04 với một tài khoản người dùng non-roor sudo-enabled và một tường lửa cơ bản. Điều này có thể được cấu hình bằng cách sử dụng hướng dẫn cài đặt máy chủ ban đầu của Ubuntu 18.04.

 

Bước 1 - Cài đặt Apache và cập nhật tường lửa

Máy chủ Apache web là một trong những máy chủ web phổ biến nhất trên thế giới. Nó được ghi chép và đã được sử dụng rộng rãi trong phần lớn lịch sử của trang web, điều này làm cho nó trở thành một lựa chọn mặc định tuyệt vời để lưu trữ một trang web.

Cài đặt Apache bằng gói trình quản lý của Ubuntu, apt:

sudo apt update
sudo apt install apache2
 

Vì đây là lệnh sudo, các thao tác này được thực thi với các đặc quyền root. Nó sẽ thường xuyên yêu cầu bạn cho mật khẩu người dùng để xác minh ý định của bạn.

Một khi đã nhập mật khẩu, apt sẽ cho biết những gói có kế hoạch để cài đặt và chiếm bao nhiêu dung lượng đĩa. Nhấn Y và nhấn ENTER để tiếp tục và quá trình cài đặt sẽ được tiến hành.

Điều chỉnh Firewall để cho phép Web Traffic

Tiếp theo, giả sử rằng bạn đã làm theo hướng dẫn thiết lập máy chủ ban đầu và bật tường lửa UFW, hãy đảm bảo rằng tường lửa của bạn cho phép HTTP và HTTPS traffic. Bạn có thể kiểm tra UFW có hồ sơ ứng dụng cho Apache như sau:

sudo ufw app list
OutputAvailable applications:
ApacheApache FullApache Secure OpenSSH
 

Nếu bạn nhìn vào hồ sơ Apache Full, nó sẽ cho thấy nó cho phép traffic truy cập đến các cổng 80 và 443:

sudo ufw app info "Apache Full"
OutputProfile: Apache Full 
Title: Web Server (HTTP,HTTPS) 
Description: Apache v2 is the next generation of the omnipresent Apache web server. 
Ports: 80,443/tcp
 

Cho phép HTTP và HTTPS traffic truy cập đến profile này:

sudo ufw allow in "Apache Full"

Bạn có thể thực hiện kiểm tra ngay lập tức để xác minh mọi thứ đã được lên kế hoạch bằng cách truy cập địa chỉ IP công cộng của máy chủ trong trình duyệt web của bạn (xem ghi chú trong tiêu đề tiếp theo để tìm hiểu địa chỉ IP công cộng của bạn là gì nếu bạn không có thông tin này):

http://your_server_ip

Bạn sẽ thấy trang web Ubuntu 18.04 Apache mặc định, trang này dành cho mục đích thông tin và thử nghiệm. Nó sẽ giống như thế này:

Ubuntu 18.04 Apache default

Nếu bạn thấy trang này, thì máy chủ web của bạn hiện đã được cài đặt và truy cập chính xác qua tường lửa của.

Cách Tìm Địa chỉ IP Công cộng của Máy chủ

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

Có một vài cách khác nhau để thực hiện điều này từ dòng lệnh. Đầu tiên, bạn có thể sử dụng các công cụ iproute2 để lấy địa chỉ IP của bạn bằng cách gõ:

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

Điều này sẽ cung cấp cho bạn hai hoặc ba dòng phản hồi. Đó là tất cả các địa chỉ chính xác, nhưng máy tính của bạn chỉ có thể sử dụng một trong số đó, vì vậy hãy thử từng địa chỉ.

Một phương pháp khác là sử dụng tiện ích curl để liên hệ với bên ngoài để biết cách thức nó thấy máy chủ của bạn. Điều này được thực hiện bằng cách hỏi một máy chủ cụ thể địa chỉ IP là gì:

sudo apt install curl
curl http://icanhazip.com
  •  

Bất kể phương thức gì bạn sử dụng để lấy địa chỉ IP, hãy nhập nó vào thanh địa chỉ của trình duyệt web để xem trang Apache mặc định.

 

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

Bây giờ bạn đã thiết lập và chạy máy chủ web của mình, đã đến lúc cài đặt MySQL. MySQL là một hệ thống quản lý cơ sở dữ liệu. Về cơ bản, nó sẽ tổ chức và cung cấp quyền truy cập vào cơ sở dữ liệu nơi trang web của bạn có thể lưu trữ thông tin.

Một lần nữa, sử dụng apt để có và cài đặt phần mềm này:

sudo apt install mysql-server
  •  

Lưu ý: Trong trường hợp này, bạn không phải ưu tiên chạy lệnh sudo apt update. Điều này là do gần đây bạn đã chạy nó trong các lệnh trên để cài đặt Apache. Gói chỉ mục trên máy tính của bạn đã được cập nhật.

Bạn sẽ một lần nữa được hiển thị một danh sách các gói sẽ được cài đặt, cùng với số lưu lượng nó sẽ chiếm. Nhập Y để tiếp tục.

Khi quá trình cài đặt hoàn tất, hãy chạy một tập lệnh bảo mật đơn giản được cài đặt sẵn với MySQL để loại bỏ một số giá trị mặc định nguy hiểm và khóa truy cập vào hệ thống cơ sở dữ liệu của bạn. Bắt đầu tập lệnh tương tác bằng cách chạy:

sudo mysql_secure_installation
  •  

Bạn sẽ được hỏi có muốn cấu hình VALIDATE PASSWORD PLUGIN không.

Lưu ý: Bật tính năng này là một cái gì đó của cuộc gọi phán xét. Nếu được bật, mật khẩu không khớp với tiêu chí được chỉ định sẽ bị MySQL từ chối do lỗi. Điều này sẽ gây ra vấn đề nếu bạn sử dụng một mật khẩu yếu cùng với phần mềm tự động cấu hình các thông tin người dùng MySQL, chẳng hạn như các gói Ubuntu cho phpMyAdmin. Viết tắt xác thực bị vô hiệu hóa là an toàn nhưng bạn nên luôn sử dụng mật khẩu mạnh duy nhất cho thông tin đăng nhập cơ sở dữ liệu.

Trả lời Y cho yes, hoặc bất cứ điều gì khác để tiếp tục mà không cho phép.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:

Nếu bạn trả lời “yes”, bạn sẽ được yêu cầu chọn mức độ xác thực mật khẩu. Hãy nhớ rằng nếu bạn nhập 2 cho mức mạnh nhất, bạn sẽ nhận được lỗi khi cố gắng đặt bất kỳ mật khẩu nào không chứa số, chữ hoa và chữ thường và các ký tự đặc biệt hoặc dựa trên các từ điển thông dụng.

There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Bất kể bạn đã chọn thiết lập VALIDATE PASSWORD PLUGIN, máy chủ của bạn sẽ yêu cầu bạn chọn và xác nhận mật khẩu cho người dùng MySQL root. Đây là một tài khoản quản trị trong MySQL đã tăng các đặc quyền. Hãy nghĩ về nó giống như tài khoản root cho chính máy chủ (mặc dù cái bạn đang cấu hình bây giờ là một tài khoản MySQL cụ thể). Đảm bảo đây là mật khẩu mạnh, duy nhất và không để trống.

Nếu bạn đã bật xác thực mật khẩu, bạn sẽ được hiển thị cường độ mật khẩu cho mật khẩu root mà bạn vừa nhập và máy chủ của bạn sẽ hỏi bạn có muốn thay đổi mật khẩu đó không. Nếu bạn hài lòng với mật khẩu hiện tại của mình, hãy nhập N cho "no" tại dấu nhắc:

Using existing password for root.
Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

Đối với phần còn lại của câu hỏi, nhấn Y và nhấn phím ENTER ở mỗi dấu nhắc. Điều này sẽ loại bỏ một số người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, vô hiệu hóa đăng nhập root từ xa và tải các quy tắc mới này để MySQL ngay lập tức làm theo những thay đổi bạn đã thực hiện.

Tại thời điểm này, hệ thống cơ sở dữ liệu của bạn hiện đã được thiết lập và bạn có thể chuyển sang cài đặt PHP, thành phần cuối cùng của bộ LAMP.

 

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

PHP là thành phần của thiết lập sẽ xử lý mã để hiển thị nội dung động. Nó có thể chạy các tập lệnh, kết nối với cơ sở dữ liệu MySQL để lấy thông tin và trao nội dung đã xử lý cho máy chủ web để hiển thị.

Một lần nữa, sử dụng hệ thống apt để cài đặt PHP. Ngoài ra, bao gồm một số gói trợ giúp lần này để mã PHP có thể chạy dưới máy chủ Apache và kết nối với cơ sở dữ liệu MySQL:

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

Điều này sẽ cài đặt PHP mà không có bất kỳ vấn đề gì. Chúng ta sẽ kiểm tra điều này trong giây lát.

Trong hầu hết các trường hợp, bạn sẽ muốn sửa đổi cách Apache phân phối các tệp khi một thư mục được yêu cầu. Hiện tại, nếu một người dùng yêu cầu một thư mục từ máy chủ, trước tiên Apache sẽ tìm một tệp có tên là index.html. Chúng ta muốn yêu cầu máy chủ web thích các tệp PHP hơn các tệp khác, vì vậy hãy để Apache tìm kiếm tệp index.php trước tiên.

Để thực hiện việc này, gõ lệnh này để mở tệp dir.conf trong trình soạn thảo văn bản có quyền root ưu tiên:

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

Nó sẽ giống như sau:

/etc/apache2/mods-enabled/dir.conf
 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Di chuyển tệp chỉ mục PHP (được đánh dấu ở trên) đến vị trí đầu tiên sau đặc tả DirectoryIndex, như sau:

/etc/apache2/mods-enabled/dir.conf
 DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Khi bạn hoàn tất, lưu và đóng tệp bằng cách nhấn CTRL+X. Xác nhận lưu bằng cách nhập Y và sau đó nhấn ENTER để xác minh vị trí lưu tệp.

Sau đó, khởi động lại máy chủ Apache web để các thay đổi của bạn được nhận diện. Làm điều này bằng cách gõ:

sudo systemctl restart apache2
  •  

Bạn cũng có thể kiểm tra trạng thái của dịch vụ apache2 bằng systemctl:

sudo systemctl status apache2
  •  
Sample Output● apache2.service - LSB: Apache2 web server 
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) 
Drop-In: /lib/systemd/system/apache2.service.d 
  └─apache2-systemd.conf 
Active: active (running) since Tue 2018-04-23 14:28:43 EDT; 45s ago 
Docs: man:systemd-sysv-generator(8) 
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS) 
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) 
Tasks: 6 (limit: 512) 
CGroup: /system.slice/apache2.service 
  ├─13623 /usr/sbin/apache2 -k start 
  ├─13626 /usr/sbin/apache2 -k start 
  ├─13627 /usr/sbin/apache2 -k start 
  ├─13628 /usr/sbin/apache2 -k start 
  ├─13629 /usr/sbin/apache2 -k start 
  └─13630 /usr/sbin/apache2 -k start
 

Để tăng cường chức năng của PHP, bạn có tùy chọn để cài đặt một số module bổ sung. Để xem các tùy chọn có sẵn cho các module và thư viện PHP, dẫn kết quả của apt search đến less, một máy nhắn tin cho phép cuộn qua đầu ra của các lệnh khác:

apt search php- | less
  •  

Sử dụng các phím mũi tên để di chuyển lên xuống và nhấn Q để thoát.

Kết quả là tất cả các thành phần tùy chọn mà bạn có thể cài đặt. Nó sẽ cung cấp cho bạn một mô tả ngắn cho mỗi cái:

bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development
cacti/bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems
ganglia-webfrontend/bionic 3.6.1-3 all
cluster monitoring toolkit - web front-end
golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go
haserl/bionic 0.9.35-2 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n
…
:

Để tìm hiểu thêm về từng module, bạn có thể tìm kiếm trên Internet để biết thêm thông tin về chúng. Ngoài ra, hãy xem mô tả dài của gói bằng cách nhập:

apt show package_name
  •  

Sẽ có rất nhiều kết quả, với một trường được gọi là Description sẽ có giải thích dài hơn về chức năng mà module cung cấp.

Ví dụ, để tìm hiểu module php-cli có chức năng gì, gõ:

apt show php-cli
  •  

Cùng với một lượng lớn thông tin khác, bạn sẽ tìm thấy thông tin như sau:

Output… 
Description: command-line interpreter for the PHP scripting language (default) 
This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. 
. 
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. 
. 
This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2). 
…
 

Nếu sau khi nghiên cứu, bạn quyết định bạn muốn cài đặt một gói, bạn có thể làm như vậy bằng cách sử dụng lệnh apt install như bạn đã làm cho phần mềm khác.

Nếu bạn quyết định rằng php-cli là thứ bạn cần, bạn có thể gõ:

sudo apt install php-cli
  •  

Nếu bạn muốn cài đặt nhiều hơn một module, bạn có thể làm điều đó bằng cách liệt kê từng module cách nhau bằng dấu cách theo lệnh apt install như sau:

sudo apt install package1package2...
  •  

Tại thời điểm này, bộ LAMP của bạn đã được cài đặt và cấu hình. Tuy nhiên, trước khi thực hiện thêm bất kỳ thay đổi nào hoặc triển khai một ứng dụng, sẽ rất hữu ích khi chủ động kiểm tra cấu hình PHP của bạn trong trường hợp có bất kỳ vấn đề nào cần giải quyết.

 

Bước 4 - Kiểm tra Xử lý PHP trên Máy chủ Web 

Để kiểm tra xem hệ thống của bạn có được cấu hình đúng cho PHP hay không, hãy tạo một tập lệnh PHP rất cơ bản có tên là info.php. Để Apache tìm tệp này và phục vụ nó một cách chính xác, nó phải được lưu vào một thư mục rất cụ thể, được gọi là "root web".

Trong Ubuntu 18.04, thư mục này được đặt tại /var/www/html/. Tạo tệp tại vị trí đó bằng cách chạy:

sudo nano /var/www/html/info.php
  •  

Thao tác này sẽ mở một tệp trống. Thêm văn bản sau, đây là mã PHP hợp lệ bên trong tệp:

info.php

Khi bạn hoàn tất, lưu và đóng tệp.

Bây giờ bạn có thể kiểm tra xem máy chủ web của bạn có thể hiển thị chính xác nội dung được tạo bởi tập lệnh PHP này hay không. Để dùng thử, hãy truy cập trang này trong trình duyệt web của bạn. Bạn sẽ cần địa chỉ IP công cộng của máy chủ một lần nữa.

Địa chỉ bạn muốn ghé thăm là:

http://your_server_ip/info.php

Trang bạn đến sẽ trông giống như sau:

Ubuntu 18.04 default PHP info

Trang này cung cấp một số thông tin cơ bản về máy chủ của bạn từ quan điểm của PHP. Nó rất hữu ích để gỡ lỗi và đảm bảo rằng các cài đặt của bạn đang được áp dụng chính xác.

Nếu bạn có thể thấy trang này trong trình duyệt của mình thì PHP của bạn sẽ hoạt động như mong đợi.

Bạn có thể muốn xóa tệp này sau thử nghiệm này vì nó thực sự có thể cung cấp thông tin về máy chủ của bạn cho người dùng trái phép. Để thực hiện việc này, hãy chạy lệnh sau:

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

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

 

Kết luận

Bây giờ bạn đã cài đặt bộ LAMP, bạn có nhiều lựa chọn cho việc cần làm tiếp theo. Về cơ bản, bạn đã cài đặt một nền tảng cho phép bạn cài đặt hầu hết các loại trang web và phần mềm web trên máy chủ của mình.

Như một bước tiếp theo, bạn nên đảm bảo rằng các kết nối đến máy chủ web của bạn được bảo mật, bằng cách phục vụ chúng thông qua HTTPS. Tùy chọn dễ nhất ở đây là sử dụng Let's Encrypt để bảo mật trang web của bạn với chứng chỉ TLS / SSL miễn phí.

Một số tùy chọn phổ biến khác là:

  • Cài đặt Wordpress-hệ thống quản lý nội dung phổ biến nhất trên internet.
  • Thiết lập PHPMyAdmin để giúp quản lý cơ sở dữ liệu MySQL của bạn từ trình duyệt web.
  • Tìm hiểu thêm về MySQL để quản lý cơ sở dữ liệu của bạn.
  • Tìm hiểu cách sử dụng SFTP để truyền tệp đến và từ máy chủ của bạn.

Lưu ý: Chúng tôi sẽ cập nhật các liên kết ở trên đến tài liệu 18.04 của chúng tôi khi nó được viết.

Tìm hiểu nhiều điều thú vị khác tại Vicloud!