文章目录
一. LAMP介绍
LAM(M)P:
L:linux
A:apache (httpd)
M:mysql, mariadb
M:memcached 提供缓存功能
P:php, perl, python
WEB资源类型:
静态
资源:原始形式与响应内容一致,在客户端浏览器执行
动态
资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端
Web相关语言
客户
端技术: html,javascript,css,jpg
服务器
端技术:php, jsp,python,asp
CGI
CGI:Common Gateway Interface通用网关接口
可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准
请求流程:
Client – (http) --> httpd – (cgi) --> application server (program file)-- (mysql) --> mysql
php: 脚本编程语言
、嵌入到html中的嵌入式web程序语言
基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)
httpd 利用CGI运行shell脚本
vim /etc/httpd/conf/httpd.conf
<directory /data/script>
require all granted
</directory>
<IfModule alias_module>
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /sh/ "/data/script/"
</IfModule>
<directory /data/script>
require all granted
</directory>
cat /data/script/cgi.sh
#!/bin/bash
#
cat << EOF
Content-Type: text/html
<pre>
My username is: $(id -un)
My id is: $(id -u)
My shell settings are:
$(set)
My environment variables are:
$(env)
Here is the file in /etc:
$(ls -l /etc/redhat-release )
$( cat /etc/redhat-release )
</pre>
EOF
chmod +x /data/script/cgi.sh
curl http://10.0.0.8/sh/cgi.sh
<pre>
My username is: apache
My id is: 48
My shell settings are:
BASH=/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interact
ive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/data/script/cgi.sh")
BASH_VERSINFO=([0]="4" [1]="4" [2]="19" [3]="1" [4]="release" [5]="x86_64-
redhat-linux-gnu")
BASH_VERSION='4.4.19(1)-release'
CONTEXT_DOCUMENT_ROOT=/data/script/
CONTEXT_PREFIX=/sh/
DIRSTACK=()
DOCUMENT_ROOT=/var/www/html
EUID=48</