- http://juuier.blogspot.com/2014/10/config-virtual-hosts-nginx-in-debian.html
- http://juuier.blogspot.com/2014/10/installing-nginx-with-php5-and-php-fpm_22.html
- modify vhost config
sudo nano /etc/nginx/sites-available/myhost.com
- จากนั้นทำการเพิ่ม box location ของ alias ให้อยู่ภายใต้ box ของ vhost ดังตัวอย่างเช่น ใน default จะมี location /doc/ {...} อยู่ภายใน server {} ประมาณนั้น ให้เราประยุกแบบ /doc/
- สมมุติต้องการสร้าง alias th เราต้องเพิ่ม location /th/ {...} จะได้ประมาณนี้
server {
listen 80; ## listen for ipv4; this line is default and implied
# listen [::]:80 default_server ipv6only=on; ## listen for ipv6
root /media/www/home;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name myhost.com www.myhost.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
location /th {
alias /path/to/th/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
}
- สังเกตุว่าภายใน location /th/ {...} จะมี box location ~ \.php$ {...} ด้วย ซึ่งตัวอย่างของ location /doc {...} มันไม่มีนะ
- box location ~ \.php$ {...} ที่ต้องใส่ไว้ใต้ /th/ เพราะว่า ให้มันรัน PHP ด้วย ถ้าไม่ใส่อันนี้ภายในของ box location /th/ {...} ตัว alias /th/ นี้จะรัน PHP ไม่ได้เลย จะรันได้เฉพาะ myhost.com เท่านั้นเพราะภายใต้ server {...} ของ myhost.com จะมี box location ~ \.php${...} อยู่ด้วย
- ข้อสังเกตุอีกอย่าง location /th{...} กับ location /th/ {...} ต่างกันนะครับ แนะนำให้ใช้แบบ /th เฉยๆ ไม่ต้องมี slash ต่อท้ายนะ
- ถ้าเราตั้ง location /th/ {...} ตอนเราพิมพ์ url ใน browser ต้องพิมพ์ www.myhost.com/th/ คือ ต้องพิมพ์ slash ต่อท้ายด้วย ถ้าไม่พิมพ์ มันจะแสดง 500 Internal Server Error นะครับพี่น้อง
- แต่ถ้าเราสร้าง alias แบบ location /th เมื่อเราพิมพ์ url บน browser ทั้งสองแบบ myhost.com/th หรือ myhost.com/th/ มันก็จะเข้าเว็บได้เหมือนกัน ไม่มีปัญหาอะไรให้กวนใจครับ
- หรือ ง่ายๆ ก็สร้าง sub เว็บภายใต้ root มันจะมีผลเหมือนเราสร้าง alias แบบ location /th {...} เลยง่ายกว่าสร้าง alias อีก แล้วเราจะทำให้มันยุ่งยากทำไมวะ
- http://serverfault.com/questions/565425/nginx-alias-php-fpm-file-not-found
No comments:
Post a Comment