LAMP là một nhóm các phần mềm mã nguồn mở được cài đặt cùng nhau để xây dựng môi trường web server. Trong bài viết này sẽ hướng dẫn cách install lamp Ubuntu 16.04.
Nội dung
Giới thiệu
“LAMP” stack là một nhóm 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 web động và ứng dụng web. Thuật ngữ này là một từ viết tắt đại diện cho hệ điều hành Linux, với web server Apache. Dữ liệu trang web được lưu trữ trong cơ sở dữ liệu MySQL và nội dung được xử lý bằng PHP.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn install LAMP Ubuntu 16.04 Droplet chi tiết, đơn giản nhất.
Điều kiện tiên quyết để install lamp ubuntu 16.04
Trước khi bắt đầu, bạn nên có một non root user account với các đặc quyền sudo
được thiết lập trên server của bạn. Bạn có thể thực hiện bằng cách hoàn thành cách bước 1-4 trong thiết lập server cho Ubuntu 16.04.
Bước 1: Cài đặt Apache và Allow trong Firewall
Apache là một trong những web server phổ biến nhất trên thế giới. Có rất nhiều tài liệu để sử dụng nó. Và Apache cũng được sử dụng rộng rãi trong phần lớn lịch sử của web. Điều này khiến nó trở thành lựa chọn mặc định tuyệt vời để lưu trữ một trang web.
Có thể cài đặt Apache một cách dễ dàng bằng trình quản lý package của Ubuntu, apt
. Trình quản lý package cho phép cài đặt hầu hết các phần mềm một cách dễ dàng từ kho lưu trữ được duy trì bởi Ubuntu.
Đối với mục đích của chúng tôi, có thể bắt đầu bằng cách nhập các lệnh sau:
sudo apt-get update
sudo apt-get install apache2
Vì đang sử dụng lệnh sudo
, các thao tác này được thực hiện với đặc quyền root. Nó sẽ yêu cầu bạn nhập mật khẩu của user để xác minh.
Sau khi nhập mật khẩu, apt
sẽ cho bạn biết package nào sẽ được cài đặt và dung lượng ổ đĩa bổ sung mà chúng sẽ chiếm. Nhấn Y và nhấp Enter để tiếp tục quá trình cài đặt.
Đặt Global SeverName để ngăn chặn cảnh báo Syntax
Tiếp theo, chúng tôi sẽ thêm một dòng vào file /etc/apache2/apache2.con
f để ngăn chặn thông báo cảnh báo. Mặc dù vô hại, nhưng nếu bạn không cài đặt ServerName
trên global thì 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ở tệp cấu hình chính bằng chỉnh sửa văn bản:
sudo nano /etc/apache2/apache2.conf
Ở cuối tệp, thêm lệnh ServerName
, trỏ chuột đến tên miền chính của bạn. Nếu bạn không có tên miền được liên kết với server của mình, bạn có thể sử dụng địa chỉ IP public của server:
Chú ý:
Nếu bạn không biết địa chỉ IP của server mình, hãy chuyển xuống phần tìm địa chỉ IP public của server để tìm địa chỉ đó.
/etc/apache2/apache2.conf
. . .
ServerName server_domain_or_IP
Lưu và đóng tệp khi bạn đã hoàn tất.
Tiếp theo, kiếm tra lỗi cú pháp bằng cách gõ:
sudo apache2ctl configtest
Vì đã thêm chỉ thị ServerName
global, những gì bạn thấy sẽ là:
Output
Syntax OK
Khởi động lại Apache để triển khai các thay đổi của bạn:
sudo systemctl restart apache2
Bây giờ 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 vào Web
Tiếp theo, giả sử bạn đã làm theo hướng dẫn thiết lập server ban đầu để 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 lưu lượng HTTP và HTTPS. Bạn có thể đảm bảo rằng UFW có một 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 Apache Full
, nó sẽ cho thấy rằng 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 profile này :
sudo ufw allow in "Apache Full"
Bạn có thể kiểm tra ngay để xác minh mọi thứ có hoạt động như mong muốn không. Truy cập địa chỉ IP public của server trong trình duyệt web của bạn:
http://your_server_IP_address
Bạn sẽ thấy trang web mặc định Ubuntu 16.04 Apache. Trang này dành cho mục đích thông tin và thử nghiệm. Nó sẽ trông như sau:
Nếu bạn nhìn thấy trang này, thì web server của bạn đã được cài đặt. Có thể nó sẽ truy cập thông qua tường lửa của bạn.
Cách tìm địa chỉ IP Public của server
Nếu bạn không biết địa chỉ IP Public của máy mình là gì, có thể tìm thấy nó bằng một số cách. Thông thường, đây là địa chỉ để 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 nó theo một số cách. Đầu tiền bạn có thể sử dụng iproute2
để lấy địa chỉ của mình bằng cách nhập:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Sau đó, bạn sẽ nhận output gồm 2 hoặc 3 dòng. Chúng đều là địa chỉ chính xác. Nhưng máy của bạn chỉ có thể sử dụng một trong số đó nên hãy thử từng địa chỉ.
Một phương pháp thay thế đó là dùng tiện tích curl
để nói với bên ngoài biết cách họ “nhìn thấy” server của 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
Bất kể bạn sử dụng phương pháp nào thì hãy nhập địa chỉ đó vào thanh địa của trình duyệt web chỉ để truy cập vào server của bạn.
Bước 2: Install MySQL
MySQL là một hệ quản trị 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. Đó là nơi mà trang web có thể lưu trữ thông tin.
Chúng ta có thể sử dụng apt
để cài đặt phần mềm của mình. Lần này, chúng tôi sẽ cài đặt một số package “helper” khác hỗ trợ các thành phần của chúng tôi 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 nó đã được chạy sẵn trong lệnh để cài đặt Apache.
Danh sách các package sẽ được cài đặt sẽ hiển thị cùng với dung lượng ổ đĩa mà chúng chiếm. Hãy 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 mật khẩu cho “root” user MySQL. Đảm bảo rằng đây là một mật khẩu mạnh, duy nhất và không được để trống.
Khi quá trình cài đặt hoàn tất, chạy một tập lệnh bảo mật đơn giản để loại bỏ một số nguy hiểm và khóa quyền truy cập và hệ thống cơ sở dữ liệu. Bắt đầu script tương tác bằng cách chạy:
mysql_secure_installation
Bạn sẽ được yêu cầu nhập mật khẩu bạn đã đặt cho tài khoản root MySQL. Tiếp theo, bạn sẽ được hỏi có muốn đặt cấu hình VALIDATE PASSWORD PLUGIN
không.
Cảnh báo:
Nếu tính năng này bật, mật khẩu không phù hợp với tiêu chí đã chỉ định thì sẽ bị MySQL từ chối và có lỗi. Tắt tính năng xác thực có thể an toàn nhưng mật khẩu phải mạnh và là duy nhất.
Nhập Y để đồng ý, hoặc phím khác để tiếp tục mà không cần enable.
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 sẽ được yêu cầu chọn cấp độ xác thực mật khẩu. Khi nhập 2, đối với cấp độ mạnh nhất, sẽ có lỗi khi mật khẩu không chứa số, chữ hoa, chữ thường và ký tự đặc biệt.
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ật xác thực mật khẩu, độ mạnh của mật khẩu sẽ được hiển thị và hỏi bạn có muốn thay đổi mật khẩu không. Nếu hài lòng với mật khẩu hiện tại, nhập n cho “không”:
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 các câu hỏi còn lại, nhấn Y và Enter vào mỗi lần nhắc. Thao tác này sẽ xóa một số người dùng ẩn danh và cơ sở dữ liệu thử nghiệm. Nó cũng vô hiệu hóa đăng nhập từ xa và tải các quy tắc mới. MySQL sẽ ngay lập tức hiểu những thay đổi đã được thực hiện.
Tại thời điểm này, hệ thống cơ sở dữ liệu của bạn đã được thiết lập xong và có thể tiếp tục.
Bước 3: Install PHP
PHP là thành phần được thiết lập xử lý code để 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. Hơn thế nữa, nó còn có thể chuyển nội dung đã xử lý cho web server để hiển thị.
Có thể tận dụng hệ thống apt
để cài đặt các thành phần bao gồm một số package. Các package đó sẽ trợ giúp để code PHP có thể chạy trong server Apache và cơ sở dữ liệu MySQL:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
Điều này sẽ cài đặt PHP mà không xảy ra vấn đề gì và sẽ được kiểm tra trong giây lát.
Nếu người dùng yêu cầu một directory từ server, trước tiên Apache sẽ tìm kiếm một file có tên là index.html.
Nếu muốn web server của bạn ưu tiên tệp PHP hơn thì hãy cho Apache tìm kiếm tệp index.php.
Để thực hiện việc này, hãy nhập lệnh này để mở dir.conf
trong trình soạn thảo văn bản với root:
sudo nano /etc/apache2/mods-enabled/dir.conf
Output:
/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Nếu muốn di chuyển tệp chỉ mục PHP được đánh dấu đến vị trí đầu tiên sau DirectoryIndex
thì 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 hoàn tất, hãy lưu và đóng tệp bằng cách nhấn Ctrl+X. Xác nhận việc lưu bằng cách nhập Y rồi nhấn Enter để xác nhận vị trí lưu tệp.
Sau đó, cần phải khởi động lại server Apache để thay đổi được xác nhận. Thực hiện việc đó như sau:
sudo systemctl restart apache2
Có thể kiếm tra trạng thái 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]: *
Cài đặt Module PHP
Để nâng cao chức năng của PHP, có thể thêm một số module trong tùy chọn cài đặt.
Muốn 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
. Khi đó, bạn có thể cuộn qua output của các lệnh.
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ả thành phần tùy chọn đã cài đặt sẽ cung cấp cho bạn một mô tả ngắn cho mỗi thành phần đó:
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 mỗi module thì có thể tìm trên internet hoặc có thể xem mô tả của package bằng cách nhập:
apt-cache show package_name
Sẽ có rất nhiều output.Với trường Description-en
, sẽ có một phần giải thích về chức năng mà module cung cấp.
Ví dụ, để tìm module php-cli
thì nhập:
apt-cache show php-cli
Cùng với một số lượng lớn thông tin , bạn sẽ tìm thấy được những thứ 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 muốn cài đặt một package thì hãy sử dụng lệnh apt-get install
giống như cách bạn đã làm cho các phần mềm khác.
Khi cần php-cli
thì có thể nhập như sau:
sudo apt-get install php-cli
Nếu muốn cài đặt nhiều module thì hãy liệt kê từng module. Sau đó phân tách bằng dấu cách sau lệnh apt-get install
như sau:
sudo apt-get install package1 package2 ...
Vào lúc này, LAMP stack đã được cái đặt và cấu hình. Tuy nhiên vẫn cần kiểm tra PHP.
Bước 4: Kiếm tra và xử lý PHP trên web server
Bước cuối cùng trong việc install LAMP Ubuntu 16.04 là kiểm tra lại PHP trên web server.
Để kiểm tra hệ thống đã cấu hình đúng cho PHP hay không, có thể tạo một tập lệnh PHP cơ bản.
Tập lệnh này sẽ được gọi là info.php
. Để Apache có thể tìm thấy tệp và phân tách nó một cách chính xác thì nó phải được lưu vào một mục cụ thể, được gọi là “web root”.
Trên Ubuntu 16.04, directory này được đặt tại /var/www/html/
. Ta có thể tạo file trong đường dẫn này bằng cách nhập lệnh sau:
sudo nano /var/www/html/info.php
Thao tác này sẽ mở ra một file trống. Đặt thêm text sau (đây là một PHP code) vào trong file:
info.php
<?php
phpinfo();
?>
Khi hoàn thành thì hãy lưu và đóng tệp lại.
Bây giờ hãy kiểm tra xem web server có hiển thị chính xác nội dung được tạo bởi tập lệnh PHP hay không. Để thử diều này thì cần truy cập trang này trong trình duyệt web. Điều này sẽ cần một địa chỉ IP công khai của server.
Địa chỉ của trang đó sẽ như sau:
http://your_server_IP_address/info.php
Trang mà bạn truy cập sẽ trông như sau:
Về cơ bản, trang này cung cấp thông tin về server theo PHP. Nó rất hữu ích để debug và đảm bảo rằng cài đặt đã được áp dụng chính xác.
Nếu thành công thì PHP sẽ hoạt động được như mong đợi.
Có thể xóa tệp sau khi kiểm tra. Vì có thể nó cung cấp thông tin trái phép cho server. Để làm điều này, nhập như sau:
sudo rm /var/www/html/info.php
Trang này có thể sẽ luôn được tạo lại nếu sau này bạn cần truy cập thông tin.
Kết luận
Bây giờ ta đã hoàn thành việc install LAMP Ubuntu 16.04. 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 mọi loại trang web và phần mềm web trên server của mình.
Bạn nên đảm bảo rằng kết nối đến web server đã được bảo mật bằng cách cung cấp chúng qua HTTPS.
Theo DigitalOcean.