Category Archives: php

reStructuredTextでwordpress投稿

wordpressでreStructuredText

wordpressはとっても最高なCMSだけども、reStructuredTextで書けないために使用を断念することも多いかと思います。

そこで、ちょっと探してみたところ WordPreSt reStructuredText Plugin For WordPress ↯ xdissent.com というプラグインがありました。
しかし、残念なことに新しめのwordpressではうまく動かないようです。

そこでちょっといじってみて、とりあえず投稿できるようにはなりました。これもそのプラグインを使って投稿してみました。

しかし山ほど問題が。。。

Read more »

nginxでwordpressを高速化

この記事(WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc)をみて、触りたかったけど放置していたnginxがもう我慢できなーいになってしまいましたケロッグ。

Web Server Survey | Netcraftによると2011年1月のウェブサーバのシェアはapache 59.13%、iis 21.00%、nginx 7.50%となっています。
なかなか元気です。

というわけで、まずはこのブログをnginx上で動かしてみました。
nginx+php(fastcgi)+nginx cache+mysql+wordpressです。
簡単にabで計測してみたところは以下の通り。

Requests per second:

apache nginx(キャッシュなし) nginx(キャッシュ)
5.47 14.74 335.43

キャッシュありは比較するようなものではありませんが、とても早いですね。
キャッシュ効かせなくても通常のapacheよりは軽快に動作してくれそうです。

phpを高速化 APC(alternative PHP Cache)

どうせ閲覧数少ないから、とwp-cacheなんかも試してなかったけど、PHPのこういうのもあるんですね。
ここでは役に立たないけど他で使うために実験してみた。

が、モバイルなフォンがパケ代節約でウェブを見ないことにしたので、ktai-styleがうまくいってないぽいけど、いろいろ確認しにくいので、ktai-styleは停止。
wp-cacheもsuper cacheにしてみたかったが、superだとURLの形式を変えなきゃいけないので却下

むしろ WordPress の管理画面が爆速になる APC (Alternative PHP Cache) – Nire.Com

APC(Alternative PHP Cache)再び – Do You PHP?

php5.3と5.2の共存

php5.3だとうまく動かないやつがいたのだが、5.3対応するわけにもいかなかったので、5.2環境を作る。

Read more »

AN HTTPDでPHP5を動かす

ホームページを作る際、通常自分のPCではcgiやphpは確認できないわけですが、AN HTTPDなどでローカルサーバを動かしてperlやphpを動作させれば、とりあえずローカルで確認するのには便利です。
ってわけで、今までperlは動かせるようにしていたけど、phpも入れてみました(自宅鯖がぶっこわれたままなので・・・壊れてなきゃそれでやるのに・・・)。

まぁ、割とさくっと動いてくれたのでよかったです。ネットに文章を残してくれている神に感謝です。
phpでがりがりプログラムを作らなくても、単に共通部分のインクルードだけでも確認の手間が省けていいですわー。

★参考
AN HTTPDでPHP5を動かす
AN HTTPD

phpのmemory_limitなどを変更する方法

WordPressで画像をアップロードすると、以下のようなエラーがでた。

Fatal error: Allowed memory size of 8388608 bytes exhausted ~~

これは、phpでユーザーが確保可能なメモリ「memory_limit」以上のメモリを確保しようとしたためにでている。
私の場合はadmin-functions.phpの2152行あたりの「imagecreatefrom***」というphpのGD関数でエラーがでていた。
ここらの処理は、アップロードされた画像を展開してサムネイルを作成する処理・・・・・にみえる。
ちなみに、私が利用させてもらっているレンタルサーバーではmemory_limitは8M。
つまり、展開して8M以下の画像しかアップロードしてもエラーがでちゃうわけである(画像自体はアップロードされている)。

これを解決するには、WordPressでのアップロードをあきらめFTPでアップするか、memory_limitをもっと大きな値にするしかない。

私の場合、アップロードしてDBに登録された情報を利用してイメージリストを作りたかったので、なんとしてもWordPressでアップロードしたい。

ということで、memory_limitを変更する方法です。

1..htaccessを利用する。
 WordPressのフォルダの.htaccessに下記の文を追加。

php_value memory_limit 16M

 私の場合はこれでOKでした。

2.ini_setを使う。
 WordPressで利用するphpファイルのどこかにini_set(‘memory_limit’,’16M’);を追加する。
 しかし、追加できるそれっぽいファイルを発見できなかったのでこの方法はやっていません。

3.サーバーによっては、php.iniを設置する。
 記事を見かけただけで試していませんが、ルートフォルダとかにphp.iniを設置して設定を記述すると、反映されるところもあるそうです。
 上記2つの方法でだめなら、サーバーの人にきいてみましょう。

★参考
アップロードについて

ボヤキ:なんでローカルで記事を保存せずに、MTだけで書いてアップしたときに限って、うまく送信できないんだ・・・。゚(゚´Д`゚)゚。

phpMyAdmin

phpを利用して、MySQLデータベースを操作するスクリプト

MySQLを操作する「何か」を動かしていたがバグでどうにもならなくなったときとか、phpMyAdminでMySQLを操作して消したりするとよい。
私はNucleusを以降中に色々やってたら全く触れない状態になっちゃったのでDBを綺麗にして再度いれなおした。
いまどきのレンタルサーバーなら最初から導入されてるかもね。
似たような(名前が、ね)のに、PostgreSQL用なphpPgAdminってのもあります。

・インストール手順(うるおぼえ)
1.phpMyAdminをダウンロード
2.librariesのconfig.default.phpを編集
PmaAbsoluteUriをphpMyAdminのURLに。
['Servers'][$i]['host'] にMySQLサーバーのホスト名
['Servers'][$i]['user'] にMySQLユーザー名
['Servers'][$i]['passuord']にMySQLパスワード
DefaultLangにja
MySQLサーバーのポートがデフォルトじゃなければ、portも変更。
くらいかな?
3.編集したら、トップディレクトリにconfig.inc.phpという名前で置く
4.サーバーにアップ
5.アクセスするとたぶん動く。
6.このままだと誰でもアクセスできちゃうので、.htaccessなんかでアクセスを制御する。

★参考
http://www.futurism.ws/server/phpMyAdmin/