2011-08-21

如何在共享主機安裝pear

如何在共享主機安裝pear
參考:http://pear.php.net/manual/en/installation.shared.php
以下安裝方法可以讓你方便安裝、移除、查看你所安裝的pear套件,
當然第一種是最方便安全的方法,可以直接在本機做遠端安裝。

<使用PEAR 1.4.3+ 及 PEAR_RemoteInstaller>


  ===== 建立本機pear使用環境 =====
假設你在windows安裝了wamp之類的環境,例如裝在 D:\wamp
1.下載 http://pear.php.net/go-pear.phar
2.備份或直接替換掉D:\wamp\bin\php\php5.3.5\PEAR\go-pear.phar
3.執行D:\wamp\bin\php\php5.3.5\go-pear.bat (或 php.exe -d phar.require_hash=0 go-pear.phar )
go-pear.bat內容其實就是:
===
@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 PEAR\go-pear.phar
pause
===
4.選擇system-wide(可讓系統使用者共用pear)或local copy(單純複製pear檔案至資料夾),我選local copy
5.依照條件修改,個人修改如下:
  (1)Installation base => 修改為 D:\wamp\bin\php\php5.3.5\PEAR
  (9)Public Web Files directory => 修改為D:\wamp\www
  (12)Path to CLI php.exe => 修改為D:\wamp\bin\php\php5.3.5\
  並選yes讓pear自動修改php.in的include_path即可。
6.修改D:\wamp\bin\php\php5.3.5\PEAR\pear.ini,找出設定並修改如下:
  "php_bin";s:32:"D:\wamp\bin\php\php5.3.5\php.exe"
  (改壞了可直接重建pear.ini => pear config-create D:\wamp\bin\php\php5.3.5\PEAR pear.ini 再來修改php_bin)
  並將pear.ini複製到 C:\WINDOWS\下 (User Configuration File,或新增環境變數PHP_PEAR_SYSCONF_DIR至pear.ini所在位置)
7.修改D:\wamp\bin\php\php5.3.5\PEAR\pear.bat,25~27行改成如下:(不改也行,保險起見)
IF "%PHP_PEAR_INSTALL_DIR%"=="" SET "PHP_PEAR_INSTALL_DIR=D:\wamp\bin\php\php5.3.5\PEAR\pear"
IF "%PHP_PEAR_BIN_DIR%"=="" SET "PHP_PEAR_BIN_DIR=D:\wamp\bin\php\php5.3.5\PEAR"
IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=D:\wamp\bin\php\php5.3.5\php.exe"

  之後記得用 pear config-show 查看參數設置是否正確
  ===== 準備安裝remote install套件 =====
8.cmd下用pear安裝PEAR_RemoteInstaller套件:pear install PEAR_RemoteInstaller-0.3.1
9.準備遠端安裝共用主機的pear了,像我的主機沒有pear套件,就只好自已安裝
  先準備好登入帳號(user)、密碼(pass)、網址(host)、遠端主機存放pear的資料夾絕對路徑(/home/username/pear)
10.先建立要放到主機上的設定檔:pear config-create /home/username/pear .pearrc
11.上傳.pearrc至達端主機的要存放.pearrc的目錄,例如使用者根目錄(/home/username/)
12.設定本地端C:\WINDOWS\pear.ini的remote_config參數為ftp://user:pass@myremotehost.com/home/username/.pearrc (就是放.pearrc的目錄,可使用ftp、ftps、ssh2.sftp)
pear -c C:\WINDOWS\pear.ini config-set remote_config ftp://user:pass@myremotehost.com/home/username/.pearrc
若登入安裝失敗改用以下ftp路徑試試:
pear -c C:\WINDOWS\pear.ini config-set remote_config ftp://user:pass@myremotehost.com/.pearrc
13.直接在本機使用remote-install, remote-uninstall, remote-upgrade, remote-upgrade-all來遠端安裝pear套件,done!
14.記得修改php的include_path路徑(使用.htaccess的php_value、修改php.ini、或用ini_set)

<使用網頁界面安裝pear 套件>

1.下載http://pear.php.net/go-pear並改名為go-pear.php,上傳到你的網頁目錄,如/home/username/public_html/install
  (建議可用.htaccess保護install這個目錄)
2.瀏覽http://www.example.com/install/go-pear.php並選擇你要安裝的目錄,例如/home/username/pear (記得先chmod,如0777)
3.取得php執行檔路徑:
<?php echo `which php`;// if this does not work, also try echo PHP_BIN;?>
4.每次用使用pear library時,記得先設定include_path:
  (使用.htaccess的php_value、修改php.ini、或用ini_set)
<?php
ini_set('include_path', '~/pear/lib' . PATH_SEPARATOR
        . ini_get('include_path'));

// From PHP 4.3.0 onward, you can use the following,
// which especially useful on shared hosts:
set_include_path('~/pear/lib' . PATH_SEPARATOR
                 . get_include_path());
?>
============
另外,若共享主機已經有pear,但你想複製自已的一份pear:(PEAR 1.4+以上版本)
$ pear config-create /home/user/pear .pearrc  //產生pear設定檔
$ pear install -o PEAR //在當前目錄複製一份系統PEAR的結構
$ pear -c ~/.pearrc install Archive_Tar PEAR Console_Getopt XML_RPC //開始安裝套件
當然還是要記得設定include_path
============
可用pear help、pear help options、pear help <command> 了解更多pear命令的用法

沒有留言:

張貼留言