Cài đặt LAMP stack trên Fedora 35 | 36 | 37 | 38- Install LAMP stack on Fedora 35 | 36 | 37 | 38

Trong bài đăng trên blog này, chúng ta sẽ xem cách install và định cấu hình LAMP Stack trên Fedora 38/37/36/35/34/33. LAMP Stack là tập hợp các công cụ nguồn mở được sử dụng để lưu trữ các ứng dụng web. Từ viết tắt của LAMP stack bao gồm:

  • L - Hệ thống máy chủ Linux 
  • A - Máy chủ HTTP Apache
  • M - Cơ sở dữ liệu MySQL/MariaDB
  • P - Ngôn ngữ lập trình PHP

Để LAMP stack hoạt động, bạn cần cài đặt và định cấu hình từng thành phần một. Các bước để cài đặt và định cấu hình LAMP Stack trên Fedora phải đơn giản.

Bước 1: Cài đặt Fedora Linux

Bản phát hành gần đây của Fedora tính đến thời điểm viết bài này là Fedora 38. Mình có hướng dẫn cài đặt cho máy chủ Vật lý, Máy ảo và cho việc triển khai Vagrant Box:

  • Cài đặt Fedora 38 - Hướng dẫn chi tiết từng bước (đang bổ sung)

Bước 2: Cài đặt các gói cơ bản / thiết lập SELinux

Cài đặt các gói cơ bản như vim, Curl, wget, telnet

sudo dnf -y update
sudo dnf -y install vim bash-completion curl wget telnet

Nếu đây là lần đầu bạn nghe về SELinux, tôi khuyên bạn nên đặt SELinux vào chế độ "Permissive" hoặc hoàn toàn tắt nó. Để kiểm tra trạng thái SELinux, hãy chạy lệnh:

$ sudo sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

Chế độ mặc định đang được thực thi (enforcing). Để đặt nó ở chế độ Permissive, hãy thực hiện:

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Để vô hiệu hóa hoàn toàn:

sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Xác nhận trạng thái đã được cấu hình vĩnh viễn:

$ cat /etc/selinux/config | grep SELINUX=
# SELINUX= can take one of these three values:
SELINUX=permissive

Bước 3: Cài đặt máy chủ Apache httpd

Khi bạn đã cài đặt và cập nhật hệ điều hành Fedora, hãy tiến hành cài đặt máy chủ Apache httpd.

sudo dnf -y install httpd

Định cấu hình cài đặt cơ bản httpd

Chỉnh sửa tệp cấu hình /etc/httpd/conf/httpd.conf và đặt:

ServerAdmin admin@example.com
ServerName  example.com
ServerTokens Prod

Bạn có thể tùy ý đặt Keepalive

KeepAlive On

Kích hoạt và bắt đầu dịch vụ httpd

sudo systemctl start httpd
sudo systemctl enable httpd

Nếu bạn có tường lửa đang chạy, hãy cho phép dịch vụ http https.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Bước 4: Install PHP & Extensions

Cài đặt PHP và cấu hình httpd để hỗ trợ thực thi các tập lệnh PHP. 

Đừng quên cài đặt các tiện ích mở rộng phổ biến:

sudo dnf -y install php php-cli php-php-gettext php-mbstring php-mcrypt php-mysqlnd php-pear php-curl php-gd php-xml php-bcmath php-zip

Xác nhận phiên bản PHP đã cài đặt của bạn:

$ php -v
PHP 8.1.14 (cli) (built: Jan  4 2023 06:45:14) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.14, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.14, Copyright (c), by Zend Technologies

Bạn có thể xem các tiện ích mở rộng đã tải bằng cách chuyển tùy chọn -m tới phpcommand:

$ php -m

Đặt múi giờ PHP trên tệp /etc/php.ini

date.timezone = Africa/Nairobi

Bước 5: Cài đặt cơ sở dữ liệu MySQL/MariaDB

Để cài đặt MySQL trên Fedora, hãy sử dụng hướng dẫn của chúng tôi:

Các kho lưu trữ gốc của Fedora có sẵn MariaDB, bạn có thể cài đặt nó bằng lệnh dnf.

sudo dnf install mariadb-server

Sau khi cài đặt, thiết lập bộ ký tự

sudo vim /etc/my.cnf.d/mariadb-server.cnf

Đặt bộ ký tự của bạn trong phần [mysqld]

[mysqld]
character-set-server=utf8

Sau đó khởi động dịch vụ mariadb và kích hoạt nó để khởi động khi khởi động

sudo systemctl start mariadb
sudo systemctl enable mariadb

Thực hiện các cài đặt ban đầu của MariaDB như thiết lập mật khẩu root, vô hiệu hóa đăng nhập root từ xa, v.v.:

$ sudo mysql_secure_installation 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Trả lời các câu hỏi như dưới đây:

  • Enter current password for root (enter for none): <Enter>
  • Đặt mật khẩu gốc? [Có/không]
  • Xóa người dùng ẩn danh? [Có/không]
  • Xóa cơ sở dữ liệu thử nghiệm và truy cập vào nó? [Có/không]
  • Tải lại bảng đặc quyền ngay bây giờ? [Có/không]

Đăng nhập thử nghiệm:

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select version();
+-----------------+
| version()       |
+-----------------+
| 10.3.10-MariaDB |
+-----------------+
1 row in set (0.001 sec)

Tạo và xóa cơ sở dữ liệu thử nghiệm:

MariaDB [(none)]> CREATE DATABASE test_db;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' IDENTIFIED BY "StrongPassword";
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

Để loại bỏ cơ sở dữ liệu và người dùng, sử dụng:

MariaDB [(none)]> DROP DATABASE test_db;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> DROP USER 'test_user'@'localhost';
Query OK, 0 rows affected (0.001 sec)

Mình xác nhận máy chủ Cơ sở dữ liệu đang hoạt động tốt. Để cho phép kết nối từ xa, hãy cho phép cổng 3306 trên tường lửa:

sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload

Bạn cũng có thể giới hạn quyền truy cập từ các mạng đáng tin cậy.

sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
service name="mysql" source address="10.1.1.0/24" accept'

Bước 6: Kiểm tra cài đặt Lamp Stack của bạn

Như một bài kiểm tra cho việc cài đặt Lamp Stack trên hệ thống Fedora Server / Desktop, hãy tạo một trang kiểm tra PHP.

sudo vim /var/www/html/phpinfo.php

Thêm:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

Tải lại dịch vụ httpd và mở trang trên trình duyệt của bạn.

sudo systemctl restart httpd

Mở trang thông tin PHP đã thêm http://[serverIP]/phpinfo.php

Trong bài viết này, chúng ta đã hướng dẫn install LAMP stack trên Fedora một cách đơn giản và nhanh chóng. Với Apache, MySQL và PHP đã được cài đặt, bạn đã sẵn sàng để phát triển và triển khai các ứng dụng web trên hệ thống Fedora của mình. Chúc bạn thành công trong việc sử dụng LAMP stack trên Fedora!