Apache支持的语言
1.html 默认支持的语言
2.php
1 编辑php的默认测试页
vim /var/www/html/index.php
<?php
phpinfo();
?>
退出保存后打开浏览器查看什么都查看不到
http://172.25.254.127/index.php
2 yum install php -y 安装php软件
systemctl restart httpd 重启服务
再次查看可以查看到蓝色页面
3.cgi
网站注册的接口cgi(普通网关接口)
网络的语言装换到sql,用接口进行转换
1 建立cgi的默认发布目录
mkdir -p /var/www/html/cgi
2 编辑一个默认发布文件,查看手册看写法
vim /var/www/html/cgi/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`; 反向单引号``表示先执行
3 chmod +x index.cgi
给文件可执行的权限
此时在浏览器中访问文件中的内容时会裸露在代码中的
172.25.254.127/cgi/index.cgi
4 vim /etc/httpd/conf.d/adefatul.conf
编辑配置文件,告诉系统cgi下的文件是要被执行的
<Directory "/var/www/html/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi 标示cgi脚本的特点是什么
</Directory>
systemctl restart httpd
此时访问会出现报错,因为目录的安全上下文不匹配
5 修改安全上下文
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
##修改安全上下文
restorecon -RvvF /var/www/html/cgi
##刷新安全上下文
6 在浏览器中访问成功
4.WSGI cgi的安全模式
1 yum install mod_wsgi -y 安装wsgi的软件
2 vim /var/www/html/cgi/westos.wsgi
#!/usr/bin/env python
import time
def application (environ, start_response):
response_body = 'UNIX EPOCH time is now: %s\n' % time.time()
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', '1'),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)
return [response_body]
3 chmod +x /var/www/html/cgi/westos.wsgi
给文件添加可执行权限
在浏览其中查看同样是裸露的代码
直接执行是没有效果的
4 vim /etc/httpd/conf.d/adefault.conf
编辑配置文件
是虚拟机的一种形式,在配置文件中写入
<VirtualHost _default_:80>
Documentroot "/var/www/html"
WSGIScriptAlias /WSGI /var/www/html/cgi/hello.wsgi
##告诉系统访问WSGI或者以.wsgi结尾的文件就是wsgi的脚本文件
</VirtualHost>
需要声明wsgi的执行在访问的时候需要执行内容
systemctl restart httpd
在浏览器中访问可以查看
显示的是硬件时间