cakephp的环境配置问题
新手求高手指导,目前在做项目,一天都没有搞定,很急。
环境:Linux(el7)+nginx(1.6.2)+mysql(5.6.23)+php(5.4.39)+cakephp(2.6.0)
web环境本身没有问题,访问http://172.16.3.91:8080/cake报错:
Warning: _cake_core_ cache was unable to write 'cake_dev_zh-cn' to File cache in /usr/share/nginx/dataCenter/lib/Cake/Cache/Cache.php on line 323
Warning: /usr/share/nginx/dataCenter/app/tmp/cache/persistent/ is not writable in /usr/share/nginx/dataCenter/lib/Cake/Cache/Engine/FileEngine.php on line 385
Fatal error: Uncaught exception 'CacheException' with message 'Cache engine _cake_core_ is not properly configured.' in /usr/share/nginx/dataCenter/lib/Cake/Cache/Cache.php:181 Stack trace: #0 /usr/share/nginx/dataCenter/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_') #1 /usr/share/nginx/dataCenter/app/Config/core.php(374): Cache::config('_cake_core_', Array) #2 /usr/share/nginx/dataCenter/lib/Cake/Core/Configure.php(72): include('/usr/share/ngin...') #3 /usr/share/nginx/dataCenter/lib/Cake/bootstrap.php(175): Configure::bootstrap(true) #4 /usr/share/nginx/dataCenter/app/webroot/index.php(100): include('/usr/share/ngin...') #5 {main} thrown in /usr/share/nginx/dataCenter/lib/Cake/Cache/Cache.php on line 181
1. 已经确认tmp目录上级和下面的子目录全部都设置了777权限;
2. cakephp(从官方网站下载的)除了修改了数据库配置外,其他的配置项没有动;
3. nginx.conf(参考官方文档设置的rewrite)
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nobody;
worker_processes 1;
error_log /var/log/nginx/error.log info;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /run/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 4096;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
root /usr/share/nginx/html;
#单位:秒
keepalive_timeout 100;
#keepalive_timeout 1000;
#gzip on;
index index.html index.htm;
#uwsgi_buffering off;
#uwsgi_max_temp_file_size 64m;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 8080;
#server_name localhost;
server_name 172.16.3.91 shuju.baijie;
rewrite 301 http://172.16.3.91:8080$request_uri permanent;
root /usr/share/nginx/dataCenter/app/webroot;
index index.php index.html index.htm;
#charset koi8-r;
charset utf-8;
access_log /var/log/nginx/dataCenter.access.log;
error_log /var/log/nginx/dataCenter.error.log;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
try_files $uri $uri/ /index.php?$args;
if (-e $request_filename) { #文件或目录存在
break;
}
if (!-e $request_filename) { #文件或目录不存在
rewrite ^/(.+)$ /index.php?url=$1 last;
break;
}
}
location ~ /\.ht { #禁止.htaccess
deny all;
}
location ~ \.php$ {
try_files $uri =404;
#这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
# redirect server error pages to the static page /40x.html
#
error_page 404 /404.html;
location = /40x.html {
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 8081;
#server_name localhost;
server_name 172.16.3.91 shuju.baijie;
root /usr/share/nginx/mytest;
index index.php index.html index.htm;
#charset koi8-r;
charset utf-8;
access_log /var/log/nginx/mytest.access.log;
error_log /var/log/nginx/mytest.error.log;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /phpmyadmin/ {
index index.php;
}
location ~ \.php$ {
#这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
}
回复讨论(解决方案)
Warning: /usr/share/nginx/dataCenter/app/tmp/cache/persistent/ is not writable in /usr/share/nginx/dataCenter/lib/Cake/Cache/Engine/FileEngine.php on line 385
已经明确的表示说
/usr/share/nginx/dataCenter/app/tmp/cache/persistent/ 不可写
这是个目录,而写缓存应该是文件名吧
谢谢 xuzuning 的回复。
persistent确实应该是目录的,不是文件,问题应该不在这里:
383 if ($this->_init && !($dir->isDir() && $dir->isWritable())) {
384 $this->_init = false;
385 trigger_error(__d('cake_dev', '%s is not writable', $this->settings['path']), E_USER_WARNING);
386 return false;
387 }
求各位牛人关注!
找到原因了,我的php.ini中配置cgi.force_redirect原来使用的是默认值(默认打开),设置cgi.force_redirect = 0将该配置关闭后,重启nginx和php-fpm就能正确获取writeable的值了。看php.ini中该配置项的注释,当打开时,php以安全的方式运行在web服务中。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸
