Sierra各種検証結果
OS X がバージョンアップするたびに個人的に調べている事項についての記事のまとめ。および、動作を確認したソフトウェアや周辺機器についても述べている。
« 2015年10月 | トップページ | 2017年6月 »
OS X がバージョンアップするたびに個人的に調べている事項についての記事のまとめ。および、動作を確認したソフトウェアや周辺機器についても述べている。
以前「YosemiteでユーザディレクトリCGI」で述べたように、OS X Yosemite 以降では apache の仕様が若干変更になっており、Mavericks までのやり方ではユーザーディレクトリ /Users/ユーザー名/Sites を http で公開することができなくなっている(注:「ユーザー名」の部分には実際には自分のユーザーアカウント名が入る。以下同様)。
かいつまんで言うと以下の通り。
その上で、sudo apachectl restart コマンドで設定を apache に反映させれば /Users/ユーザー名/Sites 以下の公開が可能になる。
問題は、ユーザーディレクトリで CGI を有効にする場合である。Sierra においては Yotemite 〜 El Capitan 時代とはまた少しやり方が変更になっており、一言で言えば、少し簡単になった(.htaccess が不要になった)。
まず、/private/etc/apache2/httpd.conf において、「#LoadModule cgi_module libexec/apache2/mod_cgi.so」の「#」を消す。
次に、/private/etc/apache2/users/ユーザー名.conf を以下のように記述する。
<Directory /Users/ユーザー名/Sites> AddHandler cgi-script .cgi AllowOverride All Require all granted Options ExecCGI </Directory>
次に SSI を有効にする方法も述べておく。SSI については El Capitan 時代より一行多く書き足す必要がある。
まず、/private/etc/apache2/httpd.conf において、「#LoadModule include_module libexec/apache2/mod_include.so」の「#」を消す。
次に、/private/etc/apache2/users/ユーザー名.conf を以下のように記述する(注:SSI だけでなく、CGI も同時に有効にすることを前提として記述している)。
<Directory /Users/ユーザー名/Sites> AddType text/html .shtml AddHandler cgi-script .cgi AddOutputFilter INCLUDES .shtml AllowOverride All Require all granted Options ExecCGI Includes </Directory>
(「 AddOutputFilter INCLUDES .shtml」が Sierra で追加された行)
※プレーンテキストについては El Capitan から全く変化はない。
プレーンテキストファイル(拡張子.txt、.pl、.php、.c など)は、Leopard 以降の macOS 上で作成したものであればどのような文字コードであってもヒットする(文字コードを指定するメタデータがつくから)。
それ以外の OS(Tiger以前、Windows、Linux)上で作成したものは(メタデータがつかないため)Shift JIS か UTF-8 のみヒットし、EUC-JP や JIS (ISO-2022-JP) ではヒットしない。
macOS 上であってもコマンドラインプログラム(vi、nano など)で作成したものは(メタデータがつかないため) Shift JIS か UTF-8 のみヒットする。
※拡張子が .html のテキストファイルについては Sierra ではかなり変化がある。
UTF-8 もしくは Shift JIS で書かれた .html ファイルは必ずヒットする(正しい HTML 構造をとっていようといまいと、<META> タグで文字コードを指定していようといまいとヒットする)。また、<META> タグ内で robots を noindex と指定していてもヒットする。
EUC-JP もしくは JIS (ISO-2022-JP) で書かれた .html ファイルは全くヒットしない(macOS 上で作成したことにより文字コードを指定するメタデータが付いていたとしても、ヒットしない。<META> タグで文字コードを指定していてもヒットしない)。
以前、macOS 標準装備の メモ.app にテキストファイルをインポートする Apple Script を作った(「メモ.appインポートAppleScriptを作ってみた」)が、Sierra には対応していないようなので、対応版を作成した。
(※Sierra のメモ.app にはインポート機能が備わっている(メニューバーの「ファイル」→「"メモ"に読み込む」)ため、このスクリプトを使う意味はあまりないかもしれないが、インポートするフォルダーを指定することができる、一つのテキストファイルを分割してインポートできるなどのメリットがあることはある)
使用は自己責任でお願いします。
なお、使用方法は記事の最後に掲載している。
(インポートではなく、エクスポート(書き出し)するためのスクリプトも以前作成したことがある。「メモ.appエクスポートAppleScriptを作った」を参照)
※注記:
macOS Sierra 10.12.0 の時点では下の画像の通り Apple Script の選択ダイアログボックスにバグがある
今後、10.12.1 以降で修正されるかもしれない。その場合はこの注記は無視していただきたい。