作成者別アーカイブ: てらりん

さくらのサーバーで、WordPressがInternal Server Error【未解決】

さくらインターネットの共用レンタルサーバーを超愛用しております。

しかし、Wordpressで投稿を行うと、必ず「Internal Server Error」と出ます。
でも、投稿できるし、気にしてなかったんですが、ちょっと気にして調べてみました。

wordpressでコメントしたらInternal Server Errorになってしまう時の対処法

という記事をみて、コメントじゃないけど、まぁ、見てみようかなぁと思って、
「設定」>「ディスカッション」のページを開いてみると、もう「ディスカッション」のページで、Internal Server Error。

さすがにおかしいなぁ……と思ったので、さらにコメントとか投稿とか関係なく「さくら Internal Server Error」で調べてみると、

さくらサーバーでWordPressをインストールすると「Internal Server Err」

という記事を発見。まぁ、インストールじゃないけど……と読むと、「権限」の問題らしい。
なんか、「権限」なら他のことにも影響してそうだし、見てみようと思ったら、wordpressのファイルを入れているフォルダを「705」で指定していました。
これを「755」にすると、ディスカッションのページのInternal Server Errorがなくなりました。

まぁ、投稿はいまだに「Internal Server Error」 さらに調べます。

ちなみに、今のところ
さくらのレンタルサーバ+WordPressで500エラーが多発

という記事を読んだところです。 メモリ不足というのは、あんまり考えてなかったなぁ・・・。
また引き続き調査します。

【メモ】EC-CUBEで海外向けオンラインショップを作る参考ページリンク

まずは、EC-CUBEの多言語
海外向けショッピングサイトも制作可能! EC-CUBEに多言語対応版が登場!!
【公式サイト】EC-CUBE英語版

Paypalのことが気になって。やっぱりPaypalがいいのかな
EC-Cube Paypal決済カスタマイズ⑥
EC-CUBE、ペイパル決済プラグインにより海外決済に対応

商品発送は、国際郵便(EMS)とか?
国際郵便【郵便局】

EMSに対応したプラグインがあるらしいけど、バージョンが止まってる?便利そうなのに。
EMS配送に対応したEC-CUBEをインストール提供いたします!

講演とかもあるのね。早く知ってたら行きたかったな。
越境EC経験者が語るEC-CUBE海外支援セミナー

とりあえず、今日調べた分。
また、何か調べたら追加しますー。

 

というか、こういうのをまとめNAVERで作ればいいのだよね……きっと。
また考えよ。

EC-CUBEのサーバ移行後、ログインできない。

EC-CUBEのサーバ移行後に、管理画面にログインできなくなった。

data/config/config.phpのAUTH_MAGICを移行前のデータにすればよいとのことだったので、そうしたらログインできるようになりました。

「遷移エラー」が出たら

→ ログインページのアドレスがインストール時に登録したものと同じかチェックする。(URLで登録したのでIPでアクセスしているとか

「idかパスワードが間違ってます」と出たら

→ 間違ってないか再度確認

→ data/config/config.phpのAUTH_MAGIC を同じにしてみる

→ 管理者用のパスワードを忘れた場合はどうすれば良いの? を参考に、パスワードを再度セットする。

エクスポートしたsql文に「phpmyadmin=xxxxx」が追加される

とあるクライアントAのサイトいれているサーバーが、最近マルウェアを埋め込まれたり改竄されるため、引っ越すことに。

サーバーを直接クライアントAに提供している会社Bに相談したら、他のサーバーを用意してくれるということで、データベースだけ引っ越しておいてもらうことにした(ファイルは感染してたらいやだから、初期に導入したファイルをアップしなおすことに)。
ちなみに会社Bはレンタルサーバ会社Fからサーバーを借りて、それを提供しているらしい。だから、サーバー自体はF会社のサーバ(もうプラン自体は新規提供していない)。

そのあと、うちでCMS(XOOPS)のデータを移行。すると、XOOPSが真っ白(よくある表現ですが)。

phpmyadminなどの情報は聞いてなかったから、非常事態対応的にphpmyadminをサーバに入れて、データベースからデバックをonにしてみたら、テンプレートの記述がおかしいというエラーが出る。

<{$category_id}&phpMyAdmin=595………> みたいに。そりゃ、Smartyもエラーになるわ。うんうん。その一か所を直したら、また他の箇所で同じようなSmaryのエラーが出るので、phpmyadminいれちゃったし、ついでに全部エクスポートして、「phpmyadmin=」を検索してみたら、テンプレート以外にも変な記述が複数あることに気づきました。

1.テンプレートに「<{$category_id}&phpMyAdmin=595………>」という記述が追加されいてる。

2.<a href=””>のリンク先の末尾に、「?phpMyAdmin=595………」という記述が追加されいてる。

3.<a href=””>のリンク先が 「?id=2」みたいな記述だったら「?id=2&phpMyAdmin=595………」という記述が追加されている。

4.<form>タグがあったら、<input type=”hidden” name=”phpMyAdmin” value=”595………” />というコードが追加されている。

怪しすぎる!!!怖い!気持ち悪い!!

自分で、旧サーバにphpmyadminを入れてエクスポートしてみたら、そんな記述はないから、XOOPSのデータか何かに埋め込まれているわけではなさそうです。

新サーバのツール使ってインポートしたときにそうなったとは考えにくいので、おそらく旧サーバで何かのツールでエクスポートしたときにそうなった可能性が高そうです。

今までの経緯でも、ンタルサーバ会社Fが使用している、サーバのコントロールパネル「Parallels Plesk Panel」の脆弱性が怪しそうです。その「Parallels Plesk Panel」のツールを使って、sqlのエクスポートをしたそう。

続きを読む

GMOクラウド(旧アイル)のレンタルサーバで「Internal Server Error」

昨日、アイル(現GMOクラウド)でレンタルしていたサーバーのサイトが、急に「Internal Server Error」と表示されていました。CMSを入れているサイトなので、その不具合かと思ったのですが(しかし、何もいろってないよ)、例えば「blog」というフォルダ以下はエラーが出ていない。

ルートに入れたPHPファイルのみエラーがでます。

GMOクラウドのサイトに行くと、こんなニュースが

PHPのバージョンアップのご案内
http://shared.gmocloud.com/news/2013/130530.html

php.iniを独自で入れている場合、

cgi.force_redirect = 0

をいれておかないと「Internal Server Error」と出るそうな。

たしかに、ドキュメントルートにだけ「php.ini」を独自に作って入れていました。

php.iniをわざと作っていない限りは関係ないのですね。そして、php.iniはその階層でしか効果がないと。

ちなみにタイムゾーンの設定もしておくとよいみたい。
date.timezone = Asia/Tokyo
この設定なくてWarningが出てるのは過去にもあったのでメモメモ。

facebookに投稿しようとしたら「年を入力してください」と出る。

facebookページで投稿しようとしたら、投稿できないというご相談。
投稿しようとすると「年を入力してください。 投稿日時を指定するには年から入力してください」というのが出て、なんだか投稿できない……。

アカウントの問題? 権限? いろいろと考えましたが、私がログインして投稿するとあっさり投稿できる。

この違いは……ブラウザでした。

なぜか、InternetExplorerだとそういう表示がでます。

GoogleChromeやFirefoxだと出ません。

不思議です。ブラウザの何かの解釈の違いかしら…。

modxの1.6と1.6.1の差分を調べる

【追加】
assets\public_html
assets\js\jquery.min.js
install\actionsフォルダ
install\assets\chunks\mm_rules.tpl
manager\includes\upgrades.php
manager\media\captchaフォルダ
【削除】
assets\js\jqueryフォルダ
assets\js\getjs.php
install\action.connection.php
install\action.install.php
install\action.language.php
install\action.mode.php
install\action.options.php
install\action.summary.php
install\assets\chunks\mm_demo_rules.tpl

manager\includes\localeフォルダ
manager\includes\noisesフォルダ
manager\includes\sniffフォルダ
manager\includes\ttfフォルダ
manager\includes\browsercheck.inc.php
manager\includes\veriword.php
manager\includes\extenders\getUserData.extender.php

manager\media\browser\mcpuk\connectors\php\Docs\AuthenticationHandlers.txt

manager\media\ImageEditor\Classes\IM.php
manager\media\ImageEditor\Classes\NetPBM.php
manager\media\ImageEditor\Classes\Thumbnail.php

manager\media\script\bin
【変更】

index.php
sample.htaccess

assets\plugins\managermanager\mm.inc.php
assets\plugins\managermanager\functions\tabs.inc.php
assets\plugins\managermanager\widgets\ddsetfieldvalue\ddsetfieldvalue.php
assets\plugins\managermanager\widgets\ddsetfieldvalue\ddsetfieldvalue.php

assets\plugins\qm\qm.inc.php

assets\snippets\ditto\debug\modxDebugConsole.class.php
assets\snippets\ditto\extenders\summary.extender.inc.php
assets\snippets\eform\eform.inc.php
assets\snippets\weblogin\websignup.inc.php

assets\templates\xray\content.css
assets\templates\xray\content.css

assets\upgradephp\upgrade.php

install\functions.php
install\index.php
install\instprocessor.php
install\setup.info.php
install\setup.sql
install\style.css

install\assets\chunks\login.tpl

install\assets\plugins\manager_tpl.tpl
install\assets\plugins\mgrmgr.tpl
install\assets\plugins\qm.tpl
install\assets\snippets\eform.tpl
install\assets\templates\xray.tpl

install\lang\english.inc.php

manager\actions\bkmanager.static.php
manager\actions\eventlog.dynamic.php
manager\actions\export_site.static.php
manager\actions\files.dynamic.php
manager\actions\import_site.static.php
manager\actions\modules.static.php
manager\actions\mutate_content.dynamic.php
manager\actions\mutate_htmlsnippet.dynamic.php
manager\actions\mutate_module.dynamic.php
manager\actions\mutate_module_resources.dynamic.php
manager\actions\mutate_plugin.dynamic.php
manager\actions\mutate_settings.dynamic.php
manager\actions\mutate_snippet.dynamic.php
manager\actions\mutate_templates.dynamic.php
manager\actions\mutate_tmplvars.dynamic.php
manager\actions\resource_selector.static.php
manager\actions\resources.static.php
manager\actions\role_management.static.php
manager\actions\user_management.static.php
manager\actions\web_user_management.static.php

manager\frames\1.php
manager\frames\nodes.php

manager\includes\accesscontrol.inc.php
manager\includes\config_check.inc.php
manager\includes\document.parser.class.inc.php
manager\includes\initialize.inc.php
manager\includes\log.class.inc.php
manager\includes\protect.inc.php
manager\includes\tmplvars.commands.inc.php
manager\includes\tmplvars.format.inc.php
manager\includes\version.inc.php

manager\includes\controls\datagrid.class.php
manager\includes\controls\datasetpager.class.php
manager\includes\controls\modxmailer.inc.php
manager\includes\lang\english.inc.php
manager\includes\lang\japanese-utf8.inc.php

manager\media\browser\mcpuk\connectors\php\Commands\FileUpload.php
manager\media\browser\mcpuk\connectors\php\Commands\GetFolders.php
manager\media\browser\mcpuk\connectors\php\Commands\GetUploadProgress.php

manager\media\rss\rss_cache.inc
manager\media\rss\rss_fetch.inc

manager\media\style\MODxCarbon\style.css
manager\media\style\MODxCarbon\style.php

manager\processors\cache_sync.class.processor.php
manager\processors\save_htmlsnippet.processor.php
manager\processors\save_module.processor.php
manager\processors\save_settings.processor.php
manager\processors\save_user.processor.php
入れてみたら、「ファイル管理機能の対象ディレクトリのパス設定が正しくありません」と出るエラーがでたので、
http://forum.modx.jp/viewtopic.php?f=7&t=826&start=0
を見て、調べました。

ここに記事のあったBindings機能の有効無効のpluginをオフにすることで問題はなくなりましたが、Bindings機能ってなんでしょうか。

「Dreamweaverなどで作ったhtmlファイルをそのままテンプレートにする」というようなときに利用するとあります。http://modx.jp/docs/tips/other.html

ひとまず、今は使わないのでpluginをオフにしておこうと思います。

 

wordpressでよく使うのによく忘れること-画像編

画像のアドレスからアタッチメントidを取得し、そのアドレスの別サイズの画像を表示させる

【長い前置き】
Typesのカスタムフィールドセットを利用して、「メインイメージ」とか「サブイメージ」を作りました。
「メインイメージ」は大き目サイズで表示させてー、サブイメージはサムネイルサイズの正方形のを表示させたい!という設定です。

カスタムフィールドの「画像アップロード」から、画像をアップロードし、その画像の「サイズ」で「サムネイル」を選んで、追加されている「Types」というとこの「field値で設定」をクリックしたら「サムネイル」の画像のURLが値に挿入されるんだろうなぁと思っていたのです。

違った…。

挿入されるのは、その画像のオリジナルファイル名。一番おおきな画像です。wordpressを通してアップロードしたのだから、サムネイルもミドルサイズもすべて作られているはず…もったいない!!

オリジナルファイル名ということは、うまくすればwp_postからIDを取得し、そのIDで「wp_get_attachment_image_src」を使用して、表示したい画像サイズのファイルを引っ張ってこれるはず……。と、考えたり調べたりしていたら、とっても素敵なサイトさんを発見しました。

【結論】

WordPressで画像のURLからアタッチメントIDを取得する

まさに、その方法です。正規表現が苦手な私として、とってもありがたいことでございました……。

 

サムネイル、ミドルサイズ、ラージサイズ……任意のサイズで画像を保存させたい

【長い前置き】
「メインイメージ」は、お客様がデジカメでとった写真そのまま入れてもらって、横長に勝手に加工されるほうが楽ですよね。「mainimage」に使用するためのサイズに自動的に保存してくれないかな。

【結論】
add_image_size を使用すれば簡単です。
仕様するテーマフォルダにfunctions.phpを作って(あるならそのファイルに追加)、上記のコードを追加するだけ!
メディアのサイズ選択には表示されないけど、特殊なサイズを取り出すなんて、特殊な条件だろうから、テーマファイルに書いてしまえばいいですよね。

ちなみに、私は


<em id="__mceDel">add_image_size( 'mainimage',675 , 403, true );

を追加して、その画像を引っ張ってくるところは


<img src="<?php echo get_attachment_image_src($post -> {'wpcf-mainimage'}, 'mainimage'); ?>" alt="" />

としました。mainimegeはTypesで設定したカスタムフィールドなので、「wpcf-」が頭についてます。

 

また、随時更新します。

the excerpt()の文字数はnew_excerpt_lengthで変更できない?

the_excerpt()を利用して、記事の抜粋を表示してみて、文字数がちょっと少ないかなと思ったとき。文字数を変更する方法を検索していて、テンプレートタグ/the excerptに行きついた。説明をふむふむと呼んでいて、 WP Multibyte Patchプラグインを有効化。その後、「new_excerpt_length」を使用した文字数の変更をfunctions.phpに入れて、さあ、見てみよう!となったとき……。

文字数増えた。増えすぎた。

new_excerpt_lengthで設定した文字数変更してみる。

あれ?かわらない?かわらないよ。

で、いろいろ調べてみると「WP Multibyte Patchプラグイン」を有効化しているときには、new_excerpt_lengthで指定した文字数は効かず、「WP Multibyte Patchプラグイン」内に設定された「110文字」が有効になるようです。

これ、同じページにある「new_excerpt_more」による「…」の変更は効くからさー同列で考えてしまうけど(私だけか)、違うものなんですよね。

「WP Multibyte Patchプラグイン」を有効化しているときには、どうしたらよいのか……。

function new_excerpt_length($length) {
     return 60;
}
add_filter('excerpt_mblength', 'new_excerpt_length');

とadd_filterのexcerpt_mblength と変えてあげる必要があります。

この情報は、「記事の抜粋」にばっちり載ってました。困り方が一緒で何か嬉しかった(すみません。ありがとうございます)。

でも、この記事にたどり着くまでに、同じような文字数の変更の記事をいくつかみたのですが、「WP Multibyte Patchプラグイン」を有効にして、add_filter(‘excerpt_length’, ‘new_excerpt_length’);って載せているところがぽつぽつとあったのですが、実際にやってみたのか、2年ぐらいの間に仕様が変わったのかなーと思ったりです。

wordpressでよく使うのによく忘れること-カテゴリー編

記事内に親カテゴリー名とカテゴリー名を表示する(一つ限定の場合)

ついでにカテゴリIDとかスラッグとかも取得して、アイコン画像やdivのclass名とかいろんなことに使うのよ。
あくまで1個のときのコードなので、複数あるときは、$catname = “”;をforeachの外に置いて、foreach内でつなげるみたいなことをしたらよいと思います。

<?php $cats = get_the_category();
foreach( $cats as $cat) {
	$catname = $cat->cat_name;
	$cid = $cat->cat_ID;
	$slug = $cat->slug; //iconファイル名に使用
	$pcat_name = ""; //親カテゴリー名の初期化(""の中に何かいれたら、親がいないときの処理に使えるよ)
	if($cat->parent){
		$pcat = get_category($cat->parent);
		$pcat_name = attribute_escape($pcat->cat_name);
	}
}
echo "親カテゴリ:".$pcat_name;
echo "カテゴリ:".$catname;
?>

あくまで、親カテゴリとかいろんな要素をデザインに使いたいから面倒なことしてますが、ただ、カテゴリーを表示したいなら

<?php single_cat_title('category:'); ?>

とか

<?php the_category(); ?>

とかで、良いのではないのかなとも思います。

他に躓いたら随時追加します。