之前一直用的xampp集成开发环境,今天想着在linux上自己搭建一下php的开发环境。其实自己只安装了一个php,还是用yum命令。mysql数据库之前单独安装过,我用的Centos系统自带的Apache。
弄好了之后寻思把之前在windows下写的一个Thinkphp小项目放到linux虚拟机上跑一跑,结果一直报错**_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Views/8aca661f5be7ddd2c9f95686c44c5cff.php**。把runtime目录删除了也不行。为了找到问题我直接把thinkphp的原版框架放到/var/www/html目录下面,结果出了标题上的这个错误。
一开始以为是linux用户权限的问题,因为我用root用户在/var/www/html目录下面新建test.php文件可以正常进行访问,但是用普通用户在home目录下面新建test2.php再移动到/var/www/html目录就无法被访问。后来我用chown 和 chgrp命令把test2.php进行所有者和所属组都改成root,试了一下还是无法被访问。很奇怪,首先肯定不是代码的问题test.php和test2.php内容是一样的,就是建立他们的用户不一样,现在把test2.php的所属用户也改了,还是不行。他们其他唯一的区别就是建立他们的文件夹不一样了,test是在Apache默认的文件夹下面建立的而test2是在home文件夹下建立的。之后我用root用户在home文件夹下建立一个test3.php,然后移动到/var/www/html文件夹下,果然还是不能显示。这时候我就确定了,这个问题是Apache的访问限制的配置问题了。
在网上查了一下,Apache的访问限制。比较详细的如这篇文章:
但是搞了半天还没搞懂,最后按照这篇文章:
好歹是把问题解决了。。。
这里再把文章里的解决方法贴一下把,方便以后查找。
找到:apache文件,进入conf文件,打开httpd.conf 文件,做如下修改:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
修改成
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
Allow from all
#允许所有访问
Satisfy all
</Directory>
第二处:找到:
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
修改成:
# onlineoffline tag - don't remove
Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
Allow from all
</Directory>
其实我只改了前面的一部分后面的还没改,问题就已经解决了。但是第一个问题还是没搞明白,明天再搞吧!