本文以Ubuntu为例,其他的Linux系统类似。

环境为Apache + PHP搭建的web服务器

假设网站根目录为/var/www/html

问题:

直接通过shell执行PHP,在网站目录下面读写文件没有问题,但是通过浏览器访问php,却不能写文件。

原因:

Apache是通过用户www-data来执行PHP的,所以PHP能够做什么,取决于用户www-data能做什么?一般情况下,www-data用户并没有在www/html下面写文件的权限,所以PHP在通过浏览器访问的时候是没有办法写入文件的。

解决办法:

可以简单的把www/html或者www/html下面的某个子目录比如/var/www/html/download的所有者设置为www-data,这样PHP就可以正常写文件。

命令:sudo chown -R www-data /var/www/html

Apache + PHP为什么不能在www目录下写文件以及如何解决PHP写文件问题相关推荐

  1. linux 七种运行级别,linux 的七个运行级别-通过实例学习 chkconfig 服务的...-linux不能自动关闭rc0.d目录下K开头程序的解决方法_169IT.COM...

    通过实例学习 chkconfig 服务的添加.顺序,感兴趣的朋友可以参考下. chkconfig --level 345 nfs off --add name 这个选项增加一项新的服务,chkconf ...

  2. linux/usr/src/kernels 目录下没有内核源码 解决方法

    有时我们在安装系统后,发现没有安装当前系统的内核源码在/usr/src/kernels目录下,其实我们是少安装了一个rpm包: 当你配置好yum源后,然后安装下面的包就可以了: 针对CentOS系统: ...

  3. pycharm同一目录下无法import明明已经存在的.py文件

    转自:https://blog.csdn.net/l8947943/article/details/79874180 亲测有用 问题描述: 如图:同目录下明明存在相应文件,在导入时却出现带有红色波浪线 ...

  4. 为Tiny4412设备驱动在proc目录下添加一个可读版本信息的文件

    http://blog.csdn.net/morixinguan/article/details/77808088 上节,我们明白了proc文件系统的作用,接下来我们在友善之臂已经写好的led驱动的基 ...

  5. FreeNOS-kernel目录下boot.S、链接脚本kernel.ld文件分析(四)

    上节提到过引导程序在将控制权交给内核时,相关寄存器状态已确定,并且程序入口地址为boot.S文件中的_start,下个面就来看看boot.S文件. kernel目录下文件如下: 其中Sconscrip ...

  6. android内置第三方APP为系统应用,第三方APP内置到/system/app目录下报错java.lang.UnsatisfiedLinkError,so文件不加载

    项目场景: 在无系统签名的情况下,将第三方APP内置到/system/app目录下,可以将第三方应用变为系统应用,用户无法直接卸载.不过前提是手机需要root. 问题描述 使用es文件管理工具将第三方 ...

  7. 查看mysql的启动日志目录下_mysql诊断启动问题、查看日志文件详解

    诊断启动问题 服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现.MySQL在这个问题发生时报告错误,但由于多数MySQL服务器是作为系统进程或服务自动启动的,这些消息可能看不到. 在排除 ...

  8. html列目录带图片,根据目录下的图片的个数,往html文件填充对应数量的img标签,请问有没有实现这种需求的工具?...

    这直接JS就能实现了,实现方式分为[预加载]和[延迟加载] 下面是个预加载的例子: 首先来一个空的HTML页面和最基本的CSS初始化样式 Document * { margin: 0; padding ...

  9. Android创建文件为unix格式,Recovery模式下/cache/recovery/目录下创建文件,开机后文件被删除...

    在一次需求的实现过程中需要在remcovery模式下,在/cache/recovery/目录下创建一个日志文件用于记录相关的日志信息,以便于在开机后读取这些日志信息,再根据日志信息做出相应的处理,但是 ...

最新文章

  1. 【组队学习】曹志宾:基于Python的会员数据化运营
  2. SSM整合pom.xml和导包
  3. 过程声明与同名事件或过程的描述不匹配_多特征结合的倾斜无人机影像匹配方法...
  4. snprintf()返回值的陷阱
  5. 15寸计算机显示器,苹果确认15寸RMBP支持全球首款5K显示器
  6. 基于R语言实现的交通时空大数据处理
  7. Docx模板引擎示例
  8. 8. 吴恩达机器学习课程-作业8-异常检测和推荐系统
  9. PythonWEB框架之Tornado
  10. c++ 编译代码时Link失败,无法关闭目标文件
  11. 物联网嵌入式系统开发应用软件公司怎么选择
  12. 标书制作,全流程视频教程大全
  13. RedShift护眼软件的配置
  14. 哈工大CSAPP程序人生大作业
  15. 优雅地使用ffmpeg转换音频格式
  16. ant-design-vue中自定义a-tree的打开与折叠图标
  17. macos支持exfat吗_在移动硬盘中安装win10和macos双系统
  18. edge浏览器打开html文件路径被拆分,Win10默认浏览器被强制修改为Edge的两种解决方法...
  19. [C++程序设计](入门级题解)统计天数
  20. Linux专家警告开源软件日益吸引黑客

热门文章

  1. 修改程序配置文件 以及写一个结构体数组到文件(以及整数和结构体)
  2. 相对布局(RelativeLayout)的控件运用
  3. 异步任务下载apk文件并弹出对话框提示当前进度,文件下载结束后弹出安装界面
  4. opencv 显示图片
  5. gcc编译选项-o和-c介绍
  6. python 任务计时器 apscheduler.schedulers
  7. mysql 建表,解决中文输入
  8. python 提取字符串中的中文字符
  9. 在有序但含有空的数组中查找字符串
  10. pytorch笔记:torch.nn.GRU torch.nn.LSTM