ホーム

永田順伸のブログ

出張

のぞみ N700系

ほとんど自宅で仕事をするため、これまで仕事で遠くに行くことはなかったが、今回、引き継ぎ事項がありはじめて出張というものを経験した。

新幹線に乗るのは本当に久しぶりなので緊張した。
心の中にある新幹線とはずいぶんと形が違ってしまった。

このN700系だと車内で無線LANができるし、
また、車内でFMラジオを持っていれば音楽やNHKの第1放送が聴けるサービスもあると車内の電光掲示板で案内していた。

新幹線走行中にアドエスで普通に接続してメールを読んだが、意外にあっさりと読み込むことができた。

さて、出張先は名古屋。名古屋駅
いつもはメールでしか知らない人たちに会えてよかった。
やはり、顔を見て話すのはいいと思った。

ひととおり、打ち合わせを終えて帰宅の途へ。
駅で、赤福が売っていたので一番安いのをひと箱買って車中へ。
遊びで来たら名古屋城なども見たかったな。

東京駅付近

朝早かったので少し眠ってしまい、気付いたら夕暮れの東京駅に着いた。
空には雲ひとつ無い。
澄み切った夕暮れの空を背景にして目の前のビルを写真に撮った。

おわり。

osCommerceをUTF8化、MySQL5対応

osCommerceをUTF8化、MySQL5対応に関する作業内容についてお問い合わせがよくあるのでブログに記しておきます。
必要な作業は以下のとおりです。

DB側 UTF8対応:
1. 新規DBの言語設定状況を確認
2. DBおよびサーバ、クライアントをUTF8に設定
3. 旧DBから新DBにデータを移動

osCommerce UTF8対応:
1. ファイルをすべてUTF8で保存します。
2. 内部でマルチバイト関数を利用している場合、確認の上、修正します。
3. メール送信で件名が文字化けする場合は修正が必要です。

osCommerce MySQL5対応:
1. MySQL5は文法チェックが厳しくなりエラーが発生する場合は、
SQLを書き直す必要があります。

これらの作業が必要です。
すでに改造したosCommerceの場合はその点の確認が必要です。
一括更新を利用されている場合はそちらの修正も必要です。

osCommerce サーバ 引越し

訳あって、osCommerceを別のサーバに引っ越す場合もっとも簡単な方法は、scpでまるごと転送する方法です。
旧サーバから新サーバへ直接転送するので、大量の画像ファイルがあるときもストレスなく移転作業ができます。
どちらのサーバもsshでの接続が許可されている必要があります。

まず、dfでディスクの残量を確認したあと、コンテンツ全体を圧縮します。
下記コマンドでは、public_htmlディレクトリ以下をすべて圧縮しています。

tar czfp public_html.tar.gz  public_html

次に、scpで旧サーバの圧縮ファイルを新サーバへ転送します。

scp public_html.tar.gz ユーザID@新サーバのIPアドレス:転送先ディレクトリ

圧縮ファイルが転送先ディレクトリに届いたら

tar xzf public_html.tar.gz

として、展開して適切なディレクトリに設置します。

この方法で圧縮ファイル14GBを転送したことがありますが、展開したファイルはオーナや権限が元のままなので、
画面がまったく表示されませんでした。
はじめは何が原因なのかわからず、ファイルをひとつひとつ確認していましたが、
ファイルのオーナーが新サーバのそれと違うことがわかり、chownコマンドでオーナを変更して画面を表示できました。

osCommerce ベストセラー 期間のカスタマイズ

osCommerceのベストセラーランキングは、ショップ開始時から注文された個数がすべてカウントされる仕組みのため、最近の売上げトレンドがこのランキングに反映しにくいという欠点があります。
ランキングの期間を月間にするには/catalog/includes/boxes/best_sellers.phpをカスタマイズします。
best_sellers.phpの中にはカテゴリ別のランキング用とトップページのランキング用の2種類のSQLがあります。この両方のSQLにいつ何が売れたかを知るための条件などを追加します。
カスタマイズは、SQLがわからないと難しいかもしれません。
手順のみ記します。

まず、集計期間をどこかで定義しておきます。

define('BESTSELLER_DAYS', 30);

次に、検索対象にordersテーブルとorders_productsテーブルを追加します。
これらを関連させていつ何が売れたかを知ることができます。

TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, "

次に、売上げ個数を合計します。合計結果はrankとしてこの値でソートします。

SUM(op.products_quantity) as rank

集計関数なのでgroup byでp.products_idごとにでまとめるよう指示します。

GROUP BY p.products_id

最後に集計する期間を追加します。

AND TO_DAYS(NOW()) - TO_DAYS(o.date_purchased) <= '" . BESTSELLER_DAYS

この意味は「今日から注文日を引いてその結果が30日以内」ということです。
これで月間ランキングが表示されます。

Plesk MySQLへ管理者権限で接続

使えるネットのVPSで使用されているMySQLに管理者権限でアクセスしたい思ったが、パスワードがわからず困っていた。探してみるとこのパスワードでアクセスできた。

cat /etc/psa/.psa.shadow

sshで接続してこれを実行すると確認できる。
下記のようにしてMySQLに管理者権限でアクセスできた。

mysql -uadmin -p`cat /etc/psa/.psa.shadow`

plesk管理画面を再起動

とある、使えるネットのVPSサーバでMySQLをアップデートしたところPleskが動作不良になってしまった。
これまでの経験であちこち操作、設定をしたがまったく今度は様子が違い動作しない。
pleskのどの画面も「Plesk diagnostics」と表示されるだけ。
今回のサーバにはpleskの上位の管理画面Parallesというのがあったので各画面を確認してみた。
コンテナサービス→システムサービスとたどるとプロセス一覧が表示され、psaというプロセスが停止していた。
Pleskの内部にはこのpsaディレクトリをよく目にしていたし、前に見たときは動作していたような気がしたのでこれを再起動。
無事、pleskが起動してアクセスできるようになった。

osCommerceの管理者パスワードを忘れたら

管理画面にログインするためのIDやパスワードを紛失してしまっても再インストール以外に方法があります。
少なくともosCommerceのデータが格納されているデータベースに接続する必要があります。

もっとも簡単な方法はphpMyAdminで接続する方法でしょう。レンタルサーバには必ずこのphpMyAdminが用意されているはずです。操作方法などは自分で学習してもらうとして、phpMyAdminのSQL画面から下記を実行するだけです。

TRUNCATE TABLE  `users`;
TRUNCATE TABLE  `permissions`;

これを実行すると管理者用のIDとパスワード、管理者のレベルを設定したデータがすべて削除され、空になります。
この状態で管理画面にアクセスするとosCommerceの内部でusersテーブルに管理者が登録されているか自動的に確認して、管理者がひとりも登録されていない空の状態を検知して、IDをadmin、パスワードをadminとして管理者を登録します。ログイン画面からこのID、パスワードでログインできます。
ログインできたら、必ず別のIDとパスワードに変更しておきましょう。

使えるネットのVPSでPHPの設定

  • 2010/8/26 木曜日 15:23:41
  • PHP5 | VPS

使えるネットのVPSでPHPをドメインごとに設定する場合のメモ。
/var/www/vhosts//confディレクトリの中に、vhost.confとvhost_ssl.confを設置して下記のように設定する。通常はどちらも同じ内容を設定する。同じディレクトリ内にhttpd.includeというファイルがあるが、自動的に生成されるものなのでこれを書き替えても意味がない。

<Directory /var/www/vhosts/<domain name>/httpdocs>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode off
		php_admin_value open_basedir "/var/www/vhosts/<domain name>/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode off
		php_admin_value open_basedir "/var/www/vhosts/<domain name>/httpdocs:/tmp"
	</IfModule>
</Directory>

今回、この<Directory>タグを忘れてしまい、なかなかPHPの変更が反映せず無駄に時間を使ってしまった。

他にも、php_admin_value include_pathを設定した場合、php_admin_value open_basedirにも同じパスを設定しないとファイルを読み込めなかった。

vhost.confとvhost_ssl.confの設定が終わったら次のコマンドで変更を反映して、apacheを再起動する。

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=<domain name>
apachectl configtest
apachectl graceful

アドエス Evernote ログインできない

PCでEvernoteにアップしたデータをアドエスで確認しようとしたところ、なんどやってもログインできない。
下記、URLによるとSSL認証の問題でエラーになったらしい。
http://forum.evernote.com/phpbb/viewtopic.php?f=55&t=18276#p74706
このページにc3g2.zipがあるのでダウンロードすると中に3個ファイルがあるので、
c3g2.p7b
をアドエス内部にコピーしてクリックしてインストールするとエラーは解消された。

Pleskの修復モード

  • 2010/8/16 月曜日 2:56:14
  • Linux

使えるネットでレンタルしたサーバで、Pleskの構成を考えずにMySQLをバージョンアップしたらPleskの各機能が動作しなくなった。Pleskの上位の管理画面がありそこを確認していたら、修復モードというのがあった。ボタンを押してみると、修復モードになったようで、これで修正できるかなと期待した。時間がかかりそうなのでブラウザを閉じてその日は眠った。

翌日、管理画面からログインしようとしたらパスワードが違うというメッセージが出てログインできない。SSHでのログインはできたので内部を見て修復モードの意味がやっと飲み込めた。/repair/ディレクトリにこれまでの「/」以下がマウントされた状態でそれまでの機能がまったく使用できなくなっていて、FTPなども動作せず、各コマンドもCannot allocate memoryとメッセージがでて起動できない。
PleskのPDFのマニュアルやフォーラムなど1日かけて調べたが修復モードに関する記事はなかった。ログインできれば「修復の終了」ボタンでいまのモードを解除できるが、どうしてもログイン方法を見つけられなかった。あれこれ考えているうちに2日めになり、思いついたのは、ログインせずに修復モードを抜けられたらいまの状況を解決できるのではということ。そこで、コマンドラインから修復モードを停止する方法をさがした。解決策をいくつか試してみたが、コマンドが起動できなかったり、コマンド自身がなかった。どうしようもなくなって、一度散歩に出て頭を冷やすつもりが、猛暑で汗だくになった。
rebootとumountのどちらかを実行することにした。再起動したらもしかしたら通常モードで起動するような気がした。だめだったら、明日サーバ会社に連絡することにしてもっとも傷が浅くなるようにrebootを実行した。コマンドが実行され、サーバが停止した。SSHが停止してしばらく待ってサーバが再起動できた頃に、Webの管理画面からログインすると無事に管理画面が表示できた。なんと、再起動したら修復モードを解除できた。よかった。

相変わらずMySQLは起動できていない。
振り出しに戻ったようなものだけど、なんだかうれしい。

MySQLは/etc/my.cnfを削除して再起動するとうまく動作した。

ホーム

検索
フィード
メタ情報

ページの上部に戻る