LAMP là gì?

LAMP thực chất là phần viết tắt đứng đầu của các từ bao gồm Linux, Apache, MariaDB và PHP. Khi xây dựng hoàn tất LAMP sẽ dùng để chứa và phân phối hoạt động của trang website.

z1572468717101_e0cff07553d21a568ee0695d9434cf45

Ngoài ra LAMP còn có một cách hiểu khác là Linux, Apache, MySQL và PHP. Tuy nhiên từ phiên bản CentOS 7 thì MySQL đã bị thay thế mặc định bằng MariaDB.

Thực hiện cài đặt

Linux

Đầu tiên chúng ta cần môi trường Operating system để cài đặt hệ thống này lên. Ở bài viết này sẽ hướng dẫn các bạn cài đặt trên hệ điều hành CentOS 7. Các bạn cần chuẩn bị một môi trường Lab hoặc máy chủ/máy chủ ảo đã cài đặt sẵn CentOS 7.

Trước khi tiến hành cài đặt, chúng ta nên nạp bộ repository Epel (Extra Packages for Enterprise Linux) vào trước.

Việc này nhằm đảm bảo cung cấp đầy đủ các gói tin cần thiết nhất trong quá trình cài đặt. Có 2 cách để thực hiện:

Cài đặt qua Yum:

yum install epel-release

Cài đặt việc tải file .rpm về và cài trực tiếp bằng Rpm:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
Apache

Tiến hành cài đặt apache bằng lệnh yum:

yum install httpd
# Nhập “y” sau khi được hỏi “Is this ok [y/d/N]:” hoặc có thể thêm “-y” vào cuối lệnh để cài đặt luôn mà không cần hỏi:

yum install httpd -y
# Sau khi hoàn tất thực hiện khởi động và bật khởi động tự động cùng hệ điều hành lại:

systemctl start httpd
systemctl enable httpd
Mở port truy cập trên tường lửa

Mặc định CentOS 7 sau khi cài đặt xong sẽ đóng tất cả các port không sử dụng và không cho truy cập.

Các port này gồm cả 80 và 443 (phục vụ cho việc truy cập website) nên khi cài đặt hoàn tất để truy cập được web bạn cần thực hiện mở các port này trên firewall hoặc tắt firewall đi (không được khuyến cáo).

Tuy nhiên tùy vào iso cài đặt CentOS mà có thể sẽ đi kèm với tường lửa iptables hoặc firewalld. Để kiểm tra thực hiện chạy 2 lệnh sau:

systemctl status firewalld
systemctl status iptables

Nếu trả kết quả cụ thể là firewall nào thì ta thực hiện mở port với lệnh tương ứng bên dưới. Ví dụ kết quả dưới đây tức là firewalld đang là firewall trên máy chủ

z1572469705115_ca96354fa036655167597eb0113429bd

Mở port trên tường lửa:

Firewalld:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

Iptables:

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables-save
systemctl iptables restart

Tắt tường lửa:

Cũng tương tự như trên, tùy thuộc vào firewall nào đang được sử dụng mà các bạn sử dụng lệnh tương ứng

systemctl stop firewalld
systemctl stop iptables

Đồng thời tắt luôn việc tự khởi động các dịch vụ này cùng với OS nhằm tránh việc sau khi restart máy chủ sẽ gặp lỗi không thể truy cập được

systemctl disable firewalld
systemctl disable iptables

Sau khi hoàn tất các công việc, các bạn có thể truy cập vào đường dẫn là IP máy chủ để kiểm tra việc cài đặt, kết quả sẽ hiển thị như hình cho thấy bạn đã thực hiện chính xác toàn bộ các thao tác vừa rồi.

z1572470377795_85f1a6dc5f50d6d83c0c0895baf282ce

Mặc định sau khi cài đặt bằng Yum, các file cấu hình của Webserver Apache sẽ được đặt tại: /etc/httpd

Thực hiện tạo Virtual Hosts nếu như bạn có nhu cầu lưu trữ và phân phối một website đã có domain của bản thân. Giả sử domain bạn có là blog.7hostvn.com:

mkdir -p /home/blog.7hostvn.com/public_html/
vi /etc/httpd/conf.d/blog.7hostvn.com.conf

Sau đó thêm vào file conf đoạn nội dung sau:


ServerName blog.7hostvn.com
ServerAlias www.blog.7hostvn.com
ServerAdmin support@7host.vn
DocumentRoot /home/blog.7hostvn.com/public_html/
ErrorLog /var/log/httpd/blog.7hostvn.com.error.log
CustomLog /var/log/httpd/blog.7hostvn.com.log combined

Thực hiện restart apache để áp dụng config vừa tạo:

systemctl restart httpd

MariaDB

Ở bước này chúng ta sẽ thực hiện cài đặt MariaDB. Tuy nhiên khi cài đặt mặc định thì phiên bản MariaDB chúng ta nhận được sẽ rất cũ, thường là phiên bản 5.5. Để cài đặt phiên bản mới nhất ở thời điểm viết bài này là MariaDB 10.3 ta thực hiện như sau:

vi /etc/yum.repos.d/MariaDB.repo

Tạo file repo của MariaDB và chèn vào các đoạn nội dung sau:

# MariaDB 10.3 CentOS repository list - created 2018-09-28 08:13 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Tiếp tục việc cài đặt với yum:

yum install MariaDB-server MariaDB-client

Sau khi cài đặt xong thực hiện khởi chạy cũng như bật tính năng khởi động cùng hệ điều hành:

systemctl start mariadb
systemctl enable mariadb

Mặc định sau khi cài đặt các dịch vụ về cơ sở dữ liệu gồm MariaDB cũng như MySQL bước tiếp theo cần khởi chạy tiến trình “mysql_secure_installation” nhằm thực hiện cấu hình các tài khoản ban đầu cho dịch vụ:

mysql_secure_installation

[root@kvm /]# 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!

Sau khi hoàn tất, thử đăng nhập tài khoản root với password vừa tạo ở lệnh “mysql_secure_installation” vừa rồi

[root@kvm /]# mysql -uroot -pz9qDyUpgFxA0Rx
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.3.9-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)]>

PHP

Việc cài đặt PHP cũng tương tự như MariaDB. Để cài đặt được phiên bản PHP phù hợp thì cần thêm vào bộ thư việc repository của Remi.

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils -y
yum-config-manager --enable remi-php71
yum install php php-opcache php-mysql php-cli php-devel php-common php-mcrypt php-gd php-curl -y

Trong bài viết này sẽ cài đặt PHP 7.1, tuy nhiên các bạn có thể thay thế php71 sang các phiên bản theo yêu cầu như php72 php56.

Sau khi cài đặt hoàn tất, restart lại apache:

systemctl restart httpd

Kiểm tra thử việc cài đặt đã hoàn thành chưa bằng cách tạo một file info.php đơn giản.

vi /home/blog.7hostvn.com/public_html/info.php

Đặt vào file này nội dung như sau:

Thực hiện kiểm tra bằng cách truy cập http://blog.7hostvn.com/info.php

z1572472391888_29700dd9aa173883bfc5bfd54e9f04a5

Trong trường hợp chưa có domain cụ thể các bạn có thể kiểm tra bằng cách tạo file info.php tại /var/www/html sau đó truy cập địa chỉ http://ip.a.b.c/info.php

Như vậy là đã hoàn tất việc cài đặt LAMP trên máy chủ sử dụng hệ điều hành CentOS. Ngoài ra nếu trong quá trinh cấu hình gặp lỗi hoặc có vấn đề thắc mắc, các bạn có thể liên hệ trực tiếp hỗ trợ của 7Host tại support@7host.vn hoặc website https://7host.vn

Các bài viết liên quan: