Mac OS X el captionでPEARをインストールする方法


20110118 02

本日、Mac OS X el captionでpearをインストールしようとした所、インストールに失敗しました。どうやらel captionから導入された新しいセキュリティである System Integrity Protection (SIP、別名 rootless)が動作してためのようです。

このため、SIP/rootless の管理範囲内である /System, /bin, /sbin, /usr だとユーザは ( sudo したとしても)作業することが出来ないようです。

pearが作成するディレクトは /usr 以下のため影響を受けます。
このセキリティを外してインストールする方法をシェアします。

IT/WEB業界への転職なら求人サイトGreen

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

書き込み権限が無いとの事なので書き込み権限を与えます。

20151106-01

↑今回は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をインストールする方法でした!

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

follow us in feedly