Mac OS X 下安裝Nginx問題碰到的朋友不多,因為在mac系統安裝nginx環境不實用了,不過有人碰到了我們就一起來看看,說不定對你會有協助呢。
我是通過brew install nginx的,前面都很順利,
nginx常用命令:
nginx -s stop/quit/reopen/reload
用ln -s 命令建立個軟體連結於 /usr/sbin/ 下以方便操作。
直接搞個server看看效果,代碼如下:
server {
listen 80;
server_name www.geekso.com;
index index.html index.htm index.php;
root /Users/han/Documents/git/msg/web/public;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ /(.svn|.git|.ht|.DS) {
deny all;
internal;
}
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
然後sudo命令重啟nginx,訪問www.3lian.net發現php檔案可以訪問執行,訪問圖片、js、css...就報403 forbidden?
403不是沒有許可權嘛,好吧,加上許可權750許可權應該就能解決,加上去發現還是403,這下不懂了。會不會我nginx配置錯了,一行行看,還是沒找到問題,一直在想為什麼同一目錄下php檔案可以訪問,訪問其它檔案就報403,各種排除法,搞nginx, 還是不行。最終靠google搜尋還真找到了遇到跟我一樣的人。
解決方案:用ls -l 查看/Users/, /Users/xxx/, /Users/xxx/Documents/, /Users/xxx/Documents/git/ 的許可權,確保均含最後一個x(其他使用者的執行許可權),倘若/Users/xxx/Documents/ 缺少x,執行 chmod o+x /Users/xxx/Documents/ 把x 許可權添加上即可。
其實搞了半天也是許可權問題。