タグ別アーカイブ: PHP

eccube2.11.4 インストール方法 一回やりましたがもう既に忘れたのでもう一度トライするところから。

まず、データベースを構築するところからですが user_eccube と適当に設定。

空のDBを作成したら、 EC-CUBE Version 2.11.4(zip)をダウンロード。

この時、不具合修正ファイルの最新版も同時にダウンロード。

上記のうち、ECサイトそして機能するのに必要なデータは「data」「html」の2つのフォルダだけなので他は無視。

セットアップ前に、不具合修正ファイル内にある「data」「html」をeccube-2.11.4の中に入れて上書きしてください。

続きを読む


[php]
#globalnavi {
margin: 0;
padding: 0;
list-style-type: none; /* リストマークの削除 */
width: 172px;
padding: 145px 0px 0px 0px;
}

#globalnavi li {
width: 172px;
height: 32px;
margin: 0;
padding: 0;
display: inline;
}

#globalnavi a {
text-indent: -9999px; /* テキストを隠す */
text-decoration: none;
display: block;
width: 172px;
height: 32px; /* リンク領域を広げる */
background-image: url(images/menu.gif);
background-repeat: no-repeat;
}

#menu1 a { background-position: 0 0; } /* 表示画像の位置を指定 */
#menu2 a { background-position: 0 -29px; }
#menu3 a { background-position: 0 -58px; }
#menu4 a { background-position: 0 -86px; }
#menu5 a { background-position: 0 -116px; }
#menu6 a { background-position: 0 -145px; }
#menu7 a { background-position: 0 -174px; }
#menu8 a { background-position: 0 -200px; }
#menu9 a { background-position: 0 -230px; }
#menu10 a { background-position: 0 -258px; }
#menu11 a { background-position: 0 -288px; }
#menu12 a { background-position: 0 -317px; }
#menu13 a { background-position: 0 -348px; }

#globalnavi a:hover {
text-decoration: none;
background-image: url(images/menu.gif);
background-repeat: no-repeat;
}

/* 入れ替え画像の位置を指定 */
#menu1 a:hover { background-position: -172px 0; }
#menu2 a:hover { background-position: -172px -29px; }
#menu3 a:hover { background-position: -172px -54px; }
#menu4 a:hover{ background-position: -172px -83px; }
#menu5 a:hover{ background-position: -172px -114px; }
#menu6 a:hover{ background-position: -172px -145px; }
#menu7 a:hover{ background-position: -172px -174px; }
#menu8 a:hover{ background-position: -172px -200px; }
#menu9 a:hover{ background-position: -172px -230px; }
#menu10 a:hover{ background-position: -172px -259px; }
#menu11 a:hover{ background-position: -172px -288px; }
#menu12 a:hover{ background-position: -172px -317px; }
#menu13 a:hover{ background-position: -172px -348px; }

[/php]


なぜ静的URLにするのかというと・・・

GoogleやYahoo! などの検索の場合、動的URLでは、一つのページとみなしてしまいます。 (まぁ最近じゃ?がついていようとインデックスしてくれるみたいですが) ちなみに動的URLとは下記のように?が入るURLです。 http://サーバ名/ec-cube/html/products/detail.php?product_id=xxこちらですと、検索するにあたって、detail.phpのファイルとみなされていまい、 1ページしかインデックスされません。

ですので、各ページごとにインデックスされるように、 http://サーバ名/ec-cube/html/products/detail/xx

とします。これが静的URLです。 実際にページは存在していませんが、 検索ロボットに存在しているように見せることができます。

1. パラメータを変える。

まず、 システム設定>パラメータ設定より以下を変更います。 パラメータ:LIST_P_HTML 変更前:URL_DIR . “products/list-p” 変更後:URL_DIR . “products/list/” パラメータ:DETAIL_P_HTML変更前:URL_DIR . “products/detail.php?product_id=”変更後:URL_DIR . “products/detail/”

2. .htaccsessファイルをhtml/products/以下にに配置します。 そのファイルに下記の内容を追加します。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^detail/([0-9]+)+ detail.php?product_id=$1 [L] RewriteRule ^list/([0-9]+)+ list.php?category_id=$1 [L]

※.htaccsessは、html/ 内にありますので、それをコピーして設置すると楽です。

3.管理画面>デザイン管理>ブロック編集>カテゴリを開き46行目あたりのソースを変更

こちらはカテゴリのリンクの変更です。

変更前:products/list.php?category_id= 変更後:products/list/

4.管理画面>デザイン管理>ページ詳細設定>商品詳細ページのソースを変更

商品詳細のページのリンクが静的ページにするために、パス( / )を切った関係で、階層が一つ多くなってしまいました。

変更箇所は、 内の合計6つ変更です。

変更前:./ 変更後:../  ※2階層上へ送っている

他、動作には関係ありませんが、こちらも変更をオススメ、

 

変更前:products/list.php?category_id= 変更後:products/list/

これで、変更完了です。 各種エディターを使って、コピペして、コマンド+Fで所定の箇所を探してみてください。


管理画面のレイアウト崩れが。。

define( ‘CONCATENATE_SCRIPTS’, false );
ただしこれは根本的な解決策ではありません。

define( ‘CONCATENATE_SCRIPTS’, false ); というコードを wp-config.php の最初に追加する。
WordPress のスピードは遅くなるので、数日後に削除してまたテストしてみること。
(これを行うことで古いネットワークキャッシュを削除できます)

ということなので、一定期間経過後コードを削除してレイアウトの状態を見てみることにしました。
が、1週間強経過しているにもかかわらず、状態は変わらずです。
もうしばらく様子を見ようとも思ったのですが、原因が分からないのも気持ちが悪いので、
再度ぐーぐる先生に聞いてみました。

WordPressをCORESERVERに設置する|pc.casey.jp

今まで色々いじくっているので、.htaccessの内容がおかしくなっていることでしょう。
まずはこちらの記事の「.htaccessファイルを設置」する項目を実践しました。

WordPressルートフォルダの.htaccessには


AddHandler application/x-httpd-phpcgi .php

wp-contentフォルダの.htaccessには


AddHandler application/x-httpd-phpcgi .php

wp-adminフォルダの.htaccessには


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php


AddHandler application/x-httpd-phpcgi .php

それから「管理画面のレイアウトが崩れる=CSSが読み込まれていない」ということで、
納得のいく説明をされていた以下のブログも参考にさせてもらいました。

WordPress 2.9.1 自動アップデート後に管理画面表示がおかしくなった時の対処法|guttyo blog

上記ブログの管理者さんが調べたことによると、原因はこういうことらしい。

この現象の原因は下記のような.htaccessファイルでPHPをCGIモードで動かしているときに、
load-style.phpが吐き出す content-type=text/htmlだからだそうだ。
text/cssではないのでFirefoxではcssと認識しないということらしい。


AddHandler application/x-httpd-php5cgi .php

なるほど、text/cssになればいいって訳なのね。
でも、部分的にCGIとして動かしてはいてもPHP全体をCGIとして動かしてはいないし、
やっぱ、なんかおかしくなってるのかなぁ?

まぁ、要はこれが重要な訳で。

# こいつだけモジュール版で動作させる


AddHandler application/x-httpd-php .php

このコードをwp-adminファイルの.htaccessに記載すると、
今まで悩んでいたレイアウト崩れは嘘のように解決しました。

define( ‘CONCATENATE_SCRIPTS’, false );
ともおさらばしました。


[html]
<!–{$TPL_URLPATH}–>
/html/user_data/packages/XXXX(使用中のテンプレ)

<!–{$smarty.const.USER_TEMPLATE_REALDIR}–>
html/user_data/packages/

<!–{$smarty.const.TOP_URLPATH}–>
/html/

<!–{$smarty.const.ROOT_URLPATH}–>
/html/

<!–{$smarty.const.HTML_REALDIR}–>
/html/

<!–{$smarty.const.HTTPS_URL}–>
https://ドメイン

<!–{$smarty.const.P_DETAIL_URLPATH}–>
/html/products/detail.php?product_id=

<!–{$smarty.const.IMAGE_SAVE_URLPATH}–>
/html/upload/save_image/

<!–{$smarty.const.DATA_REALDIR}–>
/data/

<!–{$smarty.const.CLASS_REALDIR}–>
/data/class/

<!–{$smarty.const.CLASS_EX_REALDIR}–>
/data/class_extends/

<!–{$smarty.const.TEMPLATE_REALDIR}–>
/data/Smarty/templates/default/

<!–{$smarty.const.TEMPLATE_ADMIN_REALDIR}–>
data/Smarty/templates/admin/

<!–{$smarty.const.TEMPLATE_TEMP_REALDIR}–>
html/upload/temp_template/

<!–{$smarty.const.GRAPH_URLPATH}–>
/html/upload/graph_image/

<!–{$smarty.const.IMAGE_TEMP_URLPATH}–>
/html/upload/temp_image/

<!–{$smarty.const.CART_URLPATH}–>
/html/cart/

<!–{$smarty.const.ADMIN_LOGIN_URLPATH}–>
/html/shopmng/

<!–{$smarty.const.ADMIN_SYSTEM_URLPATH}–>
/html/shopmng/system/

<!–{$smarty.const.ADMIN_PRODUCTS_URLPATH}–>
/html/shopmng/products/

<!–{$smarty.const.ADMIN_ORDER_URLPATH}–>
/html/shopmng/order/

<!–{$smarty.const.MOBILE_IMAGE_URLPATH}–>
/html/upload/mobile_image/

<!–{$smarty.const.MOBILE_TOP_URLPATH}–>
/html/

<!–{$smarty.const.MOBILE_CART_URLPATH}–>
/html/cart/

<!–{$smarty.const.MOBILE_P_DETAIL_URLPATH}–>
/html/products/detail.php?product_id=

[/html]



MacからLinux系サーバへSSH接続(コマンド入力)する方法。
ECCUBEをアップロードする際にどうしてもデスクトップ上での解凍だとパーミッションが変更されてしまうのでサーバー上で解凍するためにSSH接続。
Finder上でShift+cmd+U でユーティリティーフォルダを開きターミナルを起動

$ ssh -l <ユーザ名> <ホスト名>

ユーザー名はサーバーのアカウントホスト名はアドレス等
後はパスワードを聞かれるので入力。
(パスワードはキーボード押しても何も表示されないので注意)

コレでMacOSXからサーバー上でコマンド入力が可能。

以下追記2011.11.24
cmd+U←ではなくShift+cmd+Uでユーティリティーフォルダが開きました。
ちなみにShift+cmd+Aでアプリケーションフォルダが開きます。


http://www.example.com/index.cgi
or http://www.example.com/index.php

上記のようなURLをhttp://www.example.com に統一させる場合のお話し。
Apacheの設定で大抵.phpやshtmlくらいは設定されてますが、某サーバーで(centos)CGIのみ設定されていなかったので、設定してみました。
トップディレクトリのhtaccessに以下の文章を追加。

DirectoryIndex index.html index.cgi index.php index.shtml

超簡単でしたが、各ディレクトリでindexが登場する場合全部やらなければならんのです。。。


まず管理画面にログインして、デザイン管理>PC>レイアウト設定 から、ページを新規入力します。
URLは review_list.php として、以下のコードを貼り付けて保存します。

次に、html/user_data/review_list.php を開いて、次のように修正します。

data/Smarty/templates/default/user_data/review_list.tpl を以下のように変更します。

以上。

ブロック化は以下。

デザイン管理>PC>ブロックの設定新規ブロックで下記を作成。
ブロック名:お客様の声一覧
ファイル名:review_list_bloc

トップページのブロックで表示する場合、html直下のindex.php下記のような感じで書き換え。

基本的には同じ作業。
画像とかは適当にかえましょう。
(レビュー自体未投稿だと空欄なので適当に用意しておきましょう。)


メモ

Netowl の Firebird というサーバーに EC-CUBE をインストールした場合、デフォルトのままでは注文完了時や通知のメールが送信されなかった。

送信できるようにするには、
/data/mtb_constants_init.php と
/data/cash/mtb_constants.php
の532 行目の

define(‘MAIL_BACKEND’, “smtp”);

define(‘MAIL_BACKEND’, “mail”);

に変更すれば解決した。