‘WordPress’ カテゴリーのアーカイブ

WordPress用のShadowbox JSプラグイン

2009年4月7日 火曜日

WordPress上でFLASHコンテンツを表示したかったので。

WordPress用のShadowbox JSプラグインをインストール。SWFのサイズ指定方法がよくわからないけど、a rel=”~”を使って自分で指定するしかないの?

box2d_01

Lightboxプラグインと衝突しないのかなとか、ブラウザの種別やバージョンによっては表示されてないんじゃないかとか不安になってきたけど気にしない!

WordPressのパーマリンクでForbidden

2009年3月27日 金曜日

WordPressをインストールした後に、設定→パーマリンク設定を変更したら、

Forbidden
You don't have permission to access /mm/ on this server.

または、

このページの表示が認められていません
HTTP エラー 403 - アクセス不可

と表示されてしまい、管理画面どころかBlogページが見られなくなってしまったので解決方法。 FTPソフトでサーバにあるファイルを見てみると、WordPressをインストールしたディレクトリに、.htaccessというファイルが出来ているはずなので、これをダウンロードしてテキストエディタで開いてみます。

# BEGIN WordPress
RewriteEngine On
RewriteBase /xxxx/yyyy/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxxx/yyyy/index.php [L]
# END WordPress

ここの最初の行に、 Options FollowSymLinks と書き加えて保存してアップロードすれば表示されるようになるはずです。それだもダメならわかりませんが、とりあえず.htaccessを削除すれば管理画面が見られない状態は回避できます。

 原因は、mod_rewriteを使うにはOptions FollowSymLinksを設定しないといけないから、だそうです。ここのサーバはapacheのオプション指定は利用者まかせなので(ありがたいことです)、自分で設定しないといけないのですね。

WordPressでソースコード表示プラグイン

2009年3月27日 金曜日

syntax-highlighterというプラグインを導入しました。さっそく動作テスト。

<?php
function printHello(){
    print "Hello world";
}
printHello();
?>

WordPressのデフォルトスタイルでもcodeというスタイルの設定がありますが、こちらの方が見やすいかな。
ただ、ActionScriptがないのが残念。jsフォルダに追加すればよさそうですけど。

WordPressをSQliteで動作させる

2009年3月27日 金曜日

ここのサーバにWordPressをデータベースにSQliteを用いてインストールしてみようと思ったのですが、すんなりとはいかなかったのでメモ。

あらかじめ、サーバにインストールされているPHPのバージョン等々の情報をphpinfo();で調べてみたところ、PHPは5系だし、pdo経由でSQLiteが使えるようなので問題なさそうです。

まずはZIPファイルをWordPressのサイトからダウンロードして展開します。合わせてPDO (SQLite) For WordPressをダウンロードして展開しますが、展開したファイルは先のWordPressを展開したフォルダの中のwp-contentというフォルダに入れておきます。それから、wp-contentフォルダにdatabaseというフォルダを作成します。WordPressを展開したフォルダに、wp-config-sample.phpというファイルがあるので、これをwp-config.phpにリネームして内容を書き換えます。書き換える箇所はdefine(‘DB_COLLATE’, ”);という行の直下にdefine(‘DB_TYPE’, ‘sqlite’);という行を追加します。

WordPress一式が入ったフォルダをサーバにFTPでUpします。で、そのフォルダのアクセス権を一時的に777にします。また、wp-content/databaseフォルダの権限を777にします。

ブラウザから、インストール設定画面を開きます。こんなURLです→http://www.xxxxx.xxx/WordPress/wp-admin/install.php

ここで問題が起きて、まず、真っ白な画面が出てきます。こりずにブラウザ更新すると、「ようこそ」の画面が出てくるのですが、WordPressをインストールのボタンを押すとSQLのエラーが表示されます。

Queries made or created this session were

Raw query: SELECT option_value FROM wp_options WHERE option_name = 'siteurl'
Rewritten: SELECT option_value FROM wp_options WHERE option_name = 'siteurl'
With Placeholders: SELECT option_value FROM wp_options WHERE option_name = ?
Prepare: SELECT option_value FROM wp_options WHERE option_name = ?
Error occurred at line 335 in Function prepareQuery.
Error message was: Problem preparing the PDO SQL Statement.
Error was Array ( [0] => HY000 [1] => 1 [2] => no such table: wp_options )

データベースのテーブルにwp_optionsという項目が無いよ~とのこと。FTP Up先の/WordPress/wp-content/databaseフォルダの中をみるとMyBlog.sqliteというファイルが出来ているのですが、ファイルサイズが0です。テーブルの作成に失敗しているようなのです。PHPのページを表示しようとしてブラウザの画面が真っ白という場合は大抵、エラーが起きているのですが、サーバ側の基本設定としてエラー表示を抑制している場合がほとんどです。
なので、強制的にエラーメッセージを表示するために、wordpress/wp-admin/install.phpというファイルの先頭に

<?php
ini_set( "display_errors", "On");
error_reporting(E_ALL);
...

という2行を追加します。それから、ファイルサイズが0で作成されてしまった/WordPress/wp-content/database/MyBlog.sqliteを削除して、
ブラウザを一旦閉じてから、再度、http://www.xxxxx.xxx/WordPress/wp-admin/install.phpにアクセスすると…

Fatal error: Call to undefined function preg_last_error() in /WordPress/wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.php on line 207

というエラーメッセージが表示されました。preg_last_error()という関数がないです、ということなのですが、この関数について検索してみると

preg_last_error ? 直近の PCRE 正規表現処理のエラーコードを返す

という関数なのですが、(PHP 5 >= 5.2.0)と書いてあり、PHPのバージョンが5.2.0以上でないと使えないようです。ここのサーバのPHPは5.1.6のようなので対応していないと。対応していないものはしょうがないし、この関数の機能は「直近の PCRE 正規表現処理のエラーコードを返します 」らしいのですが、エラーが出たところで対応できないので、この箇所をコメントアウトします。
該当するファイルはwordpress/wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.phpで、このファイル内のpreg_last_error()のある行を書き換えます。

// $this->_errors[] = preg_last_error();

ついでにinstall.phpのエラー表示箇所も元に戻しておきます。

再度、/WordPress/wp-content/database/MyBlog.sqliteを削除してからブラウザ再起動すると、一発で「ようこそ」画面が出てくるので必要な箇所を設定してから
[WordPressをインストールする]のボタンを押すと、「成功しました !」の画面が出てインストール完了です。

あぁそうそう、WordPressをインストールしたフォルダのアクセス権を755に戻しておきます。

まとめると、PHPのバージョンが5.2.0未満のサーバに、WordPressとSQLiteの構成でインストールする場合には、pdo_sqlite_driver_create.phpのpreg_last_error()が書いてある行をコメントアウトする、ということになります。