Mac OS X el captionでPEARをインストールする方法
本日、Mac OS X el captionでpearをインストールしようとした所、インストールに失敗しました。どうやらel captionから導入された新しいセキュリティである System Integrity Protection (SIP、別名 rootless)が動作してためのようです。
このため、SIP/rootless の管理範囲内である /System, /bin, /sbin, /usr だとユーザは ( sudo したとしても)作業することが出来ないようです。
pearが作成するディレクトは /usr 以下のため影響を受けます。
このセキリティを外してインストールする方法をシェアします。
SIP/rootlessを無効化する
1.再起動時にcmd+rを押し、リカバリーモードにする。
2.ターミナルを起動し、コマンドを実行
csrutil disable
3.再起動
これでSIP/rootlessが無効になった状態で起動出来ます。
pearをインストール
それでは、ここからpearインストール方法を説明します。
ターミナルから、以下のコマンド実行します。
$ sudo php /usr/lib/php/install-pear-nozlib.phar
すると、以下のようなメッセージが表示されインストールが完了します。
Password: ←パスワードを入力 [PEAR] Archive_Tar - installed: 1.3.11 [PEAR] Console_Getopt - installed: 1.3.1 warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.4) warning: pear/PEAR requires package "pear/XML_Util" (recommended version 1.2.1) [PEAR] PEAR - installed: 1.9.4 Wrote PEAR system config file at: /private/etc/pear.conf You may want to add: /usr/lib/php/pear to your php.ini include_path [PEAR] Structures_Graph- installed: 1.0.4 [PEAR] XML_Util - installed: 1.2.1
pearがインストールできました。
次にアップデートを行います。
sudo /usr/bin/pear channel-update pear.php.net sudo /usr/bin/pear upgrade-all
これでインストールは完了です。簡単ですね!
php.iniの作成
php.iniを作成します。
初期状態のファイルをバックアップします。
sudo cp /etc/php.ini.default /etc/php.ini
php.iniにpearのパスを指定します。
sudo cp /etc/php.ini.default /etc/php.ini
php.iniを保存する際に、読み込み専用とメッセージが出てしまいました。
E45: ‘readonly’ option is set (add ! to override)
その場合は以下のコマンドで保存可能です。
:w !sudo tee %
コマンドの説明
:w – 書き込みをする
!sudo – 管理者として実行
tee – 出力を上書き保存する
% – 現在のファイル名
これで設定は完了です。
pearライブラリのインストール
ライブラリをインストールするには、通常通りinstallコマンドを実行でOKです。
試しにCache_Liteをインストールしてみます。
pear install Cache_Lite
すると、以下のようなエラーメッセージが表示されました
WARNING: configuration download directory “/private/tmp/pear/download” is not writeable. Change download_dir config variable to a writeable dir to avoid this warning
Cannot install, php_dir for channel “pear.php.net” is not writeable by the current user
書き込み権限が無いとの事なので書き込み権限を与えます。
↑今回はGUIから権限を与えました。command + i キーを押すと、「情報」ダイアログが表示されますので、情報からパーミッションを変更できます。
(メニューの[ファイル>情報を見る]でも表示できます)
以下の4つのフォルダに書き込み権限を与えます
/private/tmp/pear/download
/usr/lib/php/pear
/usr/lib/php/pear/docs
/usr/lib/php/pear/tests
もう一度pear install コマンドを実行してみます。
$pear install Cache_Lite downloading Cache_Lite-1.7.16.tgz ... Starting to download Cache_Lite-1.7.16.tgz (32,997 bytes) .........done: 32,997 bytes install ok: channel://pear.php.net/Cache_Lite-1.7.16
無事にインストールが完了しました!
インストールされたファイルは/usr/lib/php/pearにあるようですね。
無効にしたSIP/rootlessを有効化する
1.またリカバリモードで起動する(再起動時にcmd+rを押し、リカバリーモードにする)
2.ターミナルを起動し、コマンドを実行
csrutil enable
3.再起動
以上で設定は完了です。
参考にしたサイト
以下のサイトを参考にさせていただきました。ありがとうございます。
OS X 10.11 El Capitanで、phpのモジュールインストール
HomebrewはEl Capitanへアップグレードする前に入れておく
以上、Mac OS X el captionでPEARをインストールする方法でした!
最新情報をお届けします