linux php文件include失败 一个很神奇的问题

1. html生成失败,权限问题

前天用php生成模板,在windows上开发,include文件,读缓存写文件,顺风顺水,晚上写完后传到linux上html生成失败,发现文件和文件夹都没生成,网上查找说是权限问题,于是用ftp修改整个目录的权限,右键文件夹,看到菜单有个CHMOD的项,选择后如下图,所有权限开放

之后文件都可以生成,可是又遇到一个更诡异的问题,耗费1天多时间;

 

2. include 文件失败

在windows上include没有任何问题,在linux上死活包含失败,权限问题查找一堆,最后测试方法如下:

1. 创建一个最简单的.php文件,仅仅输出简单的文字,连文件名都要简单,竟然包含输出成功了!! 可见不是权限问题。

2. 怀疑自己include的文件内容有问题,于是逐渐缩减自己include文件,包含失败,最后索性缩小到只有一行简单的输出,还是失败;

3. 哦,突然灵光一闪,文件编码问题!!一查看,果然!!赶紧修改为utf-8编码,还是include失败,期间一直在本地windows测试,都是成功;

4. 为什么,为什么在linux上测试文件include成功,我要include的文件就失败了,这两文件都是简单的输出啊,文件编码都一样啊,难道是……我这个文件被诅咒了?这个文件名……

5. 最终,最后了,难道是文件名大小写(哭腔),仔细对比下,文件名大小写还真对不上,将include("xxxx")改为匹配的大小写,成功了。。但是我一点都不开心;

6. linux啊,这,,,,include一定要注意大小写,也许仅仅是阿里云吧。。。 

 

转载于:https://www.cnblogs.com/yuzhould/p/4465450.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux开发板上使用pcap记录文件的实例,可以通过以下步骤完成: 1. 确保设备上安装了libpcap库。可以使用apt-get等命令进行安装,例如: ``` sudo apt-get install libpcap-dev ``` 2. 创建一个新的C语言源文件,例如`pcap_example.c`,并在文件中引入pcap库的头文件: ```c #include <stdio.h> #include <pcap.h> ``` 3. 在`main`函数中,创建一个pcap的句柄变量,并打开一个网络设备或者读取一个pcap文件。例如,打开网络设备可以使用`pcap_open_live`函数,打开一个pcap文件可以使用`pcap_open_offline`函数: ```c pcap_t *handle; handle = pcap_open_live("eth0", BUFSIZ, 1, 1000, errbuf); // 打开网络设备eth0,BUFSIZ为缓冲区大小,1为混杂模式,1000为超时时间 ``` 或者 ```c pcap_t *handle; handle = pcap_open_offline("input.pcap", errbuf); // 打开名为input.pcap的pcap文件 ``` 4. 检查打开设备或文件是否成功。如果失败,可以通过打印错误信息来排查问题: ```c if (handle == NULL) { fprintf(stderr, "Couldn't open device/file: %s\n", errbuf); return 1; } ``` 5. 创建一个循环,用于捕获并处理数据包。可以使用`pcap_loop`函数来实现: ```c pcap_loop(handle, -1, process_packet, NULL); // -1表示捕获无限数量的数据包,process_packet为回调函数用于处理每个数据包 ``` 6. 创建回调函数`process_packet`,用于处理每个捕获的数据包。可以在回调函数中对数据进行分析、记录等操作: ```c void process_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet) { // 这里可以对packet进行分析和记录,例如打印数据包信息、将数据包写入文件等 } ``` 7. 最后,记得在程序结束时关闭pcap句柄和释放资源: ```c pcap_close(handle); ``` 通过以上步骤,就可以在Linux开发板上使用pcap记录文件了。可以根据需要修改和扩展代码,以满足特定的数据捕获和记录需求。 ### 回答2: 在Linux开发板上,可以通过使用pcap库来记录网络数据包,并将其保存到文件中。下面是一个关于如何在Linux开发板上使用pcap记录文件的实例: 首先,需要确保在Linux开发板上安装了libpcap库。可以通过在终端中输入`sudo apt-get install libpcap-dev`来安装。 接下来,编写一个使用pcap库的C/C++程序。以下是一个示例程序: ```c #include <stdio.h> #include <pcap.h> void packet_handler(u_char *userdata, const struct pcap_pkthdr *pkthdr, const u_char *packet) { pcap_dump(userdata, pkthdr, packet); } int main() { pcap_t *handle; pcap_dumper_t *dumper; char errbuf[PCAP_ERRBUF_SIZE]; const char *filename = "capture.pcap"; handle = pcap_open_live("eth0", BUFSIZ, 1, 1000, errbuf); if (handle == NULL) { printf("Error opening device: %s\n", errbuf); return 1; } dumper = pcap_dump_open(handle, filename); if (dumper == NULL) { printf("Error opening dump file: %s\n", pcap_geterr(handle)); return 1; } pcap_loop(handle, 0, packet_handler, (u_char *)dumper); pcap_dump_close(dumper); pcap_close(handle); return 0; } ``` 在程序中,`pcap_open_live`函数打开一个网络接口(例如`eth0`)来捕获网络数据包。如果成功打开接口,就可以调用`pcap_dump_open`函数来创建一个pcap文件,并返回一个`pcap_dumper_t`句柄。 然后,通过调用`pcap_loop`函数,程序进入一个无限循环,不断监听并处理网络数据包。每次接收到数据包时,`packet_handler`回调函数会被调用,将数据包写入pcap文件中。 最后,通过调用`pcap_dump_close`和`pcap_close`函数来关闭pcap文件和网络接口。 编译并运行程序后,将会在当前目录下生成一个名为`capture.pcap`的文件,其中包含了记录的网络数据包。 请注意,需要使用root权限来运行此程序,因为只有root用户才能够访问网络接口。 希望这个实例能够帮助你在Linux开发板上使用pcap记录文件。 ### 回答3: 在Linux开发板上进行pcap记录文件实例的方法如下: 1. 首先,确保你的开发板上已经安装了libpcap库。如果没有安装,可以通过包管理器或源代码自行安装。 2. 创建一个新的C/C++项目,并包含pcap.h头文件。 3. 使用pcap库提供的函数打开网卡设备。可以使用pcap_open_live()函数,传入网卡设备名称、抓包的最大长度等参数。 4. 创建一个文件指针,用于打开或创建一个pcap记录文件。可以使用fopen()函数,传入要创建的文件名称,并使用"wb"参数表示以二进制写入模式打开文件。 5. 在循环中,使用pcap_next()函数从网卡设备中读取数据包。将数据包写入pcap记录文件中,可以使用fwrite()函数将数据包写入文件。 6. 当完成记录时,使用pcap_close()函数关闭网卡设备。 7. 同样,使用fclose()函数关闭pcap记录文件。 8. 根据实际需求,可以在循环中添加一些条件来控制记录的持续时间或数据包的数量。 9. 最后,编译并运行项目,即可在指定的文件中记录网卡设备捕获的数据包。 需要注意的是,在进行pcap记录文件实例时,用户需要具备相应的系统权限,以及对网络设备的访问权限。此外,还要注意文件操作时的错误检测和异常处理,以确保程序的稳定运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值