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
- nginx chạy web tĩnh chỉ có html, css, js.
- nginx chạy php ( web động )
- 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
# 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 ý:
- listen là port bạn muốn truy cập;
- server_name là domain bạn muốn gõ trên thanh url;
- 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