解决ThinkPHP runtime目录访问权限的问题

问题

使用Thinkphp 发布项目的时候,框架会默认在runtime目录下记录日志,但是把项目发布时,由于系统是Linux系统,所以对于文件的权限要求比较严格。所以项目运行时,无法向runtime下记录日志,导致运行失败。

解决方法STEP 1

既然,没有写入权限,我们直接授权就可以解决问题。授权的方案有两种

1、直接给文件夹授权
chmod -R 777 runtime  

这种方法的弊端在于此文件夹下所有的文件的权限全部被放开,很不安全

所以我想到了改变文件夹所属用户组的方案

2、更改文件夹按所属用户

因为我使用的是Apache,所以需要知道httpd对应的用户的用户名

ps aux|grep http

有图可知用户是apache,将runtime对应的用户改成apache

chown -R apache runtime

解决方法 STEP2

step 1 中所说的方法虽然都解决了文件写入的问题,但是带来一个新的问题,就是日志文件可以通过浏览器地址访问到,这样是及其不安全的

为了解决这问题,我们可以通过使用Apache的 .htaccess文件来控制runtime下文件的访问权限。

我们再runtime目录下新建 .htaccess文件,文件内容为

Order Allow,Deny
Deny from all

即可禁止对该文件夹下的访问权限

大功告成!

原文地址:https://www.cnblogs.com/bobobobobo/p/11743038.html

时间: 2024-11-08 22:44:25

解决ThinkPHP runtime目录访问权限的问题的相关文章

CentOS 6.5系统上安装SVN服务器端的方法及目录访问权限配置(转总结)

SVN其实就是Subversion,分为服务器端和客户端.之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法.本文主要介绍CentOS 6.5系统上安装SVN服务器端的方法及步骤. 系统环境说明如下: 操作系统:        Centos6.5 x86-64 SVN:             subversion-1.8.11 1.检查是否安装了低版本的SVN rpm -qa | grep subversion 如果已安装SVN,则会返回版本信息,如:s

ProFTPD配置匿名登录与目录访问权限控制

对ProFTPD服务器配置匿名登录. 查看配置文件proftpd.conf.默认情况下配置文件中的,匿名登录配置User和Group均为ftp.查看/etc/passwd确认用户ftp,是否存在.命令行输入id ftp,查看用户ftp的所在组.查看/etc/group,确定用户组ftp是否存在. 上述步骤中,如果缺少用户或组,新建即可. User    ftp Group ftp UserAlias   anonymous ftp   #设置匿名用户以ftp身份登录 --------------

.NET 控制Windows文件和目录访问权限研究(FileSystemAccessRule)

前一段时间学习了.net 控制windows文件和目录权限的相关内容,期间做了一些总结.想把这方面的研究跟大家分享,一起学习.其中不免得有些用词不太标准的地方,希望大家留言指正留言,我加以修改. 首先,我们利用一个方法作为示例: /// <summary> /// 为指定用户组,授权目录指定完全访问权限 /// </summary> /// <param name="user">用户组,如Users</param> /// <par

文件系统管理 之 文件和目录访问权限设置

一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限

4-文件/目录访问权限管理

文件或目录的访问权限分为只读,只写和可执行三种. 文件所有者,同组胡勇.其他用户可对文件或目录进行访问. 每一个文件或目录的访问权限都有三组,每组用三位表示,分别表示文件属主的读.写.执行权限:与属主同组的用户的读.写和执行:系统中其他用户的读.写和执行权限. 当用ls -l显示文件或目录的详细信息时,最左边的一列为文件的访问权限. drwxrwxr-x 3 xixi xixi 4096  4月 16 08:56 test1 drwxrwxr-x 2 xixi xixi 4096  4月 16

Mac系统下 解决ThinkPHP生成目录,无法保存问题

Mac环境下我们建立目录的时候往往要增加目录的时候要修改权限,输入密码,大大的降低了效率. 解决办法: 1.找到你的目录站点 终端打开打 2.终端输入find file -exec sudo chmod 777 {} \;  既可以解决  例子: PHP项目:PHPTest 路径    /Users/MuyunLee/PHPWorkSpace/PHPTest/ 终端执行 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; col

E. 目录的访问权限详细解析

一,设置目录的访问权限 <Directory "目录的物理路径">                Options    Indexes                Order    Deny,Allow                Allow    from    all                DirectoryIndex    index3.html        </Directory> 二,各项命令的语义        Options    I

Thinkphp在nginx设置同域名二级目录访问

Thinkphp在nginx设置同域名二级目录访问,是因为最近弄一个小程序项目,要https,但是只有单个域名,不能通配域名,所有只好用二级目录,thinkphp二级目录访问要怎么设置呢 下面是nginx代码演示 server { listen 80; server_name www.dc3688.com; root /home/www/www.dc3688.com; location /huaqi/ { index index.php index.html index.htm; if (!-e

夺命雷公狗TP3.2.3商城10-----中间层的创建,防止跨目录访问

我们在D:\phpStudy\WWW\shop\WEB\Admin\Controller  目录下创建一个创建一个CommonController.class.php的中间层,让后让后台别的控制器都直接继承CommonController这个控制器即可决解跨目录访问的问题: <?php namespace Admin\Controller; use Think\Controller; class CommonController extends Controller{ //这个方法主要解决别人跨