Thứ năm, 21/04/2016 | 00:00 GMT+7

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

LAMP là một group phần mềm nguồn mở thường được cài đặt cùng nhau để cho phép server lưu trữ các trang web động và ứng dụng web. Thuật ngữ này thực sự là một từ viết tắt đại diện cho hệ điều hành L inux, với web server A pache. Dữ liệu trang web được lưu trữ trong database M ySQL và nội dung động được xử lý bởi P HP.

Trong hướng dẫn này, ta sẽ cài đặt LAMP trên Ubuntu 16.04 Server. Ubuntu sẽ đáp ứng yêu cầu đầu tiên của ta : một hệ điều hành Linux.

Yêu cầu

Trước khi bắt đầu với hướng dẫn này, bạn nên có một account user riêng, không phải root với các quyền sudo được cài đặt trên server của bạn. Bạn có thể xem cách thực hiện việc này bằng cách hoàn thành các bước 1-4 trong cài đặt server ban đầu cho Ubuntu 16.04 .

Bước 1: Cài đặt Apache và Cho phép trong Tường lửa

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

Ta có thể cài đặt Apache một cách dễ dàng bằng trình quản lý gói của Ubuntu, apt . Trình quản lý gói cho phép ta cài đặt hầu hết các phần mềm một cách dễ dàng từ repository do Ubuntu duy trì. Bạn có thể tìm hiểu thêm về cách sử dụng apt tại đây.

Đối với mục đích của ta , ta có thể bắt đầu bằng lệnh các lệnh sau:

  • sudo apt-get update
  • sudo apt-get install apache2

Vì ta đang sử dụng sudo , các thao tác này được thực thi với các quyền của root. Nó sẽ yêu cầu bạn nhập password của regular user để xác minh ý định của bạn.

Khi bạn đã nhập password của bạn , apt sẽ cho bạn biết gói nào dự định cài đặt và chúng sẽ chiếm thê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ẽ tiếp tục.

Đặt Global ServerName để ngăn chặn cảnh báo cú pháp

Tiếp theo, ta sẽ thêm một dòng vào file /etc/apache2/apache2.conf để ngăn thông báo cảnh báo. Mặc dù vô hại nhưng nếu bạn không đặt ServerName trên phạm vi global , bạn sẽ nhận được cảnh báo sau khi kiểm tra cấu hình Apache để tìm lỗi cú pháp:

  • sudo apache2ctl configtest
Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

Mở file cấu hình chính bằng chỉnh sửa văn bản của bạn:

  • sudo nano /etc/apache2/apache2.conf

Bên trong, ở cuối file , hãy thêm lệnh ServerName , trỏ đến domain chính của bạn. Nếu bạn không có domain được liên kết với server của bạn , bạn có thể sử dụng địa chỉ IP công cộng của server :

Ghi chú
Nếu bạn không biết địa chỉ IP của server của bạn , hãy bỏ qua phần hướng dẫn cách tìm địa chỉ IP công cộng của server để tìm.

/etc/apache2/apache2.conf
. . . ServerName server_domain_or_IP 

Lưu file khi bạn hoàn tất.

Tiếp theo, kiểm tra lỗi cú pháp bằng lệnh :

  • sudo apache2ctl configtest

Vì ta đã thêm chỉ thị ServerName global , tất cả những gì bạn sẽ thấy là:

Output
Syntax OK

Khởi động lại Apache để triển khai các thay đổi :

  • sudo systemctl restart apache2

Đến đây bạn có thể bắt đầu điều chỉnh firewall .

Điều chỉnh Tường lửa để Cho phép Lưu lượng truy cập Web

Tiếp theo, giả sử rằng bạn đã làm theo hướng dẫn cài đặt server ban đầu để kích hoạt firewall UFW, hãy đảm bảo firewall của bạn cho phép truy cập HTTP và HTTPS. Bạn có thể đảm bảo UFW có profile ứng dụng cho Apache như sau:

  • sudo ufw app list
Output
Available applications: Apache Apache Full Apache Secure OpenSSH

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

  • sudo ufw app info "Apache Full"
Output
Profile: 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 lưu lượng truy cập đến cho profile này:

  • sudo ufw allow in "Apache Full"

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

http://your_server_IP_address 

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

Ubuntu 16.04 Apache mặc định

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

Cách tìm địa chỉ IP công cộng của server của bạn

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

Từ dòng lệnh, bạn có thể tìm thấy điều này theo một số cách. Đầu tiên, bạn có thể sử dụng các công cụ iproute2 để lấy địa chỉ của bạn bằng lệnh :

  • 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 trở lại. Chúng đều là địa chỉ chính xác, nhưng máy tính của bạn có thể chỉ sử dụng được một trong số chúng, vì vậy hãy thử từng địa chỉ.

Một phương pháp thay thế là sử dụng trình curl để liên hệ với bên ngoài để cho bạn biết cách họ nhìn thấy server của bạn. Bạn có thể thực hiện việc này bằng cách hỏi một server cụ thể xem địa chỉ IP của bạn là gì:

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

Dù phương pháp bạn sử dụng để lấy địa chỉ IP của bạn , bạn có thể nhập nó vào thanh địa chỉ của trình duyệt web để truy cập server của bạn.

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

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

, ta có thể sử dụng apt để cài đặt phần mềm của bạn . Lần này, ta cũng sẽ cài đặt một số gói “trợ giúp” khác sẽ hỗ trợ ta trong việc khiến các thành phần của ta giao tiếp với nhau:

  • sudo apt-get install mysql-server

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

, bạn sẽ được hiển thị danh sách các gói sẽ được cài đặt, cùng với dung lượng ổ đĩa mà chúng sẽ chiếm. Nhập Y để tiếp tục.

Trong quá trình cài đặt, server của bạn sẽ yêu cầu bạn chọn và xác nhận password cho user MySQL "root". Đây là account quản trị trong MySQL được tăng quyền . Hãy coi nó giống như account root cho chính server (tuy nhiên, account bạn đang cấu hình bây giờ là account dành riêng cho MySQL). Đảm bảo rằng đây là password mạnh, duy nhất và không để trống.

Khi quá trình cài đặt hoàn tất, ta muốn chạy một tập lệnh bảo mật đơn giản để loại bỏ một số mặc định nguy hiểm và khóa quyền truy cập vào hệ thống database của ta một chút. Bắt đầu tập lệnh tương tác bằng lệnh:

  • mysql_secure_installation

Bạn cần nhập password bạn đã đặt cho account root MySQL. Tiếp theo, bạn sẽ được hỏi có muốn cấu hình VALIDATE PASSWORD PLUGIN .

Cảnh báo: Kích hoạt tính năng này là lựa chọn cần cân nhắc . Nếu được bật, password không phù hợp với tiêu chí đã chỉ định sẽ bị MySQL từ chối và báo lỗi . Điều này sẽ gây ra sự cố nếu bạn sử dụng password yếu kết hợp với phần mềm tự động cấu hình thông tin đăng nhập user MySQL, chẳng hạn như các gói Ubuntu cho phpMyAdmin. Việc tắt tính năng xác thực là an toàn, nhưng bạn phải luôn sử dụng password mạnh, duy nhất cho thông tin đăng nhập database .

Trả lời y là có hoặc bất kỳ điều gì khác để tiếp tục mà không cần bật.

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: 

Bạn cần chọn cấp độ xác thực password . Lưu ý nếu bạn nhập 2 , đối với cấp độ mạnh nhất, bạn sẽ nhận được lỗi khi đặt bất kỳ password 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ừ thông dụng trong từ điển.

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 

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

Using existing password for root.  Estimated strength of the password: 100 Change 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 này, bạn nên bấm Y và nhấn phím Enter ở mỗi hộp thoại. Thao tác này sẽ xóa một số user ẩn danh và database thử nghiệm, vô hiệu hóa đăng nhập root từ xa và tải các luật mới này để MySQL áp dụng ngay những thay đổi mà ta đã thực hiện.

Đến đây, hệ thống database của bạn đã được cài đặt xong và ta có thể tiếp tục.

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

PHP là thành phần cài đặt của ta 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 database MySQL của ta để lấy thông tin và chuyển giao nội dung đã xử lý cho web server của ta để hiển thị.

Ta có thể tận dụng hệ thống apt để cài đặt các thành phần của ta . Ta cũng sẽ bao gồm một số gói trợ giúp, để mã PHP có thể chạy trong server Apache và nói chuyện với database MySQL của ta :

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

Điều này sẽ cài đặt PHP mà không gặp bất kỳ vấn đề gì. 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, ta sẽ muốn sửa đổi cách Apache phân phát file khi một folder được yêu cầu. Hiện tại, nếu user yêu cầu một folder từ server , Apache trước tiên sẽ tìm kiếm một file có tên là index.html . Ta muốn nói với web server của bạn thích các file PHP hơn, vì vậy trước tiên ta sẽ làm cho Apache tìm kiếm index.php .

Để thực hiện việc này, hãy nhập lệnh này để mở file dir.conf trong editor với quyền root:

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

Nó sẽ trông giống thế này:

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>     DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> 

Ta muốn di chuyển file index 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
<IfModule mod_dir.c>     DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> 

Khi bạn hoàn tất, hãy lưu file bằng cách nhấn Ctrl-X . Bạn sẽ phải xác nhận việc lưu bằng lệnh Y rồi nhấn Enter để xác nhận vị trí lưu file .

Sau đó, ta cần khởi động lại web server Apache để các thay đổi của ta được công nhận. Bạn có thể thực hiện việc này bằng lệnh :

  • sudo systemctl restart apache2

Ta 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 Wed 2016-04-13 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 Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server... Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerNam Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

Cài đặt module PHP

Để nâng cao chức năng của PHP, ta có thể tùy chọn cài đặt thêm một số module.

Để xem các tùy chọn có sẵn cho các module và thư viện PHP, bạn có thể chuyển kết quả apt-cache search thành less , một trang cho phép bạn cuộn qua kết quả của các lệnh khác:

  • apt-cache search php- | less

Sử dụng các phím mũi tên để cuộn lên và xuống, và 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:

libnet-libidn-perl - Perl bindings for GNU Libidn php-all-dev - package depending on all supported PHP development packages php-cgi - server-side, HTML-embedded scripting language (CGI binary) (default) php-cli - command-line interpreter for the PHP scripting language (default) php-common - Common files for PHP packages php-curl - CURL module for PHP [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] … : 

Để biết thêm thông tin về chức năng của mỗi module , bạn có thể tìm kiếm trên internet hoặc bạn có thể xem mô tả dài của gói bằng lệnh :

  • apt-cache show package_name

Sẽ có rất nhiều kết quả , với một trường được gọi là Description-en sẽ có phần 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 làm gì, ta có thể nhập:

  • apt-cache 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ứ gì đó giống như sau:

Output
… Description-en: 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 Debian's default PHP version (currently 7.0). …

Nếu sau khi nghiên cứu, bạn cần cài đặt một gói, bạn có thể thực hiện bằng cách sử dụng apt-get install giống như ta đã làm cho phần mềm khác của bạn .

Nếu ta quyết định rằng php-cli là thứ ta cần, ta có thể nhập:

  • sudo apt-get install php-cli

Nếu bạn muốn cài đặt nhiều module , bạn có thể thực hiện bằng cách liệt kê từng module , được phân tách bằng dấu cách, sau apt-get install , như sau:

  • sudo apt-get install package1 package2 ...

Đến đây, LAMP của bạn đã được cài đặt và cấu hình. Tuy nhiên, ta vẫn nên thử nghiệm PHP của bạn .

Bước 4: Kiểm tra PHP processor trên Server Web của bạn

Để kiểm tra xem hệ thống của ta có được cấu hình đúng cho PHP hay không, ta có thể tạo một tập lệnh PHP rất cơ bản.

Ta sẽ gọi tập lệnh này là info.php . Để Apache có thể tìm thấy file và phân phát nó một cách chính xác, nó phải được lưu vào một folder rất cụ thể, được gọi là “web root”.

Trong Ubuntu 16.04, folder này được đặt tại /var/www/html/ . Ta có thể tạo file tại vị trí đó bằng lệnh :

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

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

info.php
<?php phpinfo(); ?> 

Khi bạn hoàn tất, hãy lưu file .

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

Địa chỉ bạn muốn đến sẽ là:

http://your_server_IP_address/info.php 

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

Thông tin PHP mặc định của Ubuntu 16.04

Về cơ bản, trang này cung cấp cho bạn thông tin về server của bạn . Nó rất hữu ích để gỡ lỗi và đảm bảo cài đặt của bạn đang được áp dụng chính xác.

Nếu điều này thành công, thì PHP của bạn đang hoạt động như mong đợi.

Bạn có thể cần xóa file này sau khi kiểm tra này vì nó có thể cung cấp thông tin về server của bạn cho user lạ . Để làm điều này, bạn có thể gõ sau:

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

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

Kết luận

Đến đây bạn đã cài đặt LAMP , bạn có nhiều lựa chọn để làm gì 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 server của bạn .

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

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

Lưu ý : Ta sẽ cập nhật các liên kết ở trên vào tài liệu 16.04 của ta khi nó được viết.


Tags:

Các tin liên quan

Thiết lập server ban đầu với Ubuntu 16.04
2016-04-21
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trong Ubuntu 16.04
2016-04-21
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trong Ubuntu 16.04
2016-04-21
Cách di chuyển một ứng dụng phân tích cú pháp sang server phân tích cú pháp trên Ubuntu 14.04
2016-02-20
Cách sử dụng Ansible và Tinc VPN để bảo mật cơ sở hạ tầng server của bạn
2016-02-18
Cách chạy server phân tích cú pháp trên Ubuntu 14.04
2016-02-03
Cách thiết lập server VNC trên Debian 8
2015-09-29
Cách cấu hình dịch vụ Linux để khởi động tự động sau khi gặp sự cố hoặc khởi động lại - Phần 2: Tham khảo
2015-09-04
Cách thiết lập server IRC trên Ubuntu 14.04 với InspIRCd 2.0 và Shaltúre
2015-08-26
Cách chuyển tiếp cổng thông qua cổng Linux với Iptables
2015-08-20