実装の参考となるリンク集#

PHP関係#

PHPリファレンス

PHP実行時のエラー表示設定#

Raspberry PiではPHPプログラムにエラーがあった場合,標準では /var/log/apache2/error\logというファイルにエラー内容を書きだします(Fedora の場合は /var/log/httpd/error\logでした).

このファイルはとても行数が多くなっていることが多いので,tailコマンドを使ってファイルの最後から中身を見ることが一般的です.

また,エラーログが大きくなりすぎないように自動的に複数ファイルに分割されていることもありますので,最新のエラーログフィルを最後から眺めてみてください.

# Rasbian OS の場合
$ sudo tail -n 50 /var/log/apache2/error_log
# Fedora OS の場合
$ sudo tail -n 50 /var/log/httpd/error_log

ここで,毎回,コマンドラインでこのコマンドを入力してエラーログを確認するのは手間ですし,複数人で同時にエラーが生じた場合,誰のエラーに対するエラーログかよくわかりません.

そこで,Webブラウザの画面にPHP実行時のエラーを表示させる設定もあります.

PHP関係の設定は,/etc/php.iniというファイルに記載されてますので,適宜関係しそうな記述を修正してみてください.

Apacheを再起動すると反映されます.

例えば,PHPのエラーを表示させるには,php.iniファイルの一番末尾に以下の一行を加えてください.

 display_errors = On

ただし,この設定はセキュアではないことに注意してください.

実装したPHPプログラムにどのような不具合があるのかを世界中に公開しているようなものですから,あくまで開発時の一時的な設定だと考えて,検証が終わったら設定をOffにしておくことを忘れずに!

補足:別のやり方としてエラーログを監視する方法もあります

$ sudo less +F /var/log/httpd/error_log

等するとファイルの更新を監視するモードになります.その状態でWebブラウザを開き,PHPにアクセスしてみてください.(エラーがあれば)error_logにエラーが追記されたことがわかるでしょう. 監視モードから元に戻るにはCtrl+C(さらにQを押して終了),再度監視モードに戻るにはShift+Fで戻ることができます.

エラーログの消去方法#

12万行のデータを扱っていると,デバッグ時に大量のエラーログが出力され,ディスクの使用量を一杯にしてしまうことがあります.

ディスク容量の確認方法や,エラーログのサイズ確認,削除方法は以下を参考にしてください.もちろん他の方法でもできます.

  • SSDやマイクロSDカード等の使用量の確認方法

$ df
  • /dev/mapper/fedora-rootの使用率が100%に近い場合は,以下のコマンドでログファイルの大きさをチェック

$ sudo ls -l /var/log/httpd/
  • error_logのサイズが大きいようなら次のコマンドでエラーログの中身を削除(もちろん中身を確認し問題ないなら)

例)HTTPログファイルの場合(echoで何も表示させない結果をerror_logへ書き込むことで中身を消去)

$ sudo sh - c "echo '' > /var/log/httpd/error_log"

Flickr APIについて#

HTML,JavaScript関係#

MySQL関係#

rootのパスワードを強制再設定#

MySQLのrootのパスワードが分からない場合は以下を実行してみてください.

# MariaDBのサービスを停める
$ sudo systemctl stop mariadb.service

# MariaDBをセーフモードで立ち上げる
$ sudo mysqld_safe --skip-grant-tables &

# MariaDBへrootでログイン
$ mysql -u root

# rootのパスワードを設定(MariaDBのコマンドライン上で)
MariaDB [(none)]> use mysql;
MariaDB [(mysql)]> select host,user,password,plugin from user;                         # 念のため確認
MariaDB [(mysql)]> update user set password=password('ここにパスワードを記述') where User='root';
MariaDB [(mysql)]> update user set plugin='' where User='root';                        # unix_socketを無効に

MariaDB [(mysql)]> flush privileges;
MariaDB [(mysql)]> exit;

# 簡単のため再起動(もちろんセーフモードで起動したMariaDBをkillしてもOK)
$ sudo reboot

もしくは

$ sudo systemctrl stop mysqld.service            # <--- MySQLサーバを停止
$ mysqld_safe -skip-grant-tables &               # <--- MySQLサーバをセーフモードでかつ権限無視モードで起動
$ mysqladmin -u root password 'mynewpassword'    # <--- rootのパスワードを「mynewpassword(例)」に強制変更
$ sudo systemctrl restart mysqld.service         # <--- MySQLサーバを再起動
$ mysql -u root -p                               # <--- ログイン試行

Apache,Linux(Fedora,Raspberry Pi OS)関係#

検索してみよう!

性能分析について#

Node.js関係#