当前位置: 首页 > wzjs >正文

wordpress设置主题404模板宁波seo推广如何收费

wordpress设置主题404模板,宁波seo推广如何收费,安徽网站建设案例,手机网站如何制作免费目录 引言 编写测试程序 前端代码 后端代码 配置CGI模块(mod_cgi) 如何检查404错误 测试结果 ​编辑 结语 引言 在前面的测试中,我们将lighttpd移植到x210开发板中,今天学生报告说她在进行CGI程序测试时总是遭遇404错误…

目录

引言

编写测试程序

前端代码

后端代码

配置CGI模块(mod_cgi)

如何检查404错误

测试结果

​编辑

结语


引言

在前面的测试中,我们将lighttpd移植到x210开发板中,今天学生报告说她在进行CGI程序测试时总是遭遇404错误。所谓404错误,就是服务器在处理CGI程序时总是找不到对应的脚本文件。针对这个问题进行了一番测试,介绍一下处理方法。

编写测试程序

前端代码

前端测试代码是这样的,用于调用 CGI 脚本:

<html>
<head><title>CGI测试页面</title><meta charset="UTF-8">
</head>
<body><h1>Lighttpd CGI测试</h1><h2>测试CGI脚本</h2><p><a href="/cgi-bin/test.cgi">运行测试CGI脚本</a></p><h2>带参数测试</h2><form action="/cgi-bin/test.cgi" method="get"><label>姓名: <input type="text" name="name"></label><label>年龄: <input type="number" name="age"></label><input type="submit" value="提交"></form><h2>POST方法测试</h2><form action="/cgi-bin/test.cgi" method="post"><label>消息: <textarea name="message"></textarea></label><input type="submit" value="发送"></form>
</body>
</html>

将这个 HTML 页面保存为/var/lighttpd/htdocs/test-cgi.html。 

后端代码

下面是一个基于 Bash 的测试 CGI 脚本,它会输出当前环境变量和请求信息:

#!/bin/bash# 输出HTTP头部
echo "Content-Type: text/html"
echo ""# 输出HTML页面
cat << EOF
<!DOCTYPE html>
<html>
<head><title>CGI测试</title><meta charset="UTF-8">
</head>
<body><h1>CGI脚本测试成功!</h1><p>当前时间: $(date)</p><h2>环境变量</h2><pre>
$(env | sort)</pre><h2>请求信息</h2><p>请求方法: $REQUEST_METHOD</p><p>请求URI: $REQUEST_URI</p><p>查询字符串: $QUERY_STRING</p>
</body>
</html>
EOF

把上述脚本保存为/var/lighttpd/cgi-bin/test.cgi(这里的路径有问题,后面会详细讲),并赋予执行权限: 

chmod +x /var/lighttpd/cgi-bin/test.cgi

配置CGI模块(mod_cgi)

使用CGI功能,要对 lighttpd 进行配置,使其支持 CGI 功能。找到并编辑 lighttpd 的modules配置文件,我们的配置为/var/lighttpd/config/modules.conf,取消include "conf.d/cgi.conf"这行前面的注释:

这样修改之后就可以激活mod_cgi。

然后修改/var/lighttpd/config/conf.d/cgi.conf文件,以指定 Bash 脚本作为 CGI 处理程序。

#######################################################################
##
##  CGI modules
## ---------------
##
## http://www.lighttpd.net/documentation/cgi.html
##
server.modules += ( "mod_cgi" )##
## Plain old CGI handling
##
## For PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini.
##
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",".cgi" => "/bin/bash",".rb"  => "/usr/bin/ruby",".erb" => "/usr/bin/eruby",".py"  => "/usr/bin/python" )

保存设置后,启动lighttpd。如果先前已经启动了lighttpd ,需要先用kill杀掉lighttpd进程。

如何检查404错误

不过如果安装上述配置运行测试程序,会报告404文件错误,就是学生遇到的问题。

为了解决这个问题,我使用strace程序。这是一个强大的 Linux 系统调用跟踪工具,它能够监控和记录程序执行时所发起的系统调用以及收到的信号。

使用如下命令:

 strace  -e trace=file ./sbin/lighttpd -f config/lighttpd.conf -D

其中-e trace=file参数只跟踪与文件操作相关的系统调用,像 openreadwrite 等。 而-D参数是lighttpd的参数,表示程序不会切换到后台。程序运行后会输出下面的log:


stat64("/var/lighttpd/htdocs", {st_mode=S_IFDIR|0777, st_size=1024, ...}) = 0
open("/var/lighttpd/lib/mod_indexfile.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=32008, ...}) = 0
open("/var/lighttpd/lib/mod_access.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=30268, ...}) = 0
open("/var/lighttpd/lib/mod_cgi.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=73015, ...}) = 0
open("/var/lighttpd/lib/mod_accesslog.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=51523, ...}) = 0
open("/var/lighttpd/lib/mod_dirlisting.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=59028, ...}) = 0
open("/var/lighttpd/lib/mod_staticfile.so", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=42913, ...}) = 0
open("/var/lighttpd/lighttpd.pid", O_WRONLY|O_CREAT|O_EXCL|O_TRUNC|O_LARGEFILE, 0644) = 3
open("/var/lighttpd/log/error.log", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0644) = 3
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/var/lighttpd/log/access.log", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0644) = 5
open("/dev/null", O_RDONLY|O_LARGEFILE) = 7
stat64("/var/lighttpd/htdocs/cgi-bin/test.cgi", 0xbed491b0) = -1 ENOENT (No such file or directory)

我发现,当运行test.cgi时,lighttpd去照相的文件是/var/lighttpd/htdocs/cgi-bin/test.cgi,而不是前面所想象的/var/lighttpd/cgi-bin/test.cgi。出现这个问题的原始是我们没有使能mod_alias,也没有在配置文件中将/cgi-bin指向/var/lighttpd/cgi-bin目录。所以lighttpd会去寻找var/lighttpd/htdocs/cgi-bin/test.cgi。如果不想修改配置文件,就需要将test.cgi放置到var/lighttpd/htdocs/cgi-bin/目录中。

测试结果

修改文件路径后,再次测试,程序可以正常运行了。

结语

通过上述排查与实践可见,在嵌入式开发板中调试 Lighttpd 的 CGI 功能时,路径配置的准确性与模块启用状态是关键突破口。从最初因未正确配置mod_alias导致服务器误读脚本路径,到借助strace工具精准定位文件查找逻辑,这一系列过程不仅体现了系统调用跟踪工具在底层调试中的价值,也再次印证了嵌入式环境下配置细节对功能实现的直接影响。

希望本文的解决过程能为嵌入式 Web 服务开发提供参考,帮助开发者在面对类似路径解析或模块冲突问题时,能更系统地分析与解决。如需进一步探讨 Lighttpd 在嵌入式场景中的优化策略或其他调试技巧,欢迎在评论区交流!

http://www.dtcms.com/wzjs/362623.html

相关文章:

  • 网站建设商业计划书线上推广是什么意思
  • 第一ppt模板免费下载网站关键词推广软件
  • 巴青网站制作百度销售
  • 陕西网站建设哪家强百度识图软件
  • 怎么做视频解析的网站百度云登录首页
  • 电商网站建设最好的公司阿森纳英超积分
  • 建筑工程招投标网站长沙网站优化推广
  • 国家高新技术企业认定机构崇左seo
  • 外包加工网真的假的网站关键词排名优化系统
  • 网站产品类别顺序如果修改淘宝优化标题都是用什么软件
  • wordpress和帝国cms百度收录seo问答
  • 上海网站建设的报价郑州中原区最新消息
  • 平面设计手绘网站google chrome官网
  • 河南响应式建站磁力猫引擎
  • 德清县建设局网站国产免费crm系统有哪些在线
  • 在公司网站建设会议上的汇报网络营销个人总结
  • 政府门户网站工作建设武汉百度推广seo
  • 如何查找网站的死链接关键词优化
  • 网站建设引擎广告收益平台
  • 长寿做网站最新新闻头条
  • 深圳网站制作 论坛武汉网络营销推广
  • 专业做美食视频的网站产品seo基础优化
  • 网站开发需要什么软件做品牌推广应该怎么做
  • 网站怎么无法访问社交媒体营销策略有哪些
  • java直播网站怎么做营销策略ppt模板
  • 网络营销方式的演变南京seo优化推广
  • wordpress子站点用户无角色靖江seo要多少钱
  • 网站开发用什么写福州网站排名
  • 网站制作多久能完成营销型企业网站制作
  • 网站风格类型是搜索引擎优化的基本方法