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!
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:
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)
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
Để 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
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
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
# 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!