OSX El Capitan へアップグレードで XtraFinder が動かない

OSX El Capitan はOSをよりセキュアに利用出来るようになる事と引き換えに、システムに深く関わるツールは動作に制限が出るようです。
XtraFinderもその一つのようで、アップグレードしただけでは起動すらできません。

オフィシャルサポートページを参考にシステムの設定を変更すると起動は可能(制限有り)

https://www.trankynam.com/xtrafinder/sip.html

1. Boot to Recovery OS by restarting your machine and holding down the Command and R keys at startup.
Command+R キーを押しながらMacを起動して、リカバリーモードにする。

2. Launch Terminal from the Utilities menu.
「ユーティリティー」メニューから「ターミナル」を起動する。

3. Enter the following command: csrutil enable –without debug
Reboot your computer.
セキュリティの一部を変更(若干不安)し、再起動。

# csrutil enable --without debug
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

これで XtraFinderが動作します。
この状態で、タブ切り替えのショートカットやウインドウの背景を暗くする等の機能は使えますが、カラム表示でフォルダを先頭に並び替える機能が設定画面に出てきません。
仕方がないので Finder の「表示オプション」で表示順序を種類に変更します。

OSX El Capitanへアップグレード時のローカル環境問題解決

色々とピンポイントで動かないアプリも出てきたので、作業環境のOSX Yosemiteをアップグレードしました。
macOS Sierra は、リリースされてまだ不具合も多そうなので、一つ前の OSX El Capitanへしたのですが、ローカルのサーバー周りで、マイナーな個人的なトラブルがありました。

VirtualHostが効いていない

httpd.confファイルが初期化されて設定が読み込まれていない事が原因。

$ sudo vi /etc/apache2/httpd.conf

#Include /private/etc/apache2/extra/httpd-vhosts.conf

コメントを外す

同様にいくつか別件で必要なモジュールもロードする

LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so

apacheを再起動

$ sudo apachectl restart

VirtualHostの問題は解決するも、作業中のWordpressサイトでデーターベース接続エラー

ターミナル上ではデータベースのアクセスに問題無いが、Wordpressからのみエラーになる。
原因がわからず一旦 MySQLを再インストール

$ brew uninstall mysql
$ brew install mysql

それでも解決しないので wp-config.php を変更

#define('DB_HOST', 'localhost');
define('DB_HOST', '127.0.0.1');

これで、一旦データーベースに繋がるようになりました。

若干気になるのでもう少し調べてみると、 php.ini がありませんでした。
php.ini.default をコピーして編集します

$ sudo cp -p /etc/php.ini.default /etc/php.ini
$ sudo chmod+w /etc/php.ini
$ sudo vi /etc/php.ini

short_open_tag = On
post_max_size = 20M
upload_max_filesize = 20M
extension=php_mysql.dll
date.timezone = "Asia/Tokyo"
pdo_mysql.default_socketi = /tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

$ sudo chmod-w /etc/php.ini

wp-config.php をもとに戻して接続出来るようになりました。

define('DB_HOST', 'localhost');
#define('DB_HOST', '127.0.0.1');

El Capitan は Yosemite に比べて動作がキビキビしています。
XtraFinderが動かなくなる(条件付きで動く)事もありますが、結果、アップデートを行って良かったです。

古いスマホでe.preventDefault()が効かない件

ちょっと古いスマホ(iPhone5SとかAndroidの4.x 辺り)のブラウザだと、e.preventDefault()が効かないので、a タグの処理が走ってしまう….

で、ググったりテストしたりして、分かったこと。

  • onClickだと、どうやっても無理。
  • onTouchEndでも、どうにも無理。
  • onTouchStartなら行けそう!
  • e.stopPropagation()はなんか、効くっぽい。

って事で、以下の様な感じにしたら、なんとか動いた。


$('a').on("touchstart",function(e){
	e.preventDefault(); 	 ←普通はこれでキャンセル
	e.stopPropagation();	 ←問題スマホは、これでキャンセル
	//処理内容
}