apache如何执行php脚本,如何在Apache中使用PHP脚本进行访问控制

我正在寻找一种方法来使用

PHP脚本来控制对Apache资源的访问.我想要具有不依赖于目标资源的访问控制;即它将适用于html,files,其他脚本和cgi程序,就像“允许”或“拒绝”指令一样 – 除了使用自定义逻辑.

我已经看了几种方法来尝试管理这个:

>使用像mod_auth_script这样的apache模块(好的,但是这个模块是旧的,我假设不能很好地扩展)

>使用FastCGI指令FastCgiAccessChecker

>创建我自己的apache模块来调用php并做任何我需要的

其中#2看起来最有希望,也是最受欢迎的FastCGI.

所以,我设法换掉通常的linux php模块,并通过fastcgi来获取PHP的工作.它比在Windows上更难,但最终将其作为外部服务器,即使用Apache指令

FastCGIExternalServer / var / www / html / thing -host 192.168.0.11:9000

并启动php守护进程

php-cgi -q -b 192.168.0.11:9000&

麻烦的是试图找到一种使用FastCgiAccessChecker调用PHP脚本的方法.

我尝试过各种方法尝试通过更改FastCGIExternalServer和/或FastCgiAccessChecker指令中的文件名来传递要运行的脚本名称 – 不起作用.

我也尝试用脚本说明符启动php-cgi,即

php-cgi -q -b 192.168.0.11:9000 -f /var/www/html/thing/access.php&

没有什么工作.我可以告诉apache认识我的指令,因为当我包含FastCgiAccessChecker,然后访问一个php页面,内容类型更改为text / plain,如果它是一个脚本,我丢失了从页面提供的第一个〜8000个字节的内容(否想法为什么).但是它不会调用我想要运行的PHP脚本.

据我所知,正在发生的事情是FastCgiAccessChecker假定指定的fastcgi服务器是专门用于编写访问检查器的.没有办法告诉fastcgi服务器(PHP在我的情况下)运行哪个脚本进行访问检查.

我已经搜索过网络,据我所知,没有人曾经尝试过使用过PHP脚本,或者没有人写过.

所以我的问题:我该怎么办?

我可以看到几种可能性:

1)我错过了一些东西,有一些魔术方法使FastCgiAccessChecker做我想要的:运行一个PHP脚本来控制apache访问控制

2)我在c中编写自己的FastCGI服务器并嵌入PHP,所以我可以指定我要运行的PHP脚本(我花了几分钟时间查看这个;它看起来很复杂,可怕,我没有在c自1995年以来)

3)我放弃了FastCGI,并编写了一个apache模块来直接调用PHP脚本来控制访问. (也看起来很复杂;这种技术将需要为执行PHP的每个请求产生一个新的进程.)

有没有人有任何建议,无论是如何让FastCGI做我想要的,或一个(合理)简单的替代FastCGI?

感谢您提出的任何建议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值