Hướng dẫn apache php-fpm virtual host - máy chủ ảo apache php-fpm

Vhost viết tắt của virtual host là kỹ thuật cho phép nhiều website có thể chia sẻ chung một IP.Trong phần này, chúng ta sẽ tập trung viết về cấu hình vhost cho nginx và cấu hình php-fpm để vhost xử lý được file php Để xem cách cài đặt nginx bạn có thể xem lại bài trước tại đây

1. Mô hình cài đặt

Webserver: Chuẩn bị một máy chủ cài đặt OS Centos 7.6.1810 có địa chỉ IP public 10.10.11.165

Máy Client: Chuẩn bị một máy client cài đặt OS Win 10 để kiểm tra truy cập website với IP client 10.10.11.160

Hướng dẫn apache php-fpm virtual host - máy chủ ảo apache php-fpm

2. Cài đặt php

Để Vhost có thể xử lý được file php chúng ta cần cài đặt php, php-fpm và các extention liên quan.Chúng ta truy cập ssh vào máy chủ webserver và chạy lệnh cài đặt bên dưới

yum install -y php-common php-bcmath php-cli php-devel php-mcrypt php-mysql php-password-compat php-pclzip php-pdo php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-dba php-embedded php-enchant php-mbstring php-intl libssh2 php-pecl-ssh2 php-pecl-memcached php-pecl-memcache php-fpm

Sửa file cấu hình của php-fpm

sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart

3. Cấu hình Virtual Host

Truy cập vào đường dẫn chứa file config của nginx

Backup lại file nginx.conf

mv nginx.conf nginx.conf.bak

Sửa file cấu hình Nginx

cat >> nginx.conf << "EOF"
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
EOF

Truy cập vào đường dẫn chung chứa code của các website và tạo thư mục riêng chứa code của site quyenbx.name.vn

cd /var/www/html
mkdir quyenbx.name.vn

Truy cập đường dẫn chứa các file cấu hình của virtualhost

Backup file cấu hình default

mv default.conf default.conf.bak

Tạo virtualhost trong Nginx

cat >> quyenbx.name.vn.conf << "EOF"
server {
    listen       80;
    server_name  quyenbx.name.vn;
    access_log /var/logs/nginx/quyenbx.name.vn-access_log;
    error_log /var/logs/nginx/quyenbx.name.vn-error_log;

location / {
        root   /var/www/html/quyenbx.name.vn;
        index  index.html index.php index.htm;
    }

location ~ \.php$ {
        root           /var/www/html/quyenbx.name.vn;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
EOF

Tạo thư mục chứa log cho Vhost

Restart lại service nginx

Trong bài viết này sử dụng domain quyenbx.name.vn để cấu hình virtualhost, người dùng cần thay đổi tên domain cũng như đường dẫn chứa code phù hợp

Truy cập đường dẫn chứa code của site quyenbx.name.vn

cd /var/www/html/quyenbx.name.vn

Chúng ta tiến hành tạo 1 file info.php trong thư mục /var/www/html/quyenbx.name.vn để kiểm tra website

cat >> info.php << "EOF"
();
?>
EOF

Sau đó chúng ta truy cập đường dẫn http://quyenbx.name.vn/info.php trả về kết quả như hình bên dưới

Hướng dẫn apache php-fpm virtual host - máy chủ ảo apache php-fpm

LƯU Ý: Thực thế người dùng có domain đăng ký ở các nhà cung cấp ví dụ Nhân Hòa thì cần trỏ bản ghi cho tên miền về IP của server website để có thể truy cập trên trình duyệt web.Trong bài viết này mình sử dụng add file hosts trong windows để truy cập

4. Thêm một Virtual Host khác trên server Web

Để thêm một Vhost khác trên server Website chúng ta thao tác lại các bước bên dưới.Ví dụ mình muốn thêm một website khác trên server này với tên thangth.name.vn

Truy cập vào đường dẫn chung chứa code của các website và tạo thư mục riêng chứa code của site thangth.name.vn

cd /var/www/html
mkdir thangth.name.vn

Truy cập đường dẫn chứa các file cấu hình của virtualhost

Tạo virtualhost trong Nginx

sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart
0

Restart lại service nginx

Trong bài viết này sử dụng domain quyenbx.name.vn để cấu hình virtualhost, người dùng cần thay đổi tên domain cũng như đường dẫn chứa code phù hợp

sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart
1

Truy cập đường dẫn chứa code của site quyenbx.name.vn

sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart
2

Chúng ta tiến hành tạo 1 file info.php trong thư mục /var/www/html/quyenbx.name.vn để kiểm tra website

Hướng dẫn apache php-fpm virtual host - máy chủ ảo apache php-fpm


Sau đó chúng ta truy cập đường dẫn http://quyenbx.name.vn/info.php trả về kết quả như hình bên dưới