Archive for 5月, 2008

タスクマネージャでCPU使用率100%になってる奴がいる。svchost.exe

scvhost.exeはWindowsのネットワーク系サービスを動かしてるサービスらしい。ただ、svchost.exeは外見からなんのサービスを動かしているかわからないので、調べるためにツールを使う必要があり、今回はMicrosoftが提供してるProcess Explorerを使ってみた。

Process Explorer
http://technet.microsoft.com/ja-jp/sysinternals/bb896653(en-us).aspx
(リンクが切れていたら、ぐぐってください)

インストールは不要というか、適当なフォルダに展開してダブルクリックで実行。簡単です。

Process ExplorerでCPUでソートをして、CPU使用率100%になってるsvchost.exeを特定。対象のsvchost.exeでダブルクリックしてServiceタブを選択すると、原因のサービスが特定できる。サービスを選択してSTOPボタンで停止もできる。

犯人はHP Network Devices Supportでした。このサービスを止めたところ、嘘のようにCPU使用率が下がった。このHP Network Devices Support、何をしているサービスなのか不明。hpのofficejet L7580のプリンタドライバをインストールしたときに入ったみたい。

サービスの説明書きには……

「ネットワークに接続された HP デバイスの状態と構成を検出および監視します。このサービスが中止され、ネットワーク デバイスの IP アドレスが変更されると、デバイスを使用できなくなる場合があります。」

とのこと。このサービスを停止しても印刷することはできたので、ひとまず問題は無いみたい。たぶん、hpのプリンタ複合機でスキャナとかメモリカードとかをリモートで使用したり、プリンタ側から転送させたりするときに使うサービスなんだとおもう。印刷には影響なければヨシっていうことで。必要になったときにサービスを動かせばヨイです。

あと、調べていて気になったのがプリンタが動的にIPアドレスを設定する形(DHCP)で設定されている状態で、このサービスを止めると駄目みたい。なので、止める必要がある場合にはプリンタの設定でIPアドレスを固定にしてあげる必要がありそう。

Read the rest of this entry »

気が付けばWordpress MU(以下、wpmu)のバージョンが、1.5.1になっていました。
wpmu1.5.1はWordpressの2.5.1をベースにしている模様。

一回、wpmuをインストールして挫折したことがあったけど、再度チャレンジ。

coreserverは15GBが使えるレンタルサーバ(月500円)で安くてよいのですが、PHP 5がsafe modeで動作しているため、若干癖がある。そのためインストールメモ。
メモを取りながら~ではなく、作業後に思い出しながら書いてるので違うかもしれません。

  1. 事前準備。coreserver の管理メニューからmySQLでデータベースを作成しておく。
  2. coreserver にwpmuを展開。
    管理メニューのファイルマネージャからzipをアップロード&展開した場合、すべてが展開されない(2階層以下が無視される?)ので、FTPでつなげてアップロード。
  3. wpmuを展開したディレクトリ(たぶん、ドメインとおなじディレクトリ名)と、wp-contentのパーミッションに707を設定
  4. wp-adminに.htaccessを作成。下記のおまじないを記入。
    AddHandler application/x-httpd-phpcgi .php
  5. wpmuを展開したディレクトリにブラウザでアクセス
  6. wpmuの初期設定として、データベース、ユーザ名、パスワードを設定。あとはブログ名とかadmin用のメールアドレスを入力
  7. 無事にインストールできたらadmin用パスワードをメモ。
  8. FTPなどでwpmuを展開したディレクトリ(たぶん、ドメインとおなじディレクトリ名)と、wp-contentのパーミッションを705に戻す
  9. coreserver の管理メニューのツールにある「ファイル所有者名の変更」ボタンを押す。
    インストール時に自動生成されたファイル(.htaccess)やディレクトリ(wp-content内のディレクトリ)の所有者がapacheになってしまっていてあとで編集などができないために、この作業が必要になる。
  10. インストールした状態では英語のままなので、日本語に設定する……必要があるけど、wpmu1.5.1用の日本語ファイルの準備ができていないので、今日の時点ではあきらめ。がんばってください、翻訳作業をされている方々。

といった感じで、インストール終了。あとで検証をする予定なので、上記は変わるかも。

 

三題噺っぽいタイトルだけど、はまったのでメモ。

Wordpressは外部から記事を操作する仕組みとしてXMLRPCが提供されている。XMLPRC経由とはいえど、記事を操作するときにはユーザIDとパスワードを指定する必要がある。

Wordpressに標準設定されている権限を強い方から順番に……

  1. 管理者 / admin …… すべてOK(ユーザ作成やテーマ編集)
  2. 編集者 / editor …… カテゴリ編集、記事の編集(他人のものも)、コメントの承認ができるようになる
  3. 作成者 / author …… ファイルアップロードと記事の編集/公開ができるようになる
  4. 投稿者 / contributor …… 記事の作成/編集(公開はできない)ができる
  5. 購読者 / subscriber …… 読者

正直、管理者の権限はまだ理解できるけど、編集者/作成者/投稿者の権限は字面を読んだだけでは理解できなかった。大まかな整理は上記で大丈夫なはず。詳細についてはWordpress Codexを参照。

そして、もちろんXMLRPCで投稿するときも権限が関係してくる。XMLRPCから投稿して公開させるにはpublish_postsに対する権限が必要になってくるので権限:作成者(author)以上のユーザで使う必要があり。

権限が足りない場合、XMLRPCでエラーのリターンコード:401が帰ってくる。ただ、公開されている記事を取得する場合(metaWeblog.getPost)とかでも、権限的には購読者(subscriber)以上であれば問題の無いはずなのに、リターンコード:401。

時間の都合上 深く追っかけることができずに、XMLRPCを操作するユーザIDに管理者(admin)権限を割り当てて解決させてしまった。

SSLを使用していないのでパスワードが漏れて~とか考えたのが原因。仕事であればきっちりと権限を絞る&セキュアである必要があるけど、金銭が絡まないし消されたとしても趣味でやっている範囲なので、なにがあっても別段に問題はないので今回の対応でOKとしたい。

ユーザーの種類と権限
http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90

Roles and Capabilities
http://codex.wordpress.org/Roles_and_Capabilities

天下一品のラーメン、「こってり」ってラーメンというか「天下一品のラーメン」っていうカテゴリになる気がする。

不味くはないと思う。ただ、ラーメンとして美味しい?って聞かれたときに答えに困る感じ。

XMLRPCで日付がうまく更新できなかった件について。

恥ずかしながらケアレスミスでした。

xmlrpcのdateCreatedパラメータに対して変数で日付を指定していたところが、変数名が間違えていたため正しい値で代入できなかった様子。

20080508T12:31:00 (最後にZはつかない)の方法でバッチリと日付指定ができるようになりました。

ここのサイトじゃないですけど、HostGatorで使ってるWordpressにWp Super Cacheを導入。

別段特別な設定をする必要もなく、PluginフォルダにWp Super Cacheを展開してプラグインを有効にするだけ。あとは、.htaccessを書き換え(ボタン一つで書き換えてくれる。だめなら手で)。導入も簡単でした。

効果のほどは……想像以上。海外サーバっていうこともあって遅い点は仕方ないとしても、ピークタイムにMySQLが遅くてもキャッシュが効いていればパッと表示されます。キャッシュが静的HTMLとして出力しているのであたりまえって言えばあたりまえの話ですが、かなり有効っぽいです。

現状、記事数が2000を超えているのでキャッシュの保持時間をどのように設定すればいいのかわからないので、キャッシュタイムを1週間(604800秒)に設定。あとはしばらく様子見です。

WordpressとXMLRPC

2008年05月09日 1 Comment

分からないこと。

  • 日付の指定方法。20080508T12:31:00Zとか2008-05-08T12:31:00Z?
  • カスタマーフィールドへの挿入

ちょっと試行錯誤してみよう。

CMSとしてWordpressをココ以外で使ってるんだけど、エクスポート/インポート機能が変。

とある海外のサーバ(HostGator)にWordpressを設置して、XMLRPCで投稿しようとするとエラー。仕方ないので、CoreserverにWordpressを設置してXMLRPCで投稿。Coreserverに投稿したものをエクスポートして、HostGatorのWordpressにインポートすると……一部の記事がインポートされてない。

深いところまで追求はしてないけど、インポートorエクスポートをするときに記事の中身がでかい(文字数が多い)と失敗するみたい。100KBを超えるようなサイズだったので仕方ないといえば仕方ない。

インポート時にログが出力されるので、ログを見ればいいのかもしれないけど大丈夫だろうと思って、見ないでログを閉じてしまったので確認するすべがない状態。たぶんインポートログがwp-contentsの中にあるはずだろうから、あとで探してみよう。

直接、HostGatorのWordpressにXMLRPCで投稿できればこんな問題にならないんだけれど、、、こっちも調べてるかな。