问题:

    环境: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的使用的更多相关文章

  1. Ubuntu 上搭建 Samba 服务器

    由于经常要接收同事发送的一些文件,U盘拷来拷去的很麻烦. 在本机Ubuntu上搭了各Samba服务器,过程中遇到点小问题,记录一下 sudo apt-get install samba 创建一个共享目 ...

  2. 微软KinectV2深度传感器在Ubuntu上的配置和使用

    最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents   ------------------------------------------ ...

  3. 在shell下,用命令将U盘挂载到ubuntu上,并将文件copy到U盘里面

    首先将鼠标定位到ubuntu上,然后插上U盘,这时候先用指令: fidsk -l 查看一下U盘,(这是应该有一个盘符了) 如果没有的话,就尽享下面的步骤: 首先使用命令查看是那个分区,在U盘插入前后, ...

  4. .netcore跨平台 之 windows上编译,ubuntu上运行

    1 下载并安装netcore sdk    下载地址 https://github.com/dotnet/cli 选取合适的版本下载安装即可 打开 CMD ,输入dotnet,出现以下信息说明已安装好 ...

  5. ubuntu上用eclipse搭建java、python开发环境

    上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...

  6. 在ubuntu上安装nodejs[开启实时web时代]

    作为一名菜鸟,竟然在centos桌面上连输入命令行的地方都找不到,是在是对不起开山祖师,最后苍天不负苦心人,在ubuntu上找见了 [安装过程参考了http://cnodejs.org/topic/4 ...

  7. 如何在Ubuntu上配置scala教程

    Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...

  8. 在Ubuntu上安装JDK、Ant、Jmeter和Jenkins

    一.前期准备 1. 在win7下载VMware.Ubuntu(用迅雷下比较快) 2. 安装完VMware后新建虚拟机,选择iso: 3. 具体配置参考如下,至此Ubantu安装完成 二.在Ubuntu ...

  9. Ubuntu 上创建常用磁盘阵列

    RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...

随机推荐

  1. Tween + 缓动函数

    Unity-Tween http://www.cnblogs.com/MrZivChu/p/UnityTween.html iTween: iTween大解构(一)之抛物线移动 http://blog ...

  2. Robot Framework--01 创建简单工程示例

    1.新建Project: 填写name,选择Type为Dirctory,路径根据自己需要选择,建议最好不要在中文路径下,以免发生问题:

  3. 创建为ClickOnce清单签名的.pfx格式数字证书

    ------ 第一步 创建 X.509 证书 ------makecert.exe为证书创建工具.证书创建工具生成仅用于测试目的的 X.509 证书.它创建用于数字签名的公钥和私钥对,并将其存储在证书 ...

  4. Effective Objective-C 2.0 — 第一条:了解Objective-C语言的起源

    第一条: 了解Objective-C语言的起源 由Smalltalk演化而来,消息型语言的鼻祖(messaging structure)而非 (function calling)函数调用 //Mess ...

  5. Yii URL

    参考文章: http://blog.csdn.net/iefreer/article/details/21325371 以http://localhost/basic/web/index.php?r= ...

  6. idea中的svn配置

    idea的使用之svn篇--有图超详细 http://ylq365.iteye.com/blog/1955291

  7. 使用自己的ClassLoader实现热替换

    首先实现一个自己的ClassLoader,该ClassLoader重写findClass方法. 从classpath中加载类资源. 注意,不要重写loadClass方法.  因为在使用自定义的MyCl ...

  8. Android Studio-设置代码自动提示

    None:代表模糊匹配(推荐). First Letter: 根据首字母进行匹配. All:与First Letter类似,不过匹配结果比First Letter多.

  9. 让vim成为ide

    gvim的tabe标签页打开跟在同一个页面(标签中)打开,对buffer的影响都是一样的,都是增加新的buffer 可以认为gvim的命令行模式跟bash shell里的操作差不多 在命令行模式中通过 ...

  10. data and dream

    1 用通俗的语言介绍下线性回归->逻辑回归->SVM之间的区别和联系. 2 聚类算法的应用场景,以及k-means中的k值怎么确定. def center(data): center = ...