Mac配置apache cgi服务
CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口
Mac上是自带CGI运行程序的,但是直接是不可以用,需要进行相应的修改才可以正常运行。
1、打开httpd.conf文件,直接打开是编辑不了的,需要用root权限,具体操作为:sudo vim /etc/apache2/httpd.conf打开文件。找到
LoadModule cgi_module libexec/apache2/mod_cgi.so并取消注释。
Web 服务器支持及配置
在你进行 CGI 编程前,确保您的 Web 服务器支持 CGI 及已经配置了 CGI 的处理程序。
Apache 支持 CGI 配置:
设置好CGI目录:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
所有的HTTP服务器执行 CGI 程序都保存在一个预先配置的目录。这个目录被称为 CGI 目录,并按照惯例,它被命名为 /var/www/cgi-bin 目录。
CGI 文件的扩展名为 .cgi,python 也可以使用 .py 扩展名。
默认情况下,Linux 服务器配置运行的 cgi-bin 目录中为 /var/www。
如果你想指定其他运行 CGI 脚本的目录,可以修改 httpd.conf 配置文件,如下所示:
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
在 AddHandler 中添加 .py 后缀,这样我们就可以访问 .py 结尾的 python 脚本文件:
AddHandler cgi-script .cgi .pl .py
2、在AddHandler cgi-script .cgi后面增加.py,表示可以访问.py结尾的python脚本文件,也可以增加.php,表示可以访问.php结尾的脚本文件。(我自己的理解)
3、配置完成后在/Library/WebServer/CGI-Executables下创建hello.py文件,内容如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "Content-type:text/html"
print
print '<html>'
print '<head>'
print '<meta charset="utf-8">'
print '<title>Hello World - 这是一个测试程序!</title>'
print '</head>'
print '<body>'
print '<h2>Hello World! 我是用来测试cgi的</h2>'
print '</body>'
print '</html>'
4、文件创建好后修改权限 ,同样需要root权限用户。
sudo chomd 755 hello.py
5、重启appachectl服务
sudo apachectl restart
6、效果如下所示
2.打开apache
- apachectl start
3.在浏览器输入
- localhost:8080
brew安装的apache默认端口是8080,mac自带的apache默认端口是80
- subl /usr/local/etc/apache2/2.4/httpd.conf
- 当然没有sublime的话,可以用图形化界面打开
- open /usr/local/etc/apache2/2.4/
- 在Finder中用一个文本编辑器打开httpd.conf
5.修改httpd.conf文件
- 修改成:
- DocumentRoot "/Users/deng/Sites”
- <Directory "/Users/deng/Sites">
- ScriptAlias /cgi-bin/ "/Users/deng/Sites/cgi/" //放在Directory外
- 如果注释了下面三句,就取消注释
LoadModule cgi_module libexec/apache2/mod_cgi.so
- AddType text/html .shtml
- AddOutputFilter INCLUDES .shtml
- 在文件最后加上以下内容
- AddHandler cgi-script .cgi .sh .pl
- <Directory "/Users/deng/Sites/cgi/">
- Options ExecCGI
- AllowOverride None
- Order deny,allow
- Allow from all
- </Directory>
6.给Sites和Sites/cgi权限
- chmod +x /Users/deng/Sites
- chmod +x /Users/deng/Sites/cgi
7.重启Apache
- apachectl restart
文件名: first.pl
- #!/usr/bin/perl
- =head1 DESCRIPTION
- printenv — a CGI program that just prints its environment
- =cut
- print "Content-type: text/html\n\n";
- for my $var ( sort keys %ENV ) {
- printf "<h2>%s = \"%s\"<h2>\n", $var, $ENV{$var};
- }
需要给 first.pl权限
- chmod +x /Users/deng/Sites/cgi/first.pl
9.尝试在终端运行first.pl
- /Users/deng/Sites/cgi/first.pl
如果有输出,说明可以运行。
- localhost:8080/cgi-bin/first.pl
- Content-Type:text/html
- body
- /usr/local/var/log/apache2/access_log 访问apache的请求在这个文件都可找到
- /usr/local/var/log/apache2/error_log 所有非200 OK的错误信息都会在这个文件找到
Mac配置apache cgi服务的更多相关文章
- Mac配置apache,mysql
===========Apache=============================== 1. 启动关闭Apache MAC系统已经预装了apache,启动.关闭.查看版本等命令如下: 启动a ...
- Windows 配置Apache+CGI
首先还是先在官网下载Apache,版本为Apache 2.4.26 x64,下载64位的地址为:http://www.apachehaus.com/cgi-bin/download.plx 下载完成后 ...
- 安装配置apache sentry服务
环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...
- mac配置apache
http://www.cnblogs.com/snandy/archive/2012/11/13/2765381.html 用自带的 sudo apachectl -v sudo apachectl ...
- mac 配置apache
Apache配置 对httpd.conf文件的配置.首先打开 /etc/apache2/httpd.conf文件,也就是Apache2.4的相关配置文件. 连接php 首先我们将相应的PHP版本配置进 ...
- Mac 配置Apache Php编译ssl错误解决
终端 Php编译错误解决 //错误信息 unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) i ...
- 配置Apache服务器 数据库mySQL
Mac 配置 apache php 详细解说 一.开启apache 并切改变引导 1.打开终端 输入:sudo apachectl start 回车,关闭终端 2.打开浏览器,地址栏输入 ...
- Mac下配置Apache服务
这篇文章主要是针对Mac用户,第一次搭建本地开发环境的同学,已经搭建过的同学可以忽略. Mac自带的Apache还是XAMPP? That is a question. 其实自带的apache也够用了 ...
- Mac下配置apache
一.前言 今天遇到问题,怎么配置apache在Mac上,原来Mac自带apache,只需要自己开启配置一下就行了. 二.步骤: 1.修改apache的http_conf文件 打开finder前往/pr ...
- 在Mac OS X中配置Apache + PHP + MySQL
在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...
随机推荐
- .NET 8 高性能跨平台图像处理库 ImageSharp
前言 传统的 System.Drawing 库功能丰富,但存在平台限制,不适用于跨平台开发..NET 8 的发布,ImageSharp 成为了一个更好的选择. ImageSharp 是一个完全开源.高 ...
- 解决DDD最大难题-如何划分领域
本文书接上回<反DDD模式之"复用">,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术 ...
- git clone失败,超时,速度慢
最近使用git这个工具,发现git clone指令经常由于网络问题导致失败.查找相关资料之后,找到办法为修改网址,具体为: 将 git clone https://github.com/alibaba ...
- 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现二
一.前言介绍: 1.1 项目摘要 随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势.传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速.便捷需求.这些问题不 ...
- 2024-11-16:哈沙德数。用go语言,如果一个整数能够被它的各个数位上数字的和整除, 我们称这个整数为哈沙德数(Harshad number)。 给定一个整数 x, 如果 x 是哈沙德数,则返回
2024-11-16:哈沙德数.用go语言,如果一个整数能够被它的各个数位上数字的和整除, 我们称这个整数为哈沙德数(Harshad number). 给定一个整数 x, 如果 x 是哈沙德数,则返回 ...
- VSCode关于编译scss的插件
先安装两个插件,live server和 live sass compiler两个插件 然后将下面的代码复制到设置(文件---首选项----设置----打开设置json)中 "liveSas ...
- PostgreSql Docker 主从热备,异步流复制方案
环境说明 Docker Windows 11 PostgreSql 16 方案步骤 0. 宿主机准备: 找个地方创建一个文件夹用来挂载容器中数据库Data文件夹,这里我用的是: C:\Users\Ad ...
- 《Java开发手册》-部分编码规范分享
0. 前言 本文来自<阿里巴巴Java开发手册>,以下内容均根据自己偏好摘抄.总结.分享. 1. 编程规约 包名单数,类名复数.例如:com.tao.util.JsonUtils.java ...
- Spring Boot 使用 slf4j 进行日志记录
SLF4J,即简单日志门面(Simple Logging Facade forJava),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J 是一个用于日志系统的简单Fa ...
- 生成式AI如何辅助医药行业智能营销
生成式AI如何辅助医药行业智能营销 生成式AI在医药行业的智能营销中发挥着日益重要的作用,它通过多种方式辅助医药企业提升市场洞察能力.优化营销策略.增强客户互动和体验,从而推动销售增长和品牌价值的提升 ...