Hãy nhìn lại lối sống của bạn.

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

1 42

- Advertisement -

LAMP là gì ?

Khi bạn mua một VPS hosting thì bạn chỉ mua được “phần cứng” máy chủ. Để đặt được website của bạn lên bạn phải cấu hình phần mềm Server cho nó. Và LAMP là một trong những cấu hình phần mềm VPS hosting được sử dụng nhiều nhất. Có nhiều cách cài đặt server VPS khác nhau như LEMP, LAMP, LLMP… Trong bài này, Trủng sẽ hướng dẫn bạn chi tiết từng bước để cài đặt LAMP trên Centos 8.

Xem thêm Đánh giá Vultr chi tiết các gói dịch vụ VPS của Vultr

LAMP là chữ viết tắt của các tên dịch vụ được kết hợp lại với nhau như : Linux (OS – Hệ điều hành), Apache (Web server), MariaDB (Cơ sở dữ liệu) và PHP (Ngôn ngữ lập trình). Đọc tắt tên các chữ cái đầu sẽ thành LAMP hay còn gọi là LAMP Stack. LAMP được xây dựng kết hợp để phục vụ cho nhu cầu web server xử lý web động của các ngôn ngữ lập trình phổ biến như PHP. Còn cơ sở dữ liệu dịch vụ sẽ là MariaDB.

Ngày trước khi sử dụng MariaDB làm dịch vụ CSDL còn có phiên bản khác gọi là MySQL, nhưng sau này MariaDB được phát triển tách nhánh (fork) so với MySQL (đã bị Sun Microsystem mua lại năm 2008) và tiếp tục duy trì tính mã nguồn mở. Vì vậy mà các CSDL dữ liệu mã nguồn mở sau này người ta thường cài đặt MariaDB nhiều hơn dù bản chất nhân vẫn tách ra từ MySQL năm xưa.

Xem thêm LiteSpeed ​​so sánh với Apache và Nginx thì như thế nào?

Trong bài viết hôm nay chúng ta sẽ tìm hiểu cách cài đặt LAMP Stack gồm các phiên bản mới nhất của:

  • Web server Apache httpd 2.4.46
  • Ngôn ngữ lập trình PHP 7.4.13
  • Cơ sở dữ liệu MariaDB 10.5
  • Hệ điều hành Linux (CentOS 8)

Cài đặt Apache Web Server

Chúng ta sẽ cài đặt web server Apache qua chương trình ‘yum‘. Mặc định khi cài Apache trên CentOS 8 , đó sẽ là phiên bản 2.4.46.

# yum install httpd -y

Khởi động web server Apache và cấu hình startup service cho Apache.

# systemctl start httpd
# systemctl enable httpd

Kiểm tra phiên bản Apache vừa cài đặt trên CentOS 8 .

# httpd -v
Server version: Apache/2.4.46 (CentOS)
Server built: Aug 07 2020 18:10:38

Kiểm tra dịch vụ Apache đã lắng nghe trên port 80 hay chưa.

# netstat -natp | grep httpd
tcp 0 0 :::80 :::* LISTEN 8441/httpd

Cấu hình rule firewall vào hệ thống web server Apache port 80/443 .

# iptables -A INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT

Giờ ta sẽ kiểm tra bằng cách truy cập địa chỉ IP của VPS/Server, đó có thể là IP Public hay IP Private mạng nội bộ tuỳ thuộc vào hệ thống Web Server Apache của bạn.

http://<ip-address>

Bạn sẽ thấy trang thông báo mặc định của Apache như sau .

Nội dung file web mặc định khi bạn truy cập bằng địa chỉ IP Web Server Apache nằm ở thư mục : /var/www/html/

File cấu hình Apache

Ở bài viết này chúng ta không đi chi tiết việc tìm hiểu cấu hình nâng cao dịch vụ Apache. Mà chỉ tìm hiểu cài đặt cơ bản vì vậy bạn cần biết một số thông tin sau :

File cấu hình Apache: /etc/httpd/conf/httpd.conf
Thư mục chứa cấu hình phụ Apache: /etc/httpd/conf.d/
Thư mục log Apache: /var/log/httpd/
Thư mục web mặc định: /var/www/html/

Cấu hình VirtualHost Apache

Nếu bạn cần cấu hình Apache phục vụ xử lý request cho tên miền của bạn, thì bạn cần khai báo một VirtualHost. Tạo một file cấu hình ở thư mục /etc/httpd/conf.d, đặt tên ví dụ ‘trungbs.com.conf‘ (thay bằng tên miền website của bạn).

# vi /etc/httpd/conf.d/trungbs.com.conf
NameVirtualHost *:80 
<VirtualHost *:80>
     ServerName trungbs.com
     ServerAlias www.trungbs.com
     DocumentRoot /var/www/trungbs.com/public_html/
     ErrorLog /var/log/httpd/error.log
      CustomLog /var/log/httpd/access.log combined
</VirtualHost>

– Tạo thư mục cho website domain tương ứng.

# mkdir -p /var/www/trungbs.com/public_html/

2. Cài đặt dịch vụ Database – MariaDB

Chúng ta sẽ tiến hành cài phiên bản CSDL mới nhất vào thời điểm viết bài hướng dẫn này: MariaDB 10.5

Đầu tiên chúng ta sẽ khởi tạo thông tin Repository MariaDB để chương trình yum biết nguồn tải cài đặt MariaDB.

# vi /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.5 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDBbaseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Ta cho cập nhật thông tin về Repository MariaDB 10.5 mới được cấu hình ở file ‘MariaDB.repo‘. Sau đó thì ta cài đặt các gói chương trình của dịch vụ CSDL Mariadb 10.5 trên Centos 8.

# yum repolist
# yum install MariaDB-server MariaDB-client MariaDB-devel -y

Ta sẽ khởi động dịch vụ MariaDB có tên dịch vụ là ‘mysql‘ trên CentOS 8 và thiết lập cho dịch vụ MariaDB khởi động khi Hệ Điều Hành Linux được khởi động.

# systemctl start mysql.service
# systemctl enable mysql.service

Chúng ta sẽ chạy chương trình script “mysql_secure_installation” ngay sau khi cài đặt MariaDB để bảo mật cho cơ sở dữ liệu :

  • Thay đổi mật khẩu root.
  • Xoá bỏ user anonymous.
  • Tắt tính năng cho phép root login từ ngoài hệ thống.
  • Xoá bỏ database “test” và quyền truy cập nó.
  • Reload lại các table liên quan đến quyền hạn.
# 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!

Kiểm tra phiên bản MariaDB trên CentOS 8.

# mysql -V
mysql Ver 15.1 Distrib 10.5.14-MariaDB, for Linux (x86_64) using readline 5.1

Kiểm tra xem có tiến trình nào của MariaDB đang chạy hay không? Tên tiến trình sẽ là ‘mysqld‘.

# ps aux | grep -v "grep" | grep "mysqld"
mysql 24679 0.1 2.1 1893296 85380 ? Ssl 10:45 0:00 /usr/sbin/mysqld

Mặc định dịch vụ database MariaDB sẽ lắng nghe kết nối trên TCP Socket port 3306. Ngoại trừ trường hợp bạn dùng ‘unix socket‘, bỏ listen port 3306. Bạn có thể dùng lệnh ‘netstat’ hoặc lệnh ‘ss‘ để kiểm tra ứng dụng nào đang listen trên port nào của hệ thống.

# ss -lntp | grep "3306"
LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=24679,fd=20))

Thử đăng nhập user root với mật khẩu bạn đã set khi chạy ‘mysql_secure_installation‘.

# mysql -u root -p'<matkhau>'
 
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.2.9-MariaDB MariaDB Server
 
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MariaDB [(none)]>

Cài đặt PHP 7.4

Trong bài viết này chúng ta cũng sẽ sử dụng cách thức thao tác như ở bài viết link trên, để cài đặt PHP 7.4.13.

Giờ ta sẽ cài repository của REMI.

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7*.rpm

Bây giờ ta sẽ kích hoạt repo remi sử dụng cho PHP 7.4.13 . Các bạn kéo xuống phần nội dung file ở section [remi-php74] , hãy kích hoạt ‘enabled=1‘.

# vi /etc/yum.repos.d/remi-php74.repo
[remi-php74]
name=Remi's PHP 7.4 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php74/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php74/httpsmirror
#mirrorlist=http://cdn.remirepo.net/enterprise/7/php74/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
...
# yum repolist

Giờ ta tiến hành cài đặt PHP 7.4.13 cùng một số module PHP hỗ trợ thường sử dụng. Bạn cũng nên cài đặt một số thư viện cần thiết.

# yum groupinstall "Development Tools" -y
# yum install -y libedit-devel libmcrypt-devel enchant-devel
# yum install --disablerepo=* --enablerepo=remi-php74 php php-mysql php-bcmath php-cli php-common php-devel php-embedded php-enchant php-mbstring php-mcrypt php-pdo php-xml -y

Kiểm tra phiên bản PHP trên hệ thống CentOS nào.

# php -v
PHP 7.4.13 (cli) (built: Apr 24 2018 21:28:23) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

Giờ ta cần khởi động lại dịch vụ Apache để áp dụng chương trình module PHP 7 mới cài vào.

# systemctl restart httpd

Tiếp đến ta sẽ tạo một file thông tin để kiểm tra xem Apache xử lý được PHP code chưa.

# cd /var/www/trungbs.com/public_html/
# vi info.php
<?php
phpinfo();
?>

Giờ ta truy cập trang web domain của chúng ta file info.php trên trình duyệt web xem Apache đã xử lý được code PHP chưa nhé.

http://trungbs.com/info.php

Nếu bạn muốn truy cập file bằng địa chỉ IP của web server Apache thì hãy để ở thư mục : /var/www/html , mặc định global của Apache khai báo.

# cd /var/www/html/
# vi info.php

Tổng kết

Vậy là bạn đã biết cách cài đặt thành công một hệ thống Web server LAMP hoàn chỉnh trên CentOS 8 rồi đấy. Giờ bạn chỉ cần cài trang web của mình lên nữa là xong.

Nếu có bất kì thắc mắc nào thì đừng ngại comment ngay bên dưới để mình hỗ trợ khi cài đặt LAMP nhé.

- Advertisement -

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố.

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

1 bình luận
  1. […] và PHP). Máy chủ LOMP cho hiệu năng cao gấp nhiều lần so với cấu hình kiểu LAMP hay […]