プラグイン作るときは自動保存に注意【WordPress】
WordPressにて投稿フォームに設置するようなプラグインを作る場合は、自動保存に注意しましょうというメモ。
投稿フォームに設置するということは
add_action('save_post', 'hoge_save'); function hoge_save( $post_id ) { $wpdb->query("UPDATEやINSERTのSQL"); }
みたいな保存用のプログラムを書くことになると思うのですが、問題は自動保存。
この「add_action('save_post', '実行する関数名');」というのは、ボタンを押して保存するタイミングだけでなく、自動保存時にも実行されてしまうのです。
nandani | 2012年05月25日 | コメント(0) | トラックバック(2) | CMS関連 | PHP関連
WordPressのサイトマップを作る【プラグインなし】
WordPressのサイトマップといえば「Sitemap Generator」プラグインが有名でいつもお世話になってますが、今回はプラグインなしで作ってみることにしました。
早速ですが、出来上がったものがこちら。
nandani | 2012年05月16日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連 | WEB関連全般
yumのインストールエラー
メモ。
yum install ~を実行してもインストールできず
The program package-cleanup is found in the yum-utils package
という表示が出たときは
yum clean all
を実行するとうまくいきます(絶対とはかぎらないけど;)。
nandani | 2012年04月18日 | コメント(0) | トラックバック(0) | サーバー関連
「ブログ」を更新したとき、「ウェブサイト」のインデックスも再構築する【MT】
MTはバージョン5からウェブサイトをまず作成し、その中にブログを構築するという仕組みに変わったわけですが、ウェブサイトのトップページにブログの新着一覧などを表示する場合(※)、新着用ブログを再構築した時点で、ウェブサイトも再構築する必要があります。
※たとえば、ウェブサイトの「メインページ」テンプレートに以下のような記述がある場合
<ul> <MTBlogs include_blogs="x"> <MTEntries> <li><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></li> </MTEntries> </MTBlogs> </ul>
デフォルトではブログで再構築する場合は、そのブログのみの再構築となるので、ウェブサイトの再構築は行われません。
これをウェブサイトの表示にも反映させる方法は3つあります。
nandani | 2012年04月16日 | コメント(0) | トラックバック(0) | CMS関連
【まとめ】cgiを動作させる時「Internal Server Error」にならないために
- cgiファイルのパーミッションは755にする(サーバによるが)。
- cgiのパスを正確に記述する。(/usr/local/bin/perl、/usr/bin/perl など)
- httpd.confファイルにて、「SuexecUserGroup」を設定している場合は、プログラムファイルの「所有者」と「グループ」がその設定どおりになっているか。
- homeフォルダにウェブサイトを設置している場合は、suexecのdocroot(AP_DOC_ROOT)が「/home」になっているか。
変更方法:バーチャルホストでCGIを使う | Vagon - cgi-binフォルダにプログラムファイルを入れている場合は「cgi-bin」フォルダのパーミッションを「755」にする。
専用サーバでウェブサイトを構築してつまった個所はこんなところでしょうか。
nandani | 2012年04月12日 | コメント(0) | トラックバック(0) | Perl関連 | サーバー関連
suExecをhomeフォルダ以下で有効にする
メモ。
専用サーバにて、マルチドメインに対応させるべく、あれこれ試行錯誤中。
とりあえず「var/www/」フォルダにウェブサイトを置くのではなく
/home/ユーザ名/www/html
/home/ユーザ名/www/cgi-bin
というレンタルサーバではよくある構成にし、httpd.confにて、それぞれドメインを割り当てる設定にしたのですが、ウェブサイトは正常に表示できるようになったものの、cgi-binの中に入れたperlが動かない・・・
正確には「httpd.conf」で「SuexecUserGroup」を設定したとたん動かなくなるんですが、設定どおりのユーザ名とグループにしているはずなのに動く気配なし。
『Error 500 「Internal Server Error」について』の二の足は踏まん!と思ってたはずなのにこの有様・・・
いろいろと調べた結果、『今の設定だと「/var/www」以下に設置しないと「suExec」は有効にならないよ』ということが分かったんですが、その設定の変更方法が分からず、Googleであれこれ調べまくっているとこちらの記事を発見!
びっくりするほどわかりやすく説明してくれております。
この設定どおりに変更したところ、無事homeフォルダでも動くようになりました。
nandani | 2012年04月12日 | コメント(0) | トラックバック(0) | OS関連 | サーバー関連
PHP5.3のインストール
メモ。
借りたばかりの専用サーバ(ファーストサーバのデルタ2)の設定していたのですが、PHPのバージョンが5.1・・・
今時5.1はない!
ということでPHP5.3をインストールし直すことにしました。
nandani | 2012年04月04日 | コメント(0) | トラックバック(0) | PHP関連 | サーバー関連
System Checkというウィルスに注意!
やられましたー!!!
年度末のクソ忙しい時期に、「System Check」なる新種のウィルスにPCが侵されました。
結論から言うと、ガンブラーのようなデータ流出の危険があるウィルスでもないし、一見PC内のデータが削除されているように見えますが、隠しファイルになっているだけなので、復旧可能です。
何はともあれ、解決方法を見る(Chonpapa's blog様のサイト。手順を踏んで説明してくださってます。)
nandani | 2012年04月01日 | コメント(0) | トラックバック(0) | ウィルス関連
Error 500 「Internal Server Error」について
cgiにアクセスしたときなどに、表示されることがあるこのError500「Internal Server Error」
いまさら、私のブログで書く必要もないほど、解決方法はネットのいたるサイトで紹介されていますが、本日かなりつまったのでメモ。
- perlでパスは間違ってない。
- パーミッションは755にしている(705や700、701、777も試した)。
- プログラムミスが起こりえないほどの単純なプログラムにアクセス(別のサーバでは正常に動作している)。
にもかかわらず、Error500が出たまま。
かなり悩みましたが、解決してみれば単純明快。
httpd.confをのぞいてみたら「SuexecUserGroup」でユーザとグループが縛られてました。
それ以外のユーザでアップロードしたcgiは当然実行されないってことで。
su権限で各ファイルとフォルダのユーザとグループを変更することも考えましたが、そうすると上書きアップロードができなくなってしまうので(グループとか調整すればいいんだけど)、FTP使ってcgi-binフォルダにアクセスするのは自分だけだし、「SuexecUserGroup」の方を自分のユーザとグループに修正し、アパッチを再起動しました。
nandani | 2012年02月18日 | コメント(0) | トラックバック(1) | Perl関連 | サーバー関連