カテゴリー
PHP

PHP コーディング規約

コーディング規約ってやっぱりあった方がいいですよね。できるだけ多くの人が馴染みやすいのがいいですよね。

PHPのコーディングで参考になるものはと見つけたのが PEAR (PHP Extension and Application Repository) の標準コーディング規約です。

https://pear.php.net/manual/en/standards.php

PEAR ライブラリを使ってなくても、このような標準コーディングが公開されていることは大変参考になります。

カテゴリー
Linux

Subversion リポジトリのバックアップとレストア

CentOS 上でのSVN(Subversion)リポジトリを新しいサーバに移動する必要があったのでその簡単な方法の備忘録です。
手順は現行サーバーのリポジトリをバックアップ(dump)して、それを新サーバーでレストア(load)するだけです。

1. リポジトリのバックアップ

# svnadmin dump /var/www/svn/projects > projects.dump

2. リポジトリのレストア
※ レストアの前に、こちらの手順で予めサブバージョンのインストールとレポジトリを作成しておきます。

# svnadmin load /var/www/svn/projects < projects.dump
カテゴリー
Linux 雑記

xargs で指定したコマンドに引数を渡す場合の工夫

xargsは標準入力を読み込み、それを引数として指定したコマンドを実行することができます。

例えば、以下のシェルスクリプトを実行すると指定したディレクトリにある更新日時が3日前のファイルを削除することができます。

$ find /tmp -mtime +3 -type f | xargs rm 

ところが find でファイルが見つからなかった場合、 rm のオペランドが不足ということになります。

rm: missing operand
Try `rm --help' for more information.

そこで、xargs に –no-run-if-empty というオプションを指定し実行することで、ファイルがない場合の対処ができます。

$ find /tmp -mtime +3 -type f | xargs --no-run-if-empty rm

以上です。

カテゴリー
Database PHP Web

CPI レンタルサーバーでPHP/PDO MySql接続エラー

CPIレンタルサーバーにWebシステムを構築していてはまってしまった件なのですが、PHP で PDO を使って MySql へ接続すると以下のエラーが。。。

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

ローカルのサーバーでは出ていなかったので、Unixソケットも調べたが /tmp/mysql.sock で問題なし。

原因は、host=localhost で接続していたためでした。’localhost’ を ‘127.0.0.1’ に変更したら接続ができました。

カテゴリー
Windows 雑記

Windows NT System and Kernel がポート80を使用している?

Windows Server 2012 にXAMPP をインストールして Apache と MySQL を使用したかったのですが、Apache が起動できなかった。
[Apache] Problem detected!
[Apache] Port 80 in use by “Unable to open process” with PID 4!
[Apache] Apache WILL NOT start without the configured ports free!
[Apache] You need to uninstall/disable/reconfigure the blocking application
[Apache] or reconfigure Apache and the Control Panel to listen on a different port

PID 4がポート80を使用しているということなので、タスク マネージャで調べてみると PID 4 は NT System & Kernel でした。

しかし、IISもインストールしていなし、このプロセスを止めるわけにはいかなそう。

サービス一覧をみてIIS関連のサービスや他の起動中サービスを眺めていたところ “SQL Server Reporting Services” が気にかかり、ためしに停止したらポート80が未使用になりました。