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