Apache 配置动态 Web 站点(PHP、CGI)

Apache 支持 php、cgi 语言,也就支持这些语言创建的动态网页

配置 Apache 支持 PHP 动态网站

PHP 是当前最流行的交互式网页动态语言
【服务端】

[root@httpserver ~] # rpm -q php                        # 查看系统是否已经安装 PHP 语言解释器
[root@httpserver ~] # yum install php -y                # 安装php解释器

在这里插入图片描述

[root@httpserver ~] # vim /var/www/html/index.php         # 创建.php 文件写入
?
[root@httpserver ~] # systemctl restart httpd

【客户端】

客户端浏览器输入测试 PHP 文件网址:
http://192.168.1.142/index.php      # 即可访问到php页面

Apache 配置动态 Web 站点(PHP、CGI)_第1张图片

配置支持 CGI 动态网站

CGI 是服务器和网页之间的沟通界面,最常见的 CGI 语言是 perl
【服务端】配置 Apache 支持 CGI

[root@httpserver ~] # rpm -q perl                          # 查看系统是否安装 perl 语言解释器
[root@httpserver ~] # yum install perl                     # 安装 perl 解释器

Apache 默认创建 /var/www/cgi-bin 目录,在该目录下的 .cgi 文件添加执行权限后,就可在 http 中默认直接执行
在这里插入图片描述

[root@httpserver ~] # vim /var/www/cgi-bin/index.cgi      # cgi-bin目录下创建 .cgi 文件
#!/usr/bin/perl
print "Content-ytpe:text/html\n\n";
print `date`                                              # '`' 符号是键盘Tab上面的键
[root@httpserver ~] # chmod + x index.cgi                 # 给 .cgi 文件加 x 可执行权限
[root@httpserver ~] # systemctl restart httpd

Apache 配置动态 Web 站点(PHP、CGI)_第2张图片
【客户端测试】

# 客户端浏览器访问 http://服务器IP地址/cgi-bin/index.cgi

Apache 配置动态 Web 站点(PHP、CGI)_第3张图片

  • 指定cgi脚本其他存放目录 /var/www/html/cgi

    [root@httpserver ~] # mkdir -p /var/www/html/cgi # 创建存放cgi的目录
    [root@httpserver ~] # vim /etc/httpd/conf/httpd.conf # 更改主配置文件关于cgi的配置

    Options ExecCGI # 默认为none,需要改为 ExecCGI
    AddHandler cgi-script .cgi # 自建cgi存放目录时,必须指定该参数,用于识别.cgi脚本文件

    [root@httpserver ~] # vim /var/www/html/cgi/index.cgi # cgi-bin目录下创建 .cgi 文件
    #!/usr/bin/perl
    print “Content-ytpe:text/html\n\n”;
    print date # ‘`’ 符号是键盘Tab上面的键
    [root@httpserver ~] # chmod + x index.cgi # 给 .cgi 文件加 x 可执行权限

    重要部分,注意selinux开启情况下,需要修改自建目录的安全上下文

    semanage fcontext -a -t htpd_sys_script_exec_t ‘/var/www/html/cgi(/.*)?’ # 递归更改自建目录的安全上下文
    restorecon -RvvF /var/www/html/cgi # 重读安全上下文

    [root@httpserver ~] # systemctl restart httpd
    在这里插入图片描述
    Apache 配置动态 Web 站点(PHP、CGI)_第4张图片
    Apache 配置动态 Web 站点(PHP、CGI)_第5张图片
    【客户端测试】

    浏览器输入服务器IP,自建cgi目录及.cgi文件
    Apache 配置动态 Web 站点(PHP、CGI)_第6张图片

    读取 WSGI 脚本

    • Apache 服务端
      服务端IP:192.168.1.142

      [root@httpserver ~] # yum install mod_wsgi -y                        # 下载wsgi解释器
      [root@httpserver ~] # mv webapp.wsgi /var/www/cgi-bin/               # .wsgi 脚本放入 cgi-bin 目录下
      [root@httpserver ~] # semanage fcontext -a -t httpd_sys_script_exec_t /var/www/cgi-bin/webapp.wsgi
      [root@httpserver ~] # restorecon -RvvF /var/www/cgi-bin/webapp.wsgi        # 重写脚本安全上下文,让其可执行
      [root@httpserver ~] # cd /var/www/cgi-bin
      [root@httpserver cgi-bin] # chmod +x webapp.wsgi                     # 添加可执行权限
      [root@httpserver cgi-bin] # cd /etc/httpd/conf.d/
      [root@httpserver conf.d] # vim webapp.conf
      
        	ServerName webapp.westos.com
        	DocumentRoot /var/www/cgi-bin                           # 目录设置为cgi-bin,.wsgi脚本放在该目录下方便执行
        	CustomLog logs/webapp.log combined
        	WSGIScriptAlias / /var/www/cgi-bin/webapp.wsgi          # 访问'/'时,直接跳转到/var/www/cgi-bin/webapp.wsgi
      
      [root@httpserver conf.d] # systemctl restart httpd               # 重启服务
      

      Apache 配置动态 Web 站点(PHP、CGI)_第7张图片
      在这里插入图片描述

    • 客户端测试

      [root@client ~] # vim /etc/hosts
      192.168.1.142 webapp.westos.com                        # 解析指向Apache服务器
      

      Apache 配置动态 Web 站点(PHP、CGI)_第8张图片

你可能感兴趣的:(学习笔记)