Ubuntu上运行ThinkPHP项目权限不够问题
问题简述
最近将原来的ThinkPHP项目移到Ubuntu下开发,因为Ubuntu的权限问题,所以报了如下的错:

报错主要原因是当前用户的权限不能够 mkdir————创建目录。
解决办法一
使用Ubuntu有一段时间了,也遇到了不少权限不够的问题,所以首先想到的就是修改文件的权限。
ThinkPHP在运行项目时,所有新建的文件都会在 runtime/ 目录下,所以修runtime的权限。
可以看到现在runtime的其他人只有读的权限。

|
|

给了runtime读,写,运行所有权限。
然后再刷新页面,成功。
解决办法二
第一种方法确实高效很简单迅速,但有时可能会有安全问题,但在中小型项目上基本不会遇到。但还是有追求更好的人,所以在这里给出另一种办法。
项目服务器是Apache,所以我们可以将runtime的所有者改为Apache用户。
查看当前Apache用户
|
|

你将会得到类似上面的信息,当前Apache用户为 daemon。
然后更改runtime文件所有者。
|
|
我的解决办法
由于我们项目中需要保存图片,所以生成文件的位置不止runtime一个文件夹,重新创建了一个 upload/ 目录,所以将 runtime 目录和 upload 目录的权限都改为777。该方法可能还存在弊端,后续在有新的文件创建的时候,还需要改权限。
总结
Ubuntu 上权限可能还会遇到很多问题,善于总结规律,以后才能更好的解决问题。