python CGI MAC下的環(huán)境配置 ?之前查的資料都太老 ? ?Unix系統(tǒng)自帶apache 配置CGI很好配 ?但是網(wǎng)上資料基本不符合要求坑了比較久,很坑
最后自己 仔細(xì)看了看 apache下 httpconf文件的內(nèi)容來解決 ? ?
一.環(huán)境 ?Unix系統(tǒng)自帶apache2.4
二.去目錄 /etc/apachectl2/?? 找到?httpd.conf 配置服務(wù)器支持
打開?httpd.conf?
?????1贮缅、找到 LoadModule cgi_module libexec/apache2/mod_cgi.so 去掉之前# 開放這個(gè)模塊
? ? ?2、 ?? AddHandler cgi-script .cgi ?.py ? 加上.py ?
? ? ?3璧亚、找到 ?<Directory "/Library/WebServer/CGI-Executables"> 修改如下
? ? <Directory "/Library/WebServer/CGI-Executables">
? ? ? ? ? ? AllowOverride None
? ? ? ? ? ? Options ExecCGI ? ?
? ? ????????Order allow,deny
? ? ????????Allow from all
? ? ?</Directory>
????????????這個(gè)主要是 規(guī)定這個(gè)文件里面在服務(wù)器里 是否允許 訪問 執(zhí)行 修改等等 ? ??
三、上面的配置就基本完成
? ? ?接下來 只需要保存 并重啟 apache ? ? ?sudo ?apachectl restart?
? ? 將你自己的可執(zhí)行 py文件 ?如 test.py ?放到 ?/Library/WebServer/CGI-Executables 目錄下 ?你就可以在瀏覽器 ?通過 ? localhost/cgi-bin/test.py 來訪問了
Why?
1.為什么 test.py 要放到Library/WebServer/CGI-Executables 目錄下
因?yàn)樯厦媾渲玫?CGI生效文件夾的相關(guān)配置 是這個(gè)目錄 與上面的< Directiory "/Library/WebServer/CGI-Executables">保持一致
當(dāng)然可以放到其它目錄 不過 文件夾配置要修改 ?下面的別名 ?以及 ?瀏覽器 訪問的地址也要相應(yīng)的修改
2.為什么是訪問?localhost/cgi-bin/test.py ?而不是訪問 ?localhost/CGI-Executables/test.py?
因?yàn)?httpconf 中給/Library/WebServer/CGI-Executables 取了個(gè)別名
默認(rèn)配置 ScriptAliasMatch ? ^/cgi-bin/((?!(?i:webobjects)).*$) " ? ?/Library/WebServer/CGI-Executables/$1"
3.還有一些其它坑 ?
比如文件訪問權(quán)限 可以 通過修改 ?chmod 755 test.py?
其它的訪問localhost/cgi-bin/test.py 錯(cuò)誤 ?可以在錯(cuò)誤日志里面找?
ErrorLog 文件位置 ?在 ?httpd.conf 文件中搜 ErrorLog ?就能找到對應(yīng)目錄 一般是?/private/var/log/apache2/error_log脂信,然后去對應(yīng)目錄下