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

Hướng dẫn cài đặt LAMP (Linux, Apache, MariaDB, PHP) trên CentOS 7 | Chào các bạn, hôm nay chúng ta sẽ cùng tìm hiểu các bước cài đặt LAMP làm hệ thống Web Server/CSDL xử lý code PHP trên CentOS 7 nhé. Một trong những bước cực kì quan trọng để public hệ thống website dành cho các bạn lập trình viên mới chập chững. Đầu tiên bạn có thể cài đặt lab trên máy ảo, hoặc trên server hay VPS bạn thuê bên ngoài đều được.

cài đặt lamp trên centos 7

Có thể bạn cũng quan tâm chủ đề khác
Tìm hiểu cấu trúc Ubuntu/Debian Repository cơ bản
Unix time là gì ?
Hướng dẫn xác định tên OS Linux và phiên bản OS bằng bash shell
Remote Desktop là gì ? 
Giám sát log server Linux thời gian thực với Log.io

LAMP là gì ?

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), Apache (Web Server), MariaDB (CSDL)PHP . Đọ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.

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

  • Apache 2.4
  • PHP 7.0
  • MariaDB 10.2
  • Linux (CentOS 7)

Nếu các bạn muốn cài đặt riêng lẻ thì Cuongquach.com có các bài viết hỗ trợ:
Hướng dẫn cài đặt Apache trên CentOS 7
Hướng dẫn cài đặt MariaDB 10.2 trên CentOS 7
Hướng dẫn cài đặt PHP 5.5,5.6 trên CentOS

1. 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 7 , đó sẽ là phiên bản 2.4 .

# 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 7.

# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Apr 20 2018 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 .

cài đặt lamp trên centos 7 -1

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ụ ‘lab.cuongquach.com.conf‘ (thay bằng tên miền website của bạn).

# vi /etc/httpd/conf.d/lab.cuongquach.com.conf
NameVirtualHost *:80

<VirtualHost *:80> 
     ServerName lab.cuongquach.com
     ServerAlias www.lab.cuongquach.com
     DocumentRoot /var/www/lab.cuongquach.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/lab.cuongquach.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.2

Đầ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.2 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = 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.2 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.2 trên centos 7.

# 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 7 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 nhằm đạt được các mục tiêu sau :

  • 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 7.

# mysql -V
mysql Ver 15.1 Distrib 10.2.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. (Xem thêm: Hướng dẫn sử dụng lệnh SS trên Linux)

# 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)]>

3. Cài đặt PHP 7

Nếu bạn muốn cài đặt các phiên bản PHP cũ như PHP 5.5, 5.6 thì có thể tham khảo bài viết sau : Hướng dẫn cài đặt PHP 5.5,5.6 trên CentOS 6,7

Còn 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.0 .

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.0 . Các bạn kéo xuống phần nội dung file ở section [remi-php70] , hãy kích hoạt ‘enabled=1‘.

# vi /etc/yum.repos.d/remi-php70.repo
[remi-php70]
name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php70/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php70/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/php70/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.0 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-php70 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.0.30 (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/lab.cuongquach.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://lab.cuongquach.com/info.php

cài đặt lamp trên centos 7 - 2

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 7 rồi đấy. 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é.

Nguồn: https://cuongquach.com/

Previous articleTop 7 rủi ro bảo mật mà các doanh nghiệp nhỏ phải đối mặt
Next articleHướng dẫn cài đặt osTicket trên CentOS 7 làm kênh Ticket Helpdesk
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !