简介
Mac上配置apache解析运行python还算方便,自己在网上看教程加上摸索,总算是配成功了,大概分成了几个步骤:
• 首先让apache能够识别.py文件类型
• 配置你程序工作的地址
• 给文件赋予权限
先找到httpd.conf文件
进入finder,同时按住Command+shift(向上箭头)+G这三个按键,会弹出一个前往文件夹的弹框,输入/etc/apache2/,之后你会跳转到apache2的文件夹,下面有一个httpd.conf文件,没错,我们就是要修改这个文件,在修改之前最好备份一下,然后可以复制一份到桌面修改完再替换回来;
当然还可以直接用vim打开,打开终端输入vim /etc/apache2/httpd.conf进入。
apache默认的查找文件地址
搜索查找DocumentRoot,会查找到一条DocumentRoot "/Library/WebServer/Documents"这里的记录,后面双引号里面的就是apache默认的查找文件地址,你写一个test.html文件放在/Library/WebServer/Documents这个文件夹下面可以在浏览器输入localhost/test.html打开该文件,但是此时你编写一个test.py文件放在该目录,同样的打开方式结果可能会令你失望,你可能得到的是代码原样输出。因此我们得让apache识别.py文件类型
添加.py文件类型
搜索AddHandler,你可能搜索到的是#AddHandler cgi-script .cgi这个结果,那么请把前面的#号去掉,在后面添加.py 也就是变成AddHandler cgi-script .cgi .py 这样
再搜索mod_cgi.so 搜到一条记录应该是被注释的 将前面的#号去掉即可
设置你程序工作的地址
搜索Directory,如无例外,你会搜到<Directory “/Library/WebServer/CGI-Executables”>这样的一条记录
这里我设置的地址设置为"/Library/WebServer/Documents",即为
<Directory "/Library/WebServer/Documents">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
搜索ScriptAlias,设置成你自己想要的地址,我都保持一致性:ScriptAlias /Documents/ /Library/WebServer/Documents/
给文件赋予权限
虽然上面的配置完成了,但是还是不能愉快的玩耍,首先你得重启apache 可通过命令 sudo apachectl restart重启,然后给test.py赋予权限,终端输入 sudo chmod 755 /Library/WebServer/Documents/test.py 回车,这时候你就可以愉快地到浏览器输入localhost/test.py来访问你的文件了
备注
1、假如你没有修改权限或者代码有有误(例如没有加上指定用什么解释器运行脚本以及解释器所在的位置),你可能会得到这样的报错信息
2、如果遇到什么报错信息,可以查看apache的错误日志,终端输入sudo cat /private/var/log/apache2/error_log即可
3、可用于测试的代码,第一行的解释器根据你的自己的路径,如果没改过路径,默认是这个#!/usr/bin/python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("Content-type:text/html")
print('')
print('<html>')
print('<head>')
print ("<meta charset='utf-8'>")
print('<title>Hello</title>')
print('</head>')
print('<body>')
print('<h2>hello World</h2>')
print('</body>')
print('</html>')