C4SAで5.6.0.2にアップグレードした後、テーマが反映されない

2012年12月26日 at 17:55

先日広島でデモした時に起きたんですが、c4saで5.5をインストール後、自動アップデートで5.6.0.2にアップデートし、/themesディレクトリにオリジナルのテーマを作成、インストールしました。
インストールまではうまくいったのですが、実際にサイトのテーマとして適用すると、アップデートディレクトリの中のthemeを探しにいって、「ファイルが無い!」とエラーが表示されてしまいました。

現在原因を調査中ですが、取り急ぎご報告まで

タグ:

Re: C4SAで5.6.0.2にアップグレードした後、テーマが反映されない

2013年1月2日 at 1:22
ConfigのENVIRONMENT_CACHEの保存値に、通常のインストール時と違うところがありました。
coreOverrides内に配列でコアのオーバーライドが格納されていますが、問題なく動作している環境では themes/theme_name/default.php の様に格納されているのですが、C4SAのデータベースを見ると /canvases/path/to/user/public_html/themes/theme_name/default.php の様にフルパスで入ってしまっている。これはEnvironment::getOverridesの処理の中に記述があります。

$this->coreOverrides[] = str_replace(DIR_BASE . '/', '', $f);


ただこの DIR_BASE が曲者で、C4SAの場合途中にスラッシュが重複している箇所があるみたいです。サーバー設定が変なのか?そのためにstr_replaceから漏れてしまっている。

結局 index.php の冒頭に下記の記述を追加して解決しました。config/site.phpより先に定義されているので、site.phpからは上書きできなかった。

define('DIR_BASE','/canvases/path/to/user/public_html');


とりあえず、分かったのはここまで。
 

Re: C4SAで5.6.0.2にアップグレードした後、テーマが反映されない

2013年1月3日 at 3:54
なんとなくわかりました。
多分nginxのPATH_INFOの渡し方ですね。
 

Re: C4SAで5.6.0.2にアップグレードした後、テーマが反映されない

2013年1月3日 at 4:04
nginxのconfigを以下の物に変えてください。
これでconcrete5側のコードの変更はいらなくなるハズです。

server {
listen ${server_socket};
server_name ${server_name};

root ${canvas_home}data/${disk_id}/public_html;
index index.php index.html index.htm;

recursive_error_pages off;
port_in_redirect off;
gzip on;
gzip_types text/plain text/html text/css image/x-icon image/bmp application/x-javascript;
gzip_proxied any;

location / {
if (-f $request_filename) {
expires 14d;
break;
}
if ($uri ~ "^(.+?\.php?)(/.*)$") {
set $path_info $2;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php last;
}
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SERVER_PORT $http_x_forwarded_port;
fastcgi_pass unix:${socket_root}/${fpm_id};
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_ADDR ${server_addr};
fastcgi_intercept_errors off;
fastcgi_ignore_client_abort off;
fastcgi_read_timeout 60;
}
}
 

Re: C4SAで5.6.0.2にアップグレードした後、テーマが反映されない

2013年1月7日 at 3:34
ありがとうございます。
root ${canvas_home}/data/${disk_id}/public_html;


root ${canvas_home}data/${disk_id}/public_html;

に修正して解消しました。