Hướng dẫn cài đặt Apache, MariaDB, PHP (LAMP) trên Debian

Cập nhật ngày 09/02/2025
Lượt xem: 59

Nào rảnh thì viết tiếp!!! Làm trên điện thoại mệt wa!

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.

Lưu ý trước khi cài đặt

  • Debian 12+
  • Đăng nhập root
  • Sau này sẽ quản lý web bằng user www-data

Cập nhật package

apt update && apt upgrade

Bước 1 – Cài đặt Apache

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

#!/bin/sh
# To add this repository please do:

if [ "$(whoami)" != "root" ]; then
    SUDO=sudo
fi

${SUDO} apt-get update
${SUDO} apt-get -y install lsb-release ca-certificates curl
${SUDO} curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
${SUDO} dpkg -i /tmp/debsuryorg-archive-keyring.deb
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-apache2.gpg] https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list'
${SUDO} apt-get update
sudo apt update
sudo apt install apache2

# Bật module cần thiết
sudo a2enmod md ssl headers rewrite proxy proxy_hcheck proxy_balancer proxy_fcgi proxy_http proxy_wstunnel

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. Với máy không bật tường lửa thì bỏ qua bước này.

Kiểm tra cài đặt thành công bằng cách truy cập thẳng vào IP VPS hoặc http://localhost nhé.

Hướng dẫn cài đặt Apache, MariaDB, PHP (LAMP) trên Debian

Bước 2 – Cài đặt MariaDB

sudo apt install mariadb-server
sudo service mariadb start

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

sudo mysql_secure_installation

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

#!/bin/sh
# To add this repository please do:

if [ "$(whoami)" != "root" ]; then
    SUDO=sudo
fi

${SUDO} apt-get update
${SUDO} apt-get -y install lsb-release ca-certificates curl
${SUDO} curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
${SUDO} dpkg -i /tmp/debsuryorg-archive-keyring.deb
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update

sudo apt update
apt install php8.3 php8.3-apcu php8.3-cli php8.3-curl php8.3-fpm php8.3-intl php8.3-gd php8.3-mbstring php8.3-mysql php8.3-sqlite3 php8.3-xml php8.3-zip

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

php -v

Step 4 – Tạo Virtual Host

Có một vài lưu ý ở đây:

  • User chạy web sẽ là www-data. Nếu bạn muốn chạy user khác, hãy tự cấu hình lại.
  • Thư mục chứa source của mình là /srv
  • Thư mục chứa source cho web của mình là /srv/ngatngay.net
  • Mình sử dụng 1 file cấu hình duy nhất do mình dùng ít!

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

sudo mkdir -p /srv/ngatngay.net

Tạo file index.php

nano /srv/ngatngay.net/index.php

Nội dung:

<?php phpinfo() ?>

Chuyển quyền sở hữu cho www-data:

sudo chown -R www-data:www-data /srv

Nhớ kỹ lệnh trên, gặp lỗi phần quyền thì chạy lại là được.

Tạo cấu hình Apache:

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

Nội dung:

<Directory /srv>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
    ServerName ngatngay.net
    DocumentRoot /srv/ngatngay.net

    <FilesMatch "\.php$">
        SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

“Bật” cấu hình

sudo a2ensite ngatngay

Nếu muốn “tắt” thì làm như sau

sudo a2dissite ngatngay

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

Dành cho phát triển, cài trên laptop ý

sudo nano /etc/hosts

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

127.0.0.1 ngatngay.net

Khởi động lại Apache

sudo service apache2 restart

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!