Bài viết này sẽ hướng dẫn các bạn cài đặt bộ Web Server (cài đặt LEMP) để chạy các source web. LEMP là gì ? Tại sao nó có tên như vậy ?
LEMP là tên viết tắt của 4 kí tự đầu trong bộ cài đặt bao gồm: Linux, NGINX, MariaDB, PHP. Vậy các bạn có thắc mắc chữ NGINX tại sao là chữ E không, NGINX đọc là “Engine X” nên chữ E được lấy từ đây.
Ngoài ra còn một bộ cài đặt Web Server nữa là LAMP sẽ được tìm hiểu trong một bài viết khác.
>> Cài đặt LAMP trên CentOS: tại đây
Các phần mềm sẽ cài đặt trong bài viết này là:
- Linux: sử dụng CentOS 7
- NGINX : web server
- MariaDB: là phiên bản mã nguồn đóng được tách ra từ mã nguồn mở MySQL. (theo wikipedia )
- PHP phiên bản 5.6 hoặc 7.3 ( cân nhắc khi sử dụng phiên bản mới nhất)
Cài đặt LEMP bao gồm các bước sau: #
1. Chuẩn bị CentOS 7 #
Hãy chắc chắn rằng server CentOS 7 của bạn đang được cập nhật mới nhất, hoặc gõ lệnh sau để cập nhật và cài phần mềm cần thiết:
yum update -y && yum install nano -y
Cài đặt các Repo cần thiết
- CentOS 7 EPEL repository
yum install epel-release
- CentOS 7 Remi repository
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
- CentOS 7 Nginx repository
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2. Cài đặt NGINX #
yum install -y nginx
Chờ một vài phút để server cài đặt NGINX từ repo
3. Cài đặt PHP và Module #
Enable PHP 7.3 và cài đặt
yum-config-manager --enable remi-php73
yum install -y php php-fpm php-common
Cài đặt module php cần thiết cho web của bạn, chứ không cần phải bắt buộc cài đặt hết:
- APCu (php-pecl-apc) – APCu userland caching
- CLI (php-cli) – Command-line interface for PHP
- PEAR (php-pear) – PHP Extension and Application Repository framework
- PDO (php-pdo) – A database access abstraction module for PHP applications
- MySQL (php-mysqlnd) – A module for PHP applications that use MySQL databases
- Memcache (php-pecl-memcache) – Extension to work with the Memcached caching daemon
- XML (php-xml) – A module for PHP applications which use XML
- MBString (php-mbstring) – A module for PHP applications which need multi-byte string handling
Để cài đặt các module trên dùng lệnh sau:
yum install -y php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pecl-memcache php-pecl-memcached php-mbstring
4. Cài đặt MariaDB #
Dùng lệnh sau để cài đặt:
yum install -y mariadb mariadb-server
Start MariaDB và bật khi khởi động:
systemctl start mariadb.service systemctl enable mariadb.service
Cài đặt ban đầu và cấu hình mật khẩu cho user root MariaDB
mysql_secure_installation
Thực hiện các câu hỏi tiếp theo khi chạy lệnh này:
Enter current password for root (enter for none): Enter Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y Thanks for using MariaDB!
5. Cấu hình NGINX #
Mở file config của NGINX để chỉnh sửa cấu hình:
nano /etc/nginx/nginx.conf
Chỉnh worker_processes bằng với số CPU trên server của bạn
Cấu hình nginx virtual hosts
nano /etc/nginx/conf.d/default.conf
Sửa lại nội dung file như sau:
############
server {
listen 80 default_server;
server_name example.com;
location / {
root /var/www/html;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
############
Lưu lại và restart dịch vụ để áp dụng cấu hình.
systemctl stop nginx.service systemctl start nginx.service
6. Cấu hình PHP-FPM #
Chỉnh sửa user và group
nano /etc/php-fpm.d/www.conf user = nginx group = nginx
Restart dịch vụ php-fpm
systemctl stop php-fpm.service systemctl start php-fpm.service
7. Cấu hình firewalld #
Mặc định trên CentOS 7 dịch vụ tường lửa được bật và chỉ mở 1 cổng duy nhất là SSH. Để mở cổng truy cập web (http,https) ta làm như sau:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd –reload
8. Kiểm tra hoạt động #
Chạy một file info.php để kiểm tra có Web Server có hoạt động hay không
nano /var/www/html/info.php
Thêm đoạn sau và lưu lại
<?php phpinfo(); ?>
Mở trình duyệt web nhập địa chỉ server như sau: http://<ip-address>/info.php
File info.php này chứa thông tin version PHP và các module đã cài đặt.
Như vậy là đã hoàn thành việc cài đặt LEMP trên CentOS 7.
Video hướng dẫn
Tham khảo tài liệu:
https://nginx.org/en/docs/install.html