Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial cakephp的环境配置问题

cakephp的环境配置问题

Jun 23, 2016 pm 01:36 PM

新手求高手指导,目前在做项目,一天都没有搞定,很急。
环境: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服务中。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse Mar 10, 2025 pm 02:32 PM

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles