Trong phần trước mình đã giới thiệu cho các bạn cách cài đặt. còn trong phần này mình sẽ hướng dẫn bạn cài giả lập chạy trên máy.

Hướng dẫn cài đặt máy chủ giả lập NGINX PHP trên MacOS phần 2

2020-12-19 2326 lượt xem
Trương Thanh Hùng

Lưu ýnếu bạn chưabiết cài nginx, php, mysql thì xem phần 1:Hướng dẫn cài đặt Nginx PHP-FPM trên MacOS sử dụng Homebrew

mục tiêu muốn đạt được là chúng ta sẽ có 3 dạng giả lập

  1. nginx chạy web tĩnh chỉ có html, css, js. 
  2. nginx chạy php ( web động )
  3. nginx chạy nodejs.

 

Phần 5- cài đặt tên miền ảo etc hosts

a. cách 1 - Giả lập trong file

Bình thường khi chúng ta giả lập tên miền ảo cho mac trong windows khi sử dụng XAMPP thì chúng ta thường vào 

c:\Windows\System32\Drivers\etc\hosts

rồi thì khi vào mac chúng ta cũng phải giả lập tên miền và đường dẫn để chỉnh file giả lập sẽ là /etc/hosts. Nên khi chúng ta muốn chỉnh thì sử dụng lệnh nano trong mac có sẵn:

sudo nano /etc/hosts

sau khi thêm 

127.0.0.1      hungtt.dev

vào cuối file ta bấm tổ hợp phím command + O để lưu lại và command + X để thoát ra.

b. cách 2 - cài DNSMasq.

cách cài đặt DNSMasq bạn follow theo bài viết này cài đặt DNSMasq 

 

Phần 6- Cấu hình Virtual Host cho tên miền

tạo các folder mà bạn sẽ thao tác với nginx không nay thì mai :D 

mkdir -p /usr/local/etc/nginx/conf.d 
mkdir -p /usr/local/etc/nginx/ssl 

Configure nginx.conf

# tạo file log cho nginx
mkdir -p /usr/local/var/www/logs

 Bắt đầu giả lập.

6.0 - Thiết lập user và quyềncho folder chúng ta sẽ code.

ở phần 1 chúng ta thiết lập php chạy username là tên máy chúng ta. và nginx chạy với quyền user [username] [group]; nên bây giờ cần sửa lại folder code có quyền sở hữu của username bạn đã config. 

ví dụ bạn định code ở đây: /usr/local/var/www thì bạn hãy gọi lệnh này để set quyền sở hữu cho folder đó

sudo chown hero:staff /usr/local/var/www
# không khuyến khích bạn sử dụng lệnh dưới đây 
# nhưng nếu bạn không biết gì về quyền linux thì bạn run lệnh này
sudo chmod -R 777 /usr/local/var/www
# mục đích là set full quyền cho folder chạy code

    6.1 - Giả lập 1 web localhost để chạy html

    Mình muốn tạo ra tên miền hungtt.com để làm việc trên localhost. Đầu tiên, thiết lập thư mục root của tên miền để chứa file 

    chúng ta sẽ tạo 1 thư mục có tên hungtt.com trong thư-mục-gốc-nginx

    mkdir -p /usr/local/var/www/hungtt.com

    đầu tiên vào folder /usr/local/etc/nginx/servers  tạo 1 file hungtt.com.conf và sau đó dán nội dung này vào

    server {
    
        listen       80;
        server_name  hungtt.com;
    
        access_log /usr/local/var/www/logs/hungtt.access.log;
    
        location / {
            root   /usr/local/var/www/hungtt.com;
            index  index.html index.htm;
        }
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    để tạo file index.html trong thư mục /usr/local/var/www/hungtt.com chúng ta gõ lệnh này 

    curl -L https://raw.githubusercontent.com/ThanhHungDev/stores/master/test-index.nginx.conf -o /usr/local/var/www/hungtt.com/index.html

    lệnh trên sẽ tạo file index.html vào trong thư mục /usr/local/var/www/hungtt.com sau đó bạn kiểm tra nginx chạy đúng chưa và reload lại nginx như sau: 

    # kiểm tra nginx vừa ghi vào chạy đúng chưa
    nginx -t 
    ### nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
    ### nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
    # sau khi đã ok thì gọi nginx reload
    brew services reload nginx

    đã xong! bây giờ gõ lên url trình duyệt kiểm tra http://hungtt.com :D 

    lưu ý: 

    1. listen là port bạn muốn truy cập; 
    2. server_name là domain bạn muốn gõ trên thanh url; 
    3. root là đường dẫn thư mục html bạn muốn chạy

    6.2- Giả lập 1 web localhost để chạy PHP

    nếu bạn cài đặt được như phần trên html tĩnh rồi thì bạn chỉ cần sửa lại file config nginx như sau: 

    server {
    
        listen       80;
        server_name  hungtt.com;
        index index.php index.html;
    
        root /usr/local/var/www/hungtt.com;
    
        access_log /usr/local/var/www/logs/hungtt.access.log;
        error_log /usr/local/var/www/logs/hungtt.error.log;
    
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ \.php$ {
    
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_pass unix:///usr/local/var/run/php73.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_param SERVER_NAME $host;
            fastcgi_index index.php;
        }
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    

    bạn vào folder /usr/local/var/www/hungtt.com để thêm file index.php hoặc nếu làm biếng thì thử lệnh sau: 

    curl -L https://raw.githubusercontent.com/ThanhHungDev/stores/master/test-index.php.nginx.conf -o /usr/local/var/www/hungtt.com/index.php

    kiểm tra nginx chạy đúng chưa và reload lại nginx như sau: 

    # kiểm tra nginx vừa ghi vào chạy đúng chưa
    nginx -t 
    ### nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
    ### nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
    # sau khi đã ok thì gọi nginx reload
    brew services reload nginx

    đã xong! bây giờ gõ lên url trình duyệt kiểm tra http://hungtt.com :D 

    bài viết trong chủ đề