Cài đặt Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04 / 20.10

Cài đặt Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04 / 20.10

Trong hướng dẫn này, chúng ta sẽ cài đặt một LAMP (Apache, MySQL, PHP) trên Ubuntu Server 20.04 / 20.10 và cấu hình một máy chủ web.

Kiến thức

Bạn nên sử dụng một tài khoản người dùng không phải là root có quyền sudo. Xem thêm hướng dẫn Khởi tạo máy chủ Ubuntu 20.04 để biết thêm chi tiết.

Cài đặt Apache

Cập nhật và cài đặt Apache

sudo apt update && sudo apt install apache2

Quá trình cài đặt có thể mất vài phút. Khi đã cài đặt xong, tiếp tục đến bước Cấu hình Firewall để cấu hình tường lửa trên Ubuntu 20.04 / 20.10.

Cấu hình Firewall

Bạn nên định cấu hình tường lửa để tăng cường bảo mật cho LAMP Stack trên Ubuntu 20.04 / 20.10.

Chúng ta sẽ bắt đầu bằng cách thêm quy tắc tường lửa cho SSH vì nếu bạn đang định cấu hình máy chủ của mình từ xa, bạn sẽ không muốn bị khóa khi bật tường lửa. Bạn có thể đã thực hiện việc này trong hướng dẫn Khởi tạo máy chủ Ubuntu 20.04 của chúng tôi, nhưng sẽ không có hại gì khi thêm lại nó để đề phòng. Nếu quy tắc đã tồn tại, lệnh sẽ bỏ qua nó.

sudo ufw allow OpenSSH

Nếu bạn gặp lỗi “ERROR: could find a profilematch openSSH”, điều này có thể có nghĩa là bạn không định cấu hình máy chủ từ xa và có thể bỏ qua nó.

Bây giờ chúng ta có thể thêm các quy tắc tường lửa cho Apache.

sudo ufw allow in "Apache Full"

Kích hoạt tường lửa nếu nó chưa có.

sudo ufw enable

Nhấn y nếu bạn thấy thông báo “Command may disrupt existing ssh connections”.

Nếu tường lửa được kích hoạt chính xác, bạn sẽ thấy “Firewall is active and enabled on system startup”.

Bạn cũng có thể kiểm tra trạng thái tường lửa hiện tại bằng:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6) Ở trên chúng ta có thể thấy tường lửa đang hoạt động và có hai quy tắc cho mỗi dịch vụ. v6 là viết tắt của IPv6.

Test Apache

Để xem Apache đã được cài đặt đúng trên Ubuntu 20.04/20.10 hay chưa, chúng ta có thể kiểm tra trạng thái bằng dòng lệnh.

sudo service apache2 status

Nếu Apache đang hoạt động, bạn sẽ thấy trạng thái hoạt động màu xanh lục.

● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sat 2020-03-31 08:44:04 CEST; 15min ago
Main PID: 5727 (apache2)
Tasks: 55 (limit: 4915)
CGroup: /system.slice/apache2.service
├─5727 /usr/sbin/apache2 -k start
├─5728 /usr/sbin/apache2 -k start
└─5729 /usr/sbin/apache2 -k start

Mar 31 08:44:04 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...
Mar 31 08:44:04 ubuntu2004 apachectl[5675]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. 
Mar 31 08:44:04 ubuntu2004 systemd[1]: Started The Apache HTTP Server.

Nếu bạn gặp lỗi trên về một tên miền đủ điều kiện, bạn có thể bỏ qua nó.

Bạn có thể cần nhấn q để thoát trạng thái máy chủ nếu sử dụng máy khách SSH.

Bây giờ dịch vụ Apache đã hoạt động, bạn sẽ có thể xem trang web Apache thử nghiệm thông qua trình duyệt web của mình.

Nhập địa chỉ IP của máy chủ của bạn vào thanh địa chỉ và nhấn ENTER. Nếu bạn không biết IP của mình, bạn có thể tìm hiểu bằng lệnh sau.

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

Cài đặt Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04 / 20.10

Hoàn tất! Bạn có thể tìm thấy trang chào mừng mặc định của Apache này trong thư mục /var/www/html. Để chỉnh sửa tập tin này:

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

Nhấn CTRL + X để thoát.

Trong trường hợp bạn có tên miền, bạn có thể chỉ định nó đến địa chỉ IP của máy chủ của bạn mà không cần cấu hình thêm và Apache sẽ tải trang mặc định này. Tuy nhiên, nếu bạn muốn lưu trữ nhiều tên miền trên máy chủ của bạn hoặc thiết lập chứng chỉ SSL với Let’s Encrypt, bạn nên thiết lập một máy chủ ảo (virtual host) ở bước cuối hướng dẫn này.

Cài đặt MySQL

Thành phần tiếp theo của LAMP Stack trên Ubuntu 20.04 / 20.10 là MySQL.

Bắt đầu bằng cách cập nhật kho lưu trữ và cài đặt gói MySQL.

Nhấn yENTER nếu được nhắc cài đặt.

sudo apt update && sudo apt install mysql-server

Sau khi trình cài đặt gói hoàn tất, chúng ta có thể kiểm tra xem dịch vụ MySQL có đang chạy hay không.

sudo service mysql status

Nếu đang chạy bạn sẽ thấy trạng thái Active màu xanh như bên dưới.

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-04-02 02:40:59 CEST; 2min 47s ago
   Main PID: 18476 (mysqld)
     Status: "Server is operational"
      Tasks: 27 (limit: 4915)
     CGroup: /system.slice/mysql.service
             └─18476 /usr/sbin/mysqld

Apr 02 02:40:59 ubuntu2004 systemd[1]: Starting MySQL Community Server...
Apr 02 02:40:59 ubuntu2004 systemd[1]: Started MySQL Community Server.

Bạn có thể cần nhấn phím “q” để thoát khỏi trạng thái dịch vụ nếu bạn tiếp tục.

Cấu hình bảo mật cho MySQL

Bây giờ bạn nên chạy mysql_secure_installation để định cấu hình bảo mật cho máy chủ MySQL của mình trên Ubuntu 20.04 / 20.10.

sudo mysql_secure_installation

Cài đặt PHP

Thành phần tiếp theo và cuối cùng của LAMP Stack trên Ubuntu 20.04 / 20.10 là PHP.

Bắt đầu bằng cách cập nhật kho lưu trữ và cài đặt gói PHP. Chúng tôi cũng sẽ cài đặt thêm hai gói libapache2-mod-phpphp-mysql, cho phép PHP giao tiếp với cơ sở dữ liệu MySQL.

Nhấn yENTER khi được nhắc cài đặt gói PHP.

sudo apt update && sudo apt install php libapache2-mod-php php-mysql

Test PHP

php -version

Nếu PHP được cài đặt đúng, bạn sẽ thấy nội dung tương tự bên dưới:

PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Cầu hình Virtual Host (tùy chọn)

Tạo thư mục và file index.html

sudo mkdir -p /var/www/mydomain.com/public_html
sudo nano /var/www/mydomain.com/public_html/index.html

Create Virtual Host

sudo nano /etc/apache2/sites-available/mydomain.com.conf
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    DocumentRoot /var/www/mydomain.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Lưu lại và thoát ra (nhấn CTRL + X, nhấn Y và nhấn ENTER)

Cho phép máy chủ ảo của bạn thay thế mydomain.com bằng máy chủ của riêng bạn.

sudo a2ensite mydomain.com.conf

Vô hiệu hóa trang web Apache mặc định, nếu không nó sẽ ghi đè lên máy chủ ảo của bạn.

sudo a2dissite 000-default

Khởi động lại Apache

sudo systemctl reload apache2

Cấu hình Apache (tùy chọn)

Bây giờ bạn đã có các trang web phục vụ Apache trên máy chủ LAMP Ubuntu 20.04 / 20.10 của mình, có thể có một số cài đặt cấu hình bổ sung sẽ hữu ích cho bạn.

Vô hiệu hóa Directory Listing and kích hoạt AllowOverride

sudo nano /etc/apache2/apache2.conf

Nhấn CTRL + W và tìm kiếm.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Xóa Indexes để dừng các thư mục liệt kê Apache và thay đổi AllowOverride thành All để bật .htaccess. Bây giờ nó sẽ trông như thế này:

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Lưu và thoát (nhấn CTRL + X, nhấn Y rồi nhấn ENTER)

Khởi động lại Apache.

sudo systemctl restart apache2

Enable mod_rewrite

sudo a2enmod rewrite
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x