php5からphp7に移行
自宅サーバにて、毎朝 apache2 が止まる症状が続いた。調べてみると、php5 との相性が悪いみたい。
んで、当然ながら、他の管理しているサーバも動かないものが出てきた。ということで、職場の関連サーバも php7 に移行作業を行った。
Ubuntu(trusty) は、PHP5 で問題なし。
moodleサーバは、切り替えたら色々と表示されたな。
切り替えたら、アップロードできるファイルサイズ上限が2MBに減ってしまっていた。
(( /etc/php/7.0/apache2/php.ini )) upload_max_filesize = 400M post_max_size = 450M memory_limit = 500M # upload_max_filesize < post_max_size < memory_limit で要設定 (( apache 再起動 )) $ sudo /etc/init.d/apache2 restart
macOSのOneDriveでキーチェーンのパスワード
OneDrive アプリの更新がかかったら、「キーチェーンが一致しない」というエラーで OneDrive が起動しなくなった。
対応法法を調べると、キーチェーンのリセットとか書いてあるので色々と調べたけど、いい方法がない。グダグダ考えてもアプリの一時的な問題かと思い、macOS を再起動かけたら、普通に起動してくれた。
はぁ…
WordPress4.9.2が出た
WordPress 4.9.2 が出てきた。日本語版”-ja” 付きではないけど、早々に入れておく。
2018/01/18 追記
お、今回は、4.9.2-ja 翌日には公開されたな。はゃっ…
OpenDNSによるセキュリティ対策
先日参加した、高専機構の情報担当者研修では、新しく導入された統一システムの機能説明や今後について色々と説明を受けた。
でも、興味深かったのは、OpenDNSとも呼ばれているCisco Umbrella 。DNSを使ったセキュリティ対策で、ブラックリストに掲載されているホストへの問い合わせがあったらブラックな正規IPアドレスを返さないことで怪しいホストに接続させない。また、怪しいか判断が困難なグレーゾーンのホスト名なら、OpenDNSのProxyのアドレスを返し、ユーザを怪しいサイト接続させず、実際はOpenDNSが怪しいサイトに接続しグレイな内容を分析して、最終的にブラック/グレイ/ホワイトを判断するというシステム。
設定は、DNS サーバのアドレスを、208.67.222.222 にするだけ。
学校では色々と問題がありそうだし、自宅でこの機能を試してみる。
(( /etc/bind9/named.conf.options ))
options {
:
forwarders {
# Google public DNS
#8.8.8.8;
#8.8.4.4;
# OpenDNS (Cisco Umbrella)
208.67.222.222 ;
208.67.220.220 ;
};
:
};
動作確認は、https://welcome.opendns.com にアクセスして、以下の表示になればいい。
Wikipedia の説明を見ると、以前はブラックなアドレスを引くと、Yahooの広告ページにリダイレクトされるので….といったことが書いてあるけど、今はどうなんだろ。”nslookup www.xxx”で、いかにも怪しいサイトのアドレスをひいたけど、同じだな。Cisco に OpenDNS が買収されてるから、変な広告はなくなったと思うんだけど。
自宅で監視カメラを動かしてみた
今度の週末は、家族旅行の予定。 だけど、子どもがその間、最近病院に連れて行った婆ちゃん猫を 心配している。
そこで、使っていなかったWebカメラで、急遽、監視カメラを動かしてみた。 奥さんからは、解像度低いじゃんとツッコミを受けるが、 もともとのWebカメラの性能だと思うし…
余りにも他愛もないコードだけど、 この手のお遊びプログラムは、 学生さんに「こんなこと簡単にできるよ」と見せることも多いので、 PHPコードに改良&コメント付けをしておく。

監視カメラを動かすまで
fswebcamが一番簡単に使えそうだったので…
(( fswebcamをインストール)) $ sudo aptitude install fswebcam
fswebcamの出力をそのまま画像形式で返すプログラム。
(( webcam.php )) <?php // 画像形式、キャッシュさせない header( "Content-Type: image/jpg" ) ; header( "Cache-Control: no-store, no-cache, must-revalidate" ); // 連続読み出し用にファイルロック $flock = fopen( "/var/www-support/.webcam.lock" , (file_exists( "/var/www-support/.webcam.lock" ) ? "rb+" : "wb+" )) ; if ( flock( $flock , LOCK_EX ) ) { system( "/usr/bin/fswebcam -q -d /dev/video1" ." -p YUYV" // 画像形式 ." -D 0" // delay ." -S 3" // skip frame ." -r 320x240" // 解像度 //." -r 640x480" ." --title \"tsaitoh.net's webcam\"" ." --jpeg 75 -" ) ; fclose( $flock ) ; } ?>
webcam.php の出力画像を、連続で読み出すように、 JavaScriptで設定を書き加える。 <meta http-equiv=”refresh” content=”5″> みたいな方法だと、reload の度に画像がちらつくので、JavaScriptで reload させることになった。
(( index.php )) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=320,height=320,initial-scale=1"/> <title>自宅監視カメラ</title> <script type="text/javascript"> <!-- var count = 0 ; function reload() { count = (count + 1) % 100 ; // 画像を更新(キャッシュ画像を使わないように番号付) var img = document.getElementById( "image" ) ; img.src = "webcam.php?"+String(count) ; img.id = "image" ; // 動きの少ない相手用に確認表示 var txt = document.getElementById( "text" ) ; txt.innerText = "自宅監視カメラ: "+String( count ) ; } // --> </script> </head> <body> <p align="center"> <img id="image" src="webcam.php" onload="reload()" /> <div id="text"></div> </p>
oldstableをstableに
学科サーバやらアンケートシステムやらで、 Debianベースで色々なサーバを運用しているけど、 どれも5年近くの稼働。
きちんと更新はかけているけど、lenny から squeeze に 上げるのが面倒で、squeeze 登場の時に oldstable/lenny だけに sources.list を書いて運用していた。 しかし、さすがに oldstable のメンテナンス期間も過ぎ、 最近は、"aptitude safe-upgrade"かけても更新が無い。 限界。
ということで、メイン稼働でない oldstable なサーバで、 stable 切り替えを行う。ただ、大きな変更だけあって、 パッケージ間競合で、うまく自動更新スクリプトが止まらない。
何台か作業したけど、以下の手順だと競合が少ないかな。
aptitude install aptitude aptitude install gcc g++ aptitude install apache2 php5 aptitude install xserver-xorg aptitude install gnome # kdeと競合が多いけど、ばっさりkdeを一時的にremove...
ああ、サーバなのに使ってもいない gnome , KDE なんか、 こんなに律儀にインストールしてるんだろう…>オレ。
PHPが一般ユーザで動かなくなる
更新をかけたら、一般ユーザでのPHPが動かなくなる。 でも、自分のホームでは、動く。さっぱり訳の分からない状況で、 userdir が原因と疑い、検索をかけたらようやく解明。 PHP 5.3 あたりから、安易にユーザがPHPコードを使えないように、 設定ファイルが、変更されてる。
自宅サーバでは、問題なく動いていたし、設定ファイルを比較しまくったのだが、 違いが見つからず、解明まで時間ががかった。 自宅では、mod-enabled/userdir.conf は触らずに、 conf.d/php5.conf で設定していたものだから、気付くまでに手間取ってしまった。
(( /etc/apache2/conf.d/php5.conf )) <IfModule mod_php5.c> <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine on </Directory> </IfModule> </IfModule>
電子情報棟の無線LANの更新
電子情報棟では、学生実験などでのノートパソコンのネットワーク接続手段 として、FERECのルータを活用している。 アクセスポイントのSSID,パスワードを知っている利用者であれば、 WiFi接続後に、Web認証が要求されるので、 自分の学籍番号ベースのIDとパスワードを入力すれば、 ネットワークが利用できるようになる。
ただし、ネットワーク接続によるトラブルを避けるために、 http,httpsしか利用できないようにFirewall機能を設定してある。 特別の登録IDを設定すれば、Firewallの条件を変えることもできる。
IEEE.802.11n対応ハイパワーAPに更新
これまでは、主要な実験室にはハイパワーのアクセスポイント、 実験的に導入していた部屋には、小型のアクセスポイントを設置していた。 元々の機材は11a.b.gに対応していたが、フロアや実験室の場所によっては、 電波が弱く接続が困難であった。
今回、業務用の11n対応のハイパワーアクセスポイントに変更し、 電波条件もかなり改善し、電子情報棟のすべての教室・大きな実験室では、 十分な電波強度でアクセスポイントに接続が可能となった。
UPKIオープンドメイン証明の申請
学術研究機関を対象とした、無償のSSL認証キーの発行サービスの申請のTSVファイル生成を行う。 手順が長いので、肝心な所は記載しないが、その入力などの内容をメモ。 最終的に、電子情報工学科のTSVファイルと、緊急連絡システム用のTSVファイルを作った。
# mkdir /etc/apache2/ssl.key/ # cd /etc/apache2/ssl.key/ # cp 大きいファイル1 randfile1.txt # cp 大きいファイル2 randfile2.txt # cp 大きいファイル3 randfile3.txt # openssl genrsa -des3 -rand randfile1.txt:randfile2.txt:randfile3.txt 2048 > maisy.key Enter pass phrase: [passphrase] Verifying - Enter pass phrase: [passphrase] # lv maisy.key -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,xxxxxxxxx : -----END RSA PRIVATE KEY----- # openssl req -new -key maisy.key -sha1 -out maisy.csr Enter pass phrase for maisy.key: [passphrase] Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []:Academe2 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Fukui National College of Technology Organizational Unit Name (eg, section) []:Electronics and Information Department Common Name (eg, YOUR name) []:www.ei.fukui-nct.ac.jp Email Address []:. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:. An optional company name []:. maisy:/etc/apache2/ssl.key# lv maisy.csr -----BEGIN CERTIFICATE REQUEST----- : -----END CERTIFICATE REQUEST----- maisy:/etc/apache2/ssl.key# openssl req -noout -text -in maisy.csr Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, L=Academe2, O=Fukui National College of Technology, OU=Electronics and Information Department, CN=www.ei.fukui-nct.ac.jp Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): https://tsvtool.nii.ac.jp/cgi-bin/tsvtool.cgi TSV作成ツール:発行申請TSV ・CSRファイルから maisy.csr [CSR送信] CSR 主体者DN CN=www.ei.fukui-nct.ac.jp,OU=... サーバFQDN www.ei.fukui-nct.ac.jp dNSName なし 加入者Email 自分のメール 加入者氏名 斉藤 徹 加入者所属 福井工業高等専門学校電子情報工学科 ソフトウェア名等 Apache 2.2.9 [完了] [ダウンロード] issue-YYYYMMDD.tsv
実際に鍵を登録
UPKIの事務局に、issue-YYYYMMDD.tsv を送ったら、 鍵を入手するための「UKPI-ODCert]Webサーバ証明書発行受付通知」なるメールが 送られてきた。指定されたURLをアクセスして、サーバ証明書を受け取る。 ファイル名は、"サーバFQDN.cer"であった。(Apacheへの登録では"*.crt"に直す)
これに加えて、別途 "nii-odca2.crt" を入手しておく。
# cd /etc/apache2/ssl.key # mv ...PATH.../サーバFQDN.cer ./maisy.crt # vi /etc/apache2/sites-enabled/100-default-ssl : SSLCertificateFile /etc/apache2/ssl.key/maisy.crt SSLCertificateKeyFile /etc/apache2/ssl.key/maisy.key SSLCertificateChainFile /etc/apache2/ssl.key/nii-odca2.crt : # /etc/init.d/apache2 restart 起動すると、鍵作成時のパスフレーズを聞かれるので、入力する。
管理サーバのアップデート(2009/6/18)
管理しているサーバのアップデート作業を行う。
福井高専ネットワーク対外接続トラブル(3/31 22:00~4/1 11:00)
対外接続のFirewallのトラブルで、対外接続が 3/31 PM10:00頃から現在(4/1 AM10:00)まで、接続できない状態です。
# エープリルフールネタではありませんよぉ…
追記: 4/1 AM11:00 頃より、ようやく復旧しました。
サーバモニタ(nagios)から、学内の接続断の警告メールが、 復旧とともに遅ればせながら「大量」に流れ込んできます….
学内で昨日行われたSINETとの接続速度増強のための工事と、 色々関係があるかもしれないけど、詳細は不明だそうな。 ま、その辺は、業者の方に「お・ま・か・せ!」