开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病,
比如: 说什么Application目录不可写,
比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime/Cache/Home/下的缓存文件等.
作为初期开发, 可以不用考虑 安全和性能???
因此, 为了保证开发的顺利进行, 先把代码写出来, 因此, 第一步就是, 给APPLICATION 完全权限 777, 同时关闭selinux, 将selinux设为0.
就不会出现各种权限, 安全原因引起的 前期的无法 写下去 的问题.
为什么要给目录以777的权限呢?
这里的最后的那个7, 是针对other的, 而网站访问的人就是 other, 所以最后的这个7, 就是对web目录而言的;
目录的权限, 除了给以 write权限外, 还要给以 x 可执行 的权限, 因为: 目录的write权限 和 x权限 完全是不同的, 两者之间是不可以互相取代的:
write权限是指: 在目录中, 可以add创建文件/目录; 删除文件/文件夹(不管文件的本身的权限是什么, 也不管文件的所有者是谁?); 重命名文件/目录; 最后是可以移动文件/子目录.
而x 可执行权限, 是指 其他用户是否可以 进入 该目录, 是否可以 使用 cd 命令 进入该目录. 为什么又叫 可执行 权限呢? 因为 只有当你 可进入 cd 到 这个目录后, 你才可以在这个目录下 "执行" 命令. ... 如果你没有x命令, 那么即使你有read权限, 也是不能 读取目录里面的文件的!事实上, 在任何地方 任何用户, 创建 目录的 时候, 默认的目录 权限就是 r-x, 也就是说, 默认的目录 对other 都是有 x 权限的, 否则, 你创建目录干 什么呢?
通常来说, 重要的, 最主要的, 还是通过 控制 写权限 来 控制目录的. 故目录的写权限 w 才是最重要的.
所以, 给目录 在原来的权限基础上: 755, 给以写权限, 就号了, 即777. 一点都不过分.
而对于文件, 就不同于目录的默认权限 755, 文件的默认权限是 644, 因为文件默认不会设置它为 可执行文件, 没有 x 权限. 所以它的默认权限是644.
而文件 即使它不是 可执行文件, 给它 以 x 权限, 让他成为可执行文件, 也没有什么额外影响. 所以 给全部 Appliatcion以777 权限是可以的.
但是, 如果你有洁癖, 确实是不想给文件 以执行的 权限,(或者是说 不想看到vim中 Nerdtree 可执行文件旁边的星号, ) .... 如果我们只是想给web(application目录下的 子目录, 以777 的权限, 而 web下的 文件 的权限本身 不要改变, 这时候, 可以参考下面的内容:
先 chmod -R 777 /webpath,
然后, 恢复目录下的文件 的原来的权限: find /webpath -type f -exec chmod 644 {} \;理解以前的那么命令, 使用 find 命令和 其他命令 如ls 的 结合使用 : 就是上面的 , 使用 -exec .... {} \; 注意 这里 的{} \; 就相当于一个占位符, 代表前面的搜索到的 内容!
除了在终端下使用 chmod命令来修改文件的权限, 还可以 用php 提供的 chmod函数, 这里面的 权限参数, 就一定要使用 0777的 形式, 其中最前面的0 表示是 8 进制. 这个在 chmod函数只是不能省略的. chmod命令中其实 还是 0777, 仍然是八进制, 只是省略了而已!
注意, UID就是指的 文件的所有者. 在安全模式下, chmod函数, 会坚持所操作的文件, 和当前 脚本的文件 是否具有 相同的 UID. (即看它们是不是属于同一个所有者)...
有时候在linux调度一个站点时,为了排除文件权限问题最喜欢用 chmod -777 /web_path
可是要改回来怎么办,原来是目录为755 ,文件是644,
可以使用下面这种方法再改回来
find /path -type f -exec chmod 644 {} \; // -exec 后面的命令是以 {} \;结尾的, 记一个固定的就好了.
find /www/TianyaLVS -type d -exec chmod 755 {} \;
ls 命令, 本身是显示 某个目录下的 子目录和子 文件的 信息, 但是 , 如果要 显示 该目录自己呢? 显示它本身 自己的 信息 呢?
不用每次都切换 cd 到它的 父目录 去, 然后 用 ls 来显示, 直接 可以 使用 ls -d 就可以显示了.
开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- 【python开发】迈出第一步,这可能是我唯一一次的Python开发了
好久没写博了,今天就瞎唠唠吧 背景: 组内有个测试平台,是基于Python2+tornado 框架写的,之前自己维护了一套系统的UIweb自动化代码,现在需要集成进去.这很可能是自己唯一一次基于pyt ...
- 三步学会用spring开发OSGI——(第一步:环境篇)
Spring-DM是什么 Spring-DM 指的是Spring Dynamic Modules. dm Server 是一个完全模块化部署的,基于OSGi的Java服务器,为运行企业Java应用和S ...
- 图形用户界面(GUI)应用程序开发——菜鸟的第一步
参考资源:贺老师博文 在看完贺老师的博文后,我就照葫芦画瓢的做了个求三角形面积的程序.这是我写的一篇所用时间最长博文(两个多小时,真心挺累,或许是我太笨吧),为了尽可能详细的把步骤写明白我截了二十一张 ...
- java学习第一步,使用IntelliJ IDEA编写自己的第一个java程序
首先下载java的jdk,然后说一下IDEA的配置 IntelliJ IDEA目前公认的最好的java开发工具,不过一般的学校的教学还是使用eclipse来进行java的开发.所以老师一般只会教你如何 ...
- SSM项目整合第一步 注册登陆实现
SSM项目整合第一步 注册: 项目目录: 一.数据库建表: 源码: ; -- ---------------------------- -- Table structure for t_user - ...
- java微信开发API第一步 服务器接入
I如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34 ...
- Andriod开发第一步-部署环境(搬运&&总结)
第一步:安装JDK 第二步:配置Windows上JDK的变量环境 第三步:下载安装Eclipse 第四步:下载安装Android SDK 配置了JDK变量环境, ...
- JAVA开发第一步 - JDK安装与配置
JDK的安装与环境变量配置是JAVA开发之路的第一步,很多新人在这一步上就卡了很久,浪费了很多时间,甚至有些人就轻易地“从入门到放弃”了.今天我们就来一步步教你如何打倒这第一只拦路虎. 1.JDK下载 ...
随机推荐
- JSON-RPC 2.0 规范中文文档
链接地址如下 http://wiki.geekdream.com/Specification/json-rpc_2.0.html
- 如何利用报表工具FineReport实现报表列的动态展示
相信动态列的实现困扰了很多人,大数据量,多字段的加载将会非常耗时,数据又做不到真正的动态灵活.现有的方式都是通过变向的隐藏等方式来实现. 那该如何解决呢?这里分享帆软报表设计器FineReport的实 ...
- SVM一点心得体会
支持向量机的学习说是刚刚开始,又不合理,只能说隔了很长的时间再看,终于在分类这块的层面上有了新的认识. 总的来说,支持向量机分为线性支持向量机和非线性支持向量机,线性支持向量机又可以分为硬间隔最大化线 ...
- redis键命令
1.ping命令用于检测redis是否启动 成功返回pong表示链接成功 2.在远程redis服务上执行命令 Redis-cli -h host -p port -a password 如果是连接本机 ...
- xml解析
config.xml <?xml version="1.0" encoding="UTF-8"?> <prize> <gift&g ...
- HTML 学习笔记 JavaScript(call方法详解)
http://www.cnblogs.com/f-dream/p/4950918.html
- 8个排序算法——java
public static void radixsort(int[] a){ int max=a[0]; for(int i=1;i<a.length;i++){ if (max<a[i] ...
- 编写轻量ajax组件01-对比webform平台上的各种实现方式
前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏 ...
- Ajax入门(三)
get和post请求 1,get方式: 在url地址后面以请求字符串(传递的get参数信息)形式传递数据. 例: aj.open('get','./03.php?name=3tu'); 在传递特 ...
- vsftp简单学习思考
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP这样FTP客户端和服务器建立连 ...