ThinkPHP在Ubuntu上 : mkdir的使用
问题:
环境:Ubuntu系统,xampp1.8.3-5建站工具
描述:以root的身份运行。Apache的 DocumentRoot = "/var/www" 。thinkphp的安装包直接放在该目录下面,浏览器访问:http://127.0.0.1/htdocs/thinkphp/public/,出现提示:
Fatal error: Uncaught exception 'think\exception\ErrorException' with message 'error_log(/var/www/htdocs/thinkphp/public/../runtime/log/16_10_28.log): failed to open stream: 权限不 够' in /var/www/htdocs/thinkphp/thinkphp/library/think/log/driver/File.php:78 Stack trace: #0 [internal function]: think\Error::appError(2, 'error_log(/var/...', '/var/www/htdocs...', 78, Array) #1 /var/www/htdocs/thinkphp/thinkphp/library/think/log/driver/File.php(78): error_log('[ 2016-10-28T22...', 3, '/var/www/htdocs...') #2 /var/www/htdocs/thinkphp/thinkphp/library/think /Log.php(149): think\log\driver\File->save(Array) #3 /var/www/htdocs/thinkphp/thinkphp/library/think/Error.php(84): think\Log::save() #4 [internal function]: think\Error::appShutdown() #5 {main} thrown in /var/www/htdocs/thinkphp/thinkphp/library/think/log/driver/File.php on line 78
解决:
涉及linux系统的文件的两个属性:文件的拥有者和文件的用户组,以及程序的执行权限问题。
程序没有权限在DocumentRoot目录及其子目录使用mkdir函数,新建目录,而apache的发布目录的文件拥有者和归属组都是root。查看可执行程序文件的上面两个文件属性。
整个系统的运行,都是有apache启动,查看其服务进程。
ps -ef | grep "httpd"

apache的启动进程属于daemon用户,apache的发布目录并没有开放权限给其他用户或者同组用户相应的执行或者写权限。
执行:
chown -R daemon:daemon /var/www/
解决权限问题的过程中,发现apache的发布目录最好定位到thinkphp的public目录,不然访问会出现问题,这是良好的习惯。
ThinkPHP在Ubuntu上 : mkdir的使用的更多相关文章
- Ubuntu 上搭建 Samba 服务器
由于经常要接收同事发送的一些文件,U盘拷来拷去的很麻烦. 在本机Ubuntu上搭了各Samba服务器,过程中遇到点小问题,记录一下 sudo apt-get install samba 创建一个共享目 ...
- 微软KinectV2深度传感器在Ubuntu上的配置和使用
最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents ------------------------------------------ ...
- 在shell下,用命令将U盘挂载到ubuntu上,并将文件copy到U盘里面
首先将鼠标定位到ubuntu上,然后插上U盘,这时候先用指令: fidsk -l 查看一下U盘,(这是应该有一个盘符了) 如果没有的话,就尽享下面的步骤: 首先使用命令查看是那个分区,在U盘插入前后, ...
- .netcore跨平台 之 windows上编译,ubuntu上运行
1 下载并安装netcore sdk 下载地址 https://github.com/dotnet/cli 选取合适的版本下载安装即可 打开 CMD ,输入dotnet,出现以下信息说明已安装好 ...
- ubuntu上用eclipse搭建java、python开发环境
上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...
- 在ubuntu上安装nodejs[开启实时web时代]
作为一名菜鸟,竟然在centos桌面上连输入命令行的地方都找不到,是在是对不起开山祖师,最后苍天不负苦心人,在ubuntu上找见了 [安装过程参考了http://cnodejs.org/topic/4 ...
- 如何在Ubuntu上配置scala教程
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...
- 在Ubuntu上安装JDK、Ant、Jmeter和Jenkins
一.前期准备 1. 在win7下载VMware.Ubuntu(用迅雷下比较快) 2. 安装完VMware后新建虚拟机,选择iso: 3. 具体配置参考如下,至此Ubantu安装完成 二.在Ubuntu ...
- Ubuntu 上创建常用磁盘阵列
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...
随机推荐
- 【Delphi】获取EIP
var EIP: Cardinal; procedure GetEIP(); stdcall; asm pop eax; mov EIP,eax; push eax; end; procedure T ...
- Lua 之os库
标准os库 os.rename(oldname, newname) 文件重命名: os.remove(filename) 删除一个文件 os.execute(cmd) os.execute可运行一条系 ...
- Junit使用
eclipse Junit的简单使用: eclipse自带了Junit插件. 安装Junit,如下图所示,右键项目-->Properties-->Add Library 选择Junit 选 ...
- 导航菜单:jQuery粘性滚动导航栏效果
粘性滚动是当导航在滚动过程中会占粘于浏览器上,达到方便网站页面浏览的效果,也是一种用户体验,下面我们看一下是怎么实现的: jQuery的 smint插件,也是一个导航菜单固定插件.当页滚动时,导航菜单 ...
- express 框架之 路由与中间件
1. 什么是router路径,什么是middleware? 我们输入www.baidu.com 来访问百度的主页,浏览器会自动转换为 http://www.baidu.com:80/(省略一些参数) ...
- Jquery中的事件和动画
在学习Jquery中的过程中我们绝大部分都用到了事件的操作,也可以说事件是Jquery中必不可少的一部分,我们常见的一些事件有单击事件,鼠标事件,键盘事件等等.在Jquery中的学习中为了能使让页面以 ...
- php远程连接http方式
以下这三者是通过GET方式来获取数据 1.socket 方式 一般是指定网址.端口号.超时时间. 再对报头进行修改以及传递参数,包括:header.method.content, 返回的内容包括hea ...
- centos systemctl指令
# systemctl #输出已激活单元 # systemctl list-units #输出已激活单元 # systemctl --failed #输出运行失败的单元 # systemctl lis ...
- iOS开发——UI进阶篇(五)通知、代理、kvo的应用和对比,购物车
一.通知 1.通知中心(NSNotificationCenter)每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信任何一个对象都可以向 ...
- iOS开发——UI基础-KVO
KVO == Key Value Observing 作用: 可以监听某个对象属性的改变 一.使用KVO Person *p = [Person new]; p.name = @"chg&q ...