1

ブルーホスト共有サイトにPHP拡張機能をインストールしたいのですが。特にMongoDBドライバー。peclは、拡張機能がすべてインストールされているプラ​​イマリサーバーディレクトリに書き込めないため、自宅の下で指定したディレクトリにmongo.soファイルをインストールしたいと思います。私がウェブ上で見つけた最も近い記事は次のとおりです。

http://www.site5.com/blog/programming/php/how-to-setup-your-own-php-pear-environment/20090624/

ただし、「pecl install mongo」コマンドを使用した場合の手順を実行した後も、サーバー上のbluehostの中央ディレクトリにインストールしようとし続けます。

4

2 に答える 2

5

私の Web ホストのテクニカル サポート チームによると、pecl インストーラーを使用すると、アカウントだけではなく、サーバー全体に拡張機能をインストールしようとします。私のウェブホストは、セキュリティ上の理由と、全体的に同じフリートを維持したいため、共有環境でのサーバー全体のインストールを許可していません。ご主人様も同じだと思います。

ただし、次の手動プロセスを使用して、pecl パッケージ (pecl_http) を (サーバー全体ではなく) アカウントにのみダウンロード、構成、およびインストールするように提案されました。

$ cd ~/ 
$ wget http://pecl.php.net/get/pecl_http
$ tar -zxvf pecl_http.tar.gz
$ cd pecl_http
$ phpize
$ ./configure --prefix=~/bin
$ make
$ make test
$ make install

インストールが成功すると、extname.so が作成され、PHP 拡張機能ディレクトリに配置されます。php.ini を編集する必要があります (私の場合、これは拡張子を使用してスクリプトと同じフォルダーに配置した標準の php.ini ファイルのコピーでした)、 前にextension=extname.so行 (私の場合は) を追加する必要があります。extension=http.so拡張機能を使用できます。 http://www.php.net/manual/en/install.pecl.phpize.php

上記のコードのチルダ文字 ( ~) は、現在のユーザーのホーム ディレクトリ (たとえば/home/username、私のホストのサーバー上) を参照していることに注意してください。

発生する可能性のある問題

  1. tarコマンドを使用すると、pecl_http がファイル拡張子なしでダウンロードされたため、「開くことができません: ディレクトリではありません」というエラーが表示されました。これは簡単に修正されました:

    mv pecl_http pecl_http.tar.gz
    
  2. make installコマンドを使用すると、「 cp: cannot create regular file...: Permission denied」エラーが表示されました。ext_dirfor peclを変更することでこの問題を解決しました...

    pecl config-set ext_dir /home/username/bin/extensions 
    

    ...そして再実行中make install。また、http.so 拡張子をコピーし/home/username/bin/extensionsて、php.ini ファイルでその場所を参照する必要がありました。

    extension_dir = "/home/username/bin/extensions"
    
于 2012-10-05T16:51:47.717 に答える
1

これは、サーバーへのrootアクセス権がないようです。何かをコンパイルする必要がある場合は、サーバーへのrootアクセス許可が必要です。または、sudoerの1人である必要があります。

于 2012-06-06T05:10:23.603 に答える