Hướng dẫn cài Apache, MySQL, PHP (LAMP) trên Ubuntu

Cập nhật ngày 18/11/2024
Lượt xem: 112

Thuật ngữ "LAMP"  này là một từ viết tắt đại diện cho hệ điều hành Linux, với máy chủ web Apache. 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ởi PHP. Nôm na ta thường gọi nó là máy chủ web.

Hướng dẫn này có thể dùng cho WSL2 Ubuntu Windows 10!

Điều kiện trước khi cài đặt

  • Ubuntu 22.04+
  • Có quyền sudo

Bước 1 - Cài đặt Apache và cấu hình Firewall

Apache là một trong những máy chủ web phổ biến nhất trên thế giới. Nó có tài liệu đầy đủ, có một cộng đồng người dùng tích cực và đã được sử dụng rộng rãi.

Cài đặt Apache

sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt install apache2

# Bật module rewrite
sudo a2enmod rewrite

Khi quá trình cài đặt hoàn tất, bạn sẽ cần điều chỉnh cài đặt tường lửa của mình để cho phép truy cập HTTP. Để chỉnh sửa tường lửa ta dùng lệnh UFW (mình thì tắt nó luôn)

Cách tắt (không khuyên dùng khi đang chạy thực tế):

sudo ufw disable
sudo ufw app list

Output

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Giải thích:

  • Apache : Cấu hình này chỉ mở cổng 80 (không được mã hóa).
  • Apache Full : Cấu hình này mở cả cổng 80 (không được mã hóa) và cổng 443 (được mã hóa TLS / SSL).
  • Apache Secure : Cấu hình này chỉ mở cổng 443(được mã hóa TLS / SSL).
sudo ufw allow in "Apache"

Kiểm tra lại

sudo ufw status

Output

Status: active
 To                         Action      From
 --                         ------      ----
 OpenSSH                    ALLOW       Anywhere                                
 Apache                     ALLOW       Anywhere                  
 OpenSSH (v6)               ALLOW       Anywhere (v6)                    
 Apache (v6)                ALLOW       Anywhere (v6)

Khởi động Apache

sudo service apache2 start

Kiểm tra bằng trình duyệt bằng cách truy cập (hiện như hình dưới là đã cài thành công)

http://localhost/

 

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

Mình dùng MariaDB nhé!!!

sudo apt install mariadb-server
sudo service mariadb start

Sau khi cài đặt xong, chạy lệnh sau để cấu hình ban đầu

sudo mysql_secure_installation

Cấu hình xong bạn có thể chạy thử MySQL bằng lệnh sau:

mysql

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

Để giao tiếp với MySQL và Apache ngoài cài đặt gói PHP bạn cần cài thêm 2 module của PHP là libapache2-mod-php và php-mysql

sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php php-mysql php-curl

Kiểm tra lại sau khi cài xong

php -v

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

Sau khi làm tới bước này tạm thời là bạn đã có thể sử dụng rồi

Step 4 - Tạo Virtual Host

Mục đích của cái này là để sử dụng nhiều tên miền trên một máy chủ. Sau khi xong bước 3, ta có thư mục /var/www/html , thư mục này để chứa source code của các bạn.

Tuy nhiên, nó chỉ dùng được cho 1 trang web mà thôi, rất là hạn chế. Đó là lý do chúng ta cần tạo Virtual Host.

Cài thư viện hỗ trợ php cho Apache:

sudo apt install libapache2-mod-php

Đầu tiên tạo một thư mục mới cho web mới:

sudo mkdir /var/www/your_domain

Chuyển quyền sở hữu thư mục thành người dùng hiện tại:

sudo chown -R $USER:$USER /var/www/your_domain

Mở file cấu hình Apache sửa như sau:

sudo nano /etc/apache2/apache2.conf

Tìm dòng <Directory /var/www/>

Bên dưới nó có dòng AllowOverride None sửa thành AllowOverride All

<Directory /var/www/>
        # ...
        AllowOverride All
        # ...
</Directory>

Tạo thêm tệp cấu hình tên miền trong sites-available

sudo nano /etc/apache2/sites-available/your_domain.conf

Dán mã sau vào và lưu file lại

<VirtualHost *:80>
    DocumentRoot /var/www/your_domain
    ServerName your_domain
</VirtualHost>

Thêm cấu hình tên miền vào apache

sudo a2ensite your_domain

Nếu muốn xóa thì làm như sau

sudo a2dissite your_domain

Kiểm tra lỗi cú pháp:

sudo apache2ctl configtest

Cấu hình file hosts để truy cập được từ trình duyệt

sudo nano /etc/hosts

Thêm dòng sau vào cuối

127.0.0.1 your_domain

Khởi động lại Apache

sudo service apache2 restart

Bây giờ tạo một tệp HTML chạy thử thôi

nano /var/www/your_domain/index.html

Dán mã sau vào và lưu lại

<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.
</p>
</body>
</html> 

Truy cập và tận hưởng =))

http://your_domain

Bước 5 - Kiểm tra PHP hoạt động với Apache

Tạo một file có tên info.php với nội dung sau

<?php phpinfo(); ?>

Truy cập

http://your_domain/info.php

Bước 6 - Sửa lỗi quyền truy cập

# chmod 755
sudo chmod +x /home/$USER

Đọc bài này: https://symfony.com/doc/current/setup/file_permissions.html#1-using-acl-on-a-system-that-supports-setfacl-linux-bsd

Vậy là đã xong!