Tags

, , ,

Để đổi gió hôm nay chúng ta sẽ sử dụng những công nghệ mới để xây dựng Web server mã nguồn mở với web server là Nginx hay còn được biết với cái tên khác là  “LEMP” là hệ thống viết tắt của: LinuxNginxMySQL and PHP. Nginx là một máy chủ proxy ngược mã nguồn mở (open source reverse proxy server) sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP , cũng như dùng làm cân bằng tải (load balancer), HTTP cache và máy chủ web (web server). Dự án Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn (high concurrency), hiệu suất cao và sử dụng bộ nhớ thấp. Nginx được biết đến bởi sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên…

Để thực hiện ta cần 1 máy ảo azure chạy hệ điều hành CentOS 7 trở lên.

  1. Cài đặt hệ điều hành CentOS 7:

Như bài hướng dẫn trước chúng ta có thể tạo máy ảo với hệ điều hành Linux cực kỳ đơn giản và nhanh chóng: https://phamhoainam1215.wordpress.com/2015/10/17/azure-3-linux-cai-dat-centos/

Lưu ý: Chỉ nên để hệ điều hành Linux ở giao diện Console cho tiện dụng và nhẹ. Và vì có cài giao diện desktop thì chúng ta cũng chẳng cần remote desktop lên đó để làm gì, chỉ cần SSH vào là đủ.

1

  1. Cài đặt Web server Nginx:

CentOS 7/6.5/5.10 Remi repository:

## CentOS 7 ##

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

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

## CentOS 6 ##

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

## CentOS 5 ##

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

CentOS 7/6.5/5.10 Nginx repository:

## CentOS 7 ##

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

## CentOS 6 ##

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

## CentOS 5 ##

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

Tiến hành cài đặt đơn giản như sau:

# yum -y update

# yum -y install epel-release

# yum install -y nginx php-fpm php-common

Để web server khởi động cùng hệ thống ta dùng lệnh sau:

# systemctl start nginx

# systemctl enable nginx

# systemctl start php-fpm

# systemctl enable php-fpm

Kiểm tra web server trên trình duyệt web, các bạn có thể gõ IP hoặc DNS của máy ảo azure trên trình duyệt web để kiểm tra(nhớ mở end points của dịch vụ http trên azure trước)

3

  1. Cài đặt php

Cài đặt php và một số gói hỗ trợ khác để hỗ trợ CMS như wordpess, joomla…:

# yum -y install php php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-pecl-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Khởi động lại dịch vụ nginx

# systemctl restart nginx

  1. Cấu hình Nginx và PHP-FPM:

Sửa file /etc/nginx/conf.d/default.conf hoặc nếu chưa có thì tạo mới và chỉnh sửa một số nội dung sau:

# vi /etc/nginx/conf.d/default.conf

thêm vào nội dung sau:

server {

    listen       80;

    server_name example.com;

 

    location / {

        root   /usr/share/nginx/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           /usr/share/nginx/html;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

}

 Restart lại nginx:

# systemctl restart nginx

Cấu hình PHP-FPM:

Ở đây ta sẽ cấu hình user và group từ apache thành nginx:

# vi /etc/php-fpm.d/www.conf

…..

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default user’s group

;       will be used.

; RPM: apache Choosed to be able to access some dir as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx 

…..

Restart PHP-FPM:

# systemctl restart php-fpm

Để kiểm tra ta tạo file phpinfo để hiển thị thông tin của php ra, nếu hiển thị được là đã cấu hình đúng:

# vi /usr/share/nginx/html/phpinfo.php

Thêm vào đó nội dung sau:

<?php

phpinfo();

?>

4

  1. Cài đặt MySQL(MariaDB):

Việc cài đặt cũng đơn giản như trên:

# yum install -y mariadb-server mariadb

# systemctl start mariadb

Đặt password root cho mysql và bỏ những cấu hình mặc định:

# mysql_secure_installation

Tiến hành cài đặt như cài đặt LAMP ở bài trước

4

Cho phép mysql khởi động cùng hệ thống:

# systemctl restart mariadb

# systemctl enable mariadb

  1. PhpMyAdmin:

Một phần không thể thiếu là cài đặt giao diện quản trị cho MySql:

https://www.phpmyadmin.net/downloads/

Chọn phiên bản phpMyAdmin phù hợp với phiên bản php trên web server:

PHP ta đang xài là phiên bản 5.4 và mysql(mariadb) version là 5.5 vậy ta sẽ càI PhpMyAdmin với phiên bản 4.4.15.1

5

Lấy link tải phpmyadmin:

Sử dụng lệnh wget để tải file:

# cd /usr/share/

# wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.1/phpMyAdmin-4.4.15.1-english.zip

Ta sẽ tải vào thư mục /usr/share/ để thuận tiện hơn cho sau này khi cài đặt những CMS.

Tiến hành giải nén, cấu hình cơ bản, và tạo liên kết đế thư mục web để chạy:

# yum -y install zip unzip

# cd /usr/share/

# unzip phpMyAdmin*.zip

# mv phpMyAdmin*/ phpMyAdmin

# cp /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php

# vi /usr/share/phpMyAdmin/config.inc.php

Tìm dòng: $cfg[‘blowfish_secret’] = ”; vào thêm những ký tự ngẫu nhiên vào dấu nháy để xác thực cookie:

Vd: $cfg[‘blowfish_secret’] = ‘abcd1234ABCD’;

 #  ln -s /usr/share/phpMyAdmin/ /usr/share/nginx/html/

Truy xuất trình duyệt web với phần mở rộng là phpMyAdmin sẽ thấy:

http://<ipaddr>/phpMyAdmin/

6

Đăng nhập với user root và password là do các bạn đã đặt lại như ở phần trên sẽ vào được phần quản trị:

7

  1. Cài đặt CMS Joomla:

Vào địa chỉ https://www.joomla.org/download.html để lấy liên kết tải file: https://github.com/joomla/joomla-cms/releases/download/3.4.6/Joomla_3.4.6-Stable-Full_Package.zip

Tiến hành cài đặt:

# cd /usr/share/nginx/html/

# wget https://github.com/joomla/joomla-cms/releases/download/3.4.6/Joomla_3.4.6-Stable-Full_Package.zip

# unzip Joomla_3.4.6-Stable-Full_Package.zip

# rm -rf Joomla_3.4.6-Stable-Full_Package.zip

Vào trình duyệt web, sẽ thấy kết quả:

8

Điền thông tin cần thiết và nhấn Next!

9


Ở đây ta cần nhập thông tin cơ sở dữ liệu để cài đặt tiếp, để tạo cơ sở dữ liệu ta sẽ vào phpMyAdmin để tạo giống như bài Cài đặt web server Apache:

Nhấn Next:

9

Nhấn Next:

11

Ở mục Pre-Installation Check kiểm tra xem chức năng nào chưa bật thì ta bật nó lên, như ở trên hình là “configuration.php Writeable” là no có nghĩa là file nào chưa có quyền ghi hoặc không tồn tại.

Nhấn Install để tiếp tục cài đặt:

12

13

Cuối cùng ta tạo file có nội dung như trên hình vào thư mục web và xóa thư mục cài đặt theo hướng dẫn:

# cd /usr/share/nginx/html/

# vi configuration.php

# chown 644 configuration.php

Nếu vẫn còn lỗi thì sửa như sau:

# vi /etc/selinux/config

Sửa giá trị:

SELINUX=disabled

Sau đó khởi động lại máy ảo.

Kết quả:

14

 

Demo: https://channel9.msdn.com/Blogs/Azure–Linux/Azure-3-Linux-Ci-t-Web-Server-Nginx-LEMP