soファイルについて。

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
iwachan2525's picture

soファイルについての質問です。
モジュールをアップロードしようとしたところ、「Ajax HTTP error 500(or200)」(一部抜粋)が出て、先に進みませんでした。
色々と調べましたところ、どうやら、php.iniに記述されている「pod.so,mysqllite.so,mysql.so」が開けないとのことでした(ファイル名が間違っているかもしれません)。そもそも、サーバー内の該当箇所に存在すらしていませんでしたが…。
このウェブサイトははxamppで一度構築し、それをさくらレンタルサーバースタンダードに移植したウェブサイトです。
モジュールのアップロード以外は試しておりませんが、ウェブサイトとデータベースに齟齬が生じるようでは困りますので、是非とも解決法を教えて頂ければと思います。

Comments

blauerberg's picture

php.iniの一部のパラメータはサーバー側のプラットフォームに
依存します。

そのため、例えばWindows上のXamppで設定したphp.iniを、そのままさくらのサーバーに設定しても動作しない可能性があります。

どうやら、php.iniに記述されている「pod.so,mysqllite.so,mysql.so」が
開けないとのことでした(ファイル名が間違っているかもしれません)。

上記のエラーログなどをそのまま貼っていただければ何かわかるかもしれません。

blauerberg

hgoto's picture

blauerberg さんのおっしゃるとおりかと思いますが、少しだけ補足させてください。解決を急がれるのであれば、さくらのレンタルサーバーでは確か php.ini は特に設置しなくても動作したように思いますのでバックアップを取った上でいったん削除してみて試されると早いかもしれません。ご参考になればと思います。

回答ありがとうございます。

iwachan2525's picture

blauerberg様
回答ありがとうございます。早速エラーログを貼らせていただきます。なお、長文になります。

なお、モジュールのアップロードの際に発生し、モジュール名は(module)、ドメイン名は(domain)とさせていだきます。

An AJAX HTTP error occurred. HTTP Result Code: 500(200の場合もあったような?) Debugging information follows. Path: http://(domain).com/authorize.php?batch=1&render=overlay&id=51&op=do StatusText: Service unavailable (with message) ResponseText: UnexpectedValueException: RecursiveDirectoryIterator::__construct(/home/(domain)/www/C:/xampp/tmp/update-extraction-20907959/(module)): failed to open dir: No such file or directory in RecursiveDirectoryIterator->__construct() (line 408 of /home/(domain)/www/includes/filetransfer/filetransfer.inc).

その後、エラーメッセージを参照すると、
Installation failed! See the log below for more information.と出て、
アップロードしようとしたモジュール名とNEXT STEPという文字が出るだけです。いずれも、リンクはございません。
php.iniの記述は、drupal日本語公式サイトにある「おまじない」と同じ記述です(セキュリティの関係以上、無闇に書かない方が良いと思われるので、あえて伏せたままとさせていだきます。バージョン6の場合ですが。)。

次に、さくらレンタルサーバーのエラーログが以下です。
[日時] [error] [client 118.83.80.40] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so' - Cannot open "/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so" in Unknown on line 0, referer: http://(domain).com/authorize.php?batch=1&op=start&id=51
なお、エラーログ3行目等の「pdo_mysql.so」については、「pdo_sqlite.so」「sqlite.so」「pdo.so」の4種類が存在し、いずれも同じ秒単位でエラーログが出ています。場合によっては、4種類×2回(計8行)の場合もあります。該当箇所にそのファイルは存在しないようです。そもそも、訪問するような場所ではないと思いますが…。

An AJAX HTTP errorについては、drupal.orgでも話題になっているようです。解決方法は不明瞭なままですが…。

なお、200の場合は?、「php.iniのmax memoryを上げたら解決した」という記述もありました。
先程述べた、「drupal日本語公式サイトのおまじない」とは「別の」php.iniの記述もありましたので、そちらも試しました(結果的にエラーのままですが)。

以上です。

hgoto様
回答ありがとうございます。php.iniを削除しても全く同じでした。

以上です。長文ではありますが、よろしくお願いします。

すいません。

iwachan2525's picture

二重投稿でした。削除はできないようなので、お詫びとさせていただきます。

qchan's picture

モジュールをアップロードしようとしたところ、「Ajax HTTP error 500(or200)」(一部抜粋)が出て、先に進みませんでした。

このウェブサイトははxamppで一度構築し、それをさくらレンタルサーバースタンダードに移植したウェブサイトです。

php.iniに記述されている「pod.so,mysqllite.so,mysql.so」が開けないとのことでした

1, Xamppで動いたいたサイトがさくらのレンタルサーバーで一度は正常に動いていたということでしょうか?
2, アップロードされたモジュールはなんだったでしょうか?
3, さくらのコンパネ内でPHPのバージョンは何を選んでいますか?
(標準 5.4.x ※4.4.x、5.2.x、5.3.x へバージョン選択が可能)

あたりを情報として出してもらうと解決策がみつかりやすいかと思います。

iwachan2525's picture

qchan様
ご返信ありがとうございます。
それぞれ回答いたします。

回答1.Xamppの際は、モジュールのアップロード自体は問題ありませんでした。
回答2.meta tagです。
回答3. 標準 5.4.xです。

以上です。よろしくお願いします。

qchan's picture

回答2,3についてよくわかりました。

回答1の

Xamppの際は、モジュールのアップロード自体は問題ありませんでした。

モジュールのアップロード自体というところがちょっとよくわかりません。

さくらレンタルサーバー上でMetatagモジュールをインストールするまでは、
iwachan2525さんが作られたDrupalサイトは正常に動いていたのでしょうか。

そうであれば、Metatagモジュールを無効にすれば元どおり動くはずですが現状はどうでしょうか?

iwachan2525's picture

qchan様、回答ありがとうございます。

モジュールのアップロード自体というところがちょっとよくわかりません。

すいません。私の言葉足らずでございます。
Xampp及び、さくらレンタルサーバーにおいて、サイト自体は問題ないのです。
その後、さくらレンタルサーバー移植後において、モジュールをアップロードした際に、"An AJAX HTTP error occurred. (以下略)"が出るということでございます。
(以下略)以降については、私のこの掲示板の過去の投稿である on June 30, 2015 at 12:56pm に投稿された書き込みが詳しいかと思われます。以上です。

qchan's picture

サイト自体は問題ないとのことですね。

さくらレンタルサーバーにおいて、サイト自体は問題ないのです。

Drupal7はPDOが必須ですので、サイト自体が立ち上がっているならPDOを介したデータベース接続は
正常に機能しているはずです。.soファイルの問題の可能性は少ないかと思われます。

Drupalのモジュールをインストールするには
1,所定のディレクトリ sites/all/modules/以下 などにモジュールファイルをアップロード
2, admin/modules/ モジュール管理ページにて有効化

が必要になります。
逆にアンインストールするには
1, モジュール管理ページにてチェックを外し保存
2, admin/modules/uninstall にてアンインストール
が必要です。

以下の部分ですが

モジュールをアップロードした際に、"An AJAX HTTP error occurred. (以下略)"が出る

1,「アップロードした」とはモジュールを有効にした時ということでしょうか?
  どの時点でエラーがでたのかを正確に書いていただけますか。

2,前回の質問と同じになりますが、アンインストール作業をして正常に戻りますか?

管理画面へアクセス出来ない場合は、sites/all/modules/metatag ディレクトリを移動するなど
して応急的に無効化してみてください。

qchan様

iwachan2525's picture

qchan様
夜分、回答ありがとうございます。

回答1.いいえ。リンクアドレスを入力し、「インストール」をクリックしてからです。
回答2.有効化自体がままならないので、この問には回答できません。

以上です。

qchan's picture

すこしづつわかってきました。
iwachan2525さんはさくらの共用サーバーでモジュールをURLからのネットワーク
インストールをされていて、その途中で止まったということですね。
ネットワークインストールするにあたって、モジュールディレクトリのパミッションが合っていない、
あるいはさくらの共用サーバーで許可されていないということだろうと推測します。

ネット越しのアップロードが上手く行かなかったということですので、
まずは、上のコメントの手順でFTPからのアップロードとモジュールの有効化を試してください。

そのあと、

1,モジュールディレクトリのパミッション確認
sites/all
sites/all/modules
ディレクトリのパミッションを確認してください。

2,テンポラリーディレクトリの情況確認

XAMPPからの移行だと、Temporary directoryに存在しないパスが入っている可能性があります。
 admin/config/media/file-system
へアクセスして、「Temporary directory」に何が書かれているかチェックしてください。
何かアラートは出ていないでしょうか。出ていた場合は、
sites/default/tmp
./tmp
などに変えてみてください。

iwachan2525's picture

qchan様
回答ありがとうございます。

qchan様の方法で行いましたところ、無事にモジュールのアップロードができました。
これにて、「解決済み」とさせていただきます。
誠にありがとうございました。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week