PHPとMySQLが接続できない原因と対処方法

このQ&Aのポイント
  • ブラウザからサーバのPHPにアクセスした際、MySQLに接続してSelect文を流すスクリプト(仮にselect.phpとします)を作成しました。しかしブラウザからドキュメントルート直下の同スクリプトにアクセスすると、Fatal error: Call to undefined function mysql_connect() in [スクリプトのフルパス] on line 14とエラー表示されてしまいます。
  • phpinfo()を確認したところ、MySQLのセクションがない状態。他のWebページを参考にphp-mysqlモジュールをyumでインストールし、php.iniにextension=mysql.so extension=mysqli.soとextension_dir = "/usr/lib/php/modules"の2行を追加しApacheを再起動しましたが、状態変わらずです。
  • 何か原因として考えられる事はありますでしょうか。心当たりのある方がいらっしゃいましたらアドバイスお願い致します。
回答を見る
  • ベストアンサー

PHPとMySQLが接続できません。(Linux環境)

【状態】 ブラウザからサーバのPHPにアクセスした際、MySQLに接続してSelect文を流すスクリプト(仮にselect.phpとします)を作成しました。 しかしブラウザからドキュメントルート直下の同スクリプトにアクセスすると、 Fatal error: Call to undefined function mysql_connect() in [スクリプトのフルパス] on line 14 とエラー表示されてしまいます。 phpinfo()を確認したところ、MySQLのセクションがない状態。 他のWebページを参考にphp-mysqlモジュールをyumでインストールし、php.iniに   extension=mysql.so   extension=mysqli.so と   extension_dir = "/usr/lib/php/modules" の2行を追加しApacheを再起動しましたが、状態変わらずです。 ちなみにApacheとPHPはソースからインストールし、httpd.confもphp.iniも/usr/local/apache2/conf/以下に配置。 httpd.conf中に   PHPIniDir "/usr/local/apache2/conf" の表記もあり、MySQLに接続しないPHPは正常に処理されます。 また、mysql.so/mysqli.soも上記php.iniで指定した"/usr/lib/php/modules"に存在します。 何か原因として考えられる事はありますでしょうか。 心当たりのある方がいらっしゃいましたらアドバイスお願い致します。 【各バージョン ※インストールした順に表記】 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 (ソースからコンパイル) PHP:5.2.6 (ソースからコンパイル) php-mysql:5.1.6 (yumでインストール) mysql:5.0.45 (yumでインストール) mysql-server:5.0.45 (yumでインストール) 以上、見にくくて申し訳ありませんが宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

phpとapacheのコンパイルオプションに抜けているのがあるのでしょう

acrobat_ka
質問者

お礼

原因わからず、結局OSから再インストール&全てyumでインストールして解決しました。 ありがとうございました。

関連するQ&A

  • phpMyAdminでのエラー「mysql 拡張をロードできません」

    お世話になります。 タイトルの通り、http://ホスト名/phpmyadmin/ にアクセスすると、 「mysql 拡張をロードできません。PHP の設定を確認してください」 とエラーメッセージが出てきてしまいます。 環境は以下の通りです。 CentOS 5.3 Apache 2.2.3 MySQL 5.0.77 php 5.1.6 phpmyadmin 2.11.9.4 httpd、mysql、phpはyumにてインストールを行っており、phpmyadminはsvn checkoutでインストールを行っております。 このエラーについては、php-mysqlをインストールする事で解決する事が多いようですが、 yum -y install php-mysql と打ち込んでインストールを行っても、同じエラーが出てきてしまいます。 また、エクステンションの参照先が間違っている可能性もあるため(と言うよりそうエラーで言われているので…)調べてみました。 php.iniのextension_dirの参照先にはmysql.soがちゃんと入っておりまして、 mysql.iniにはextension=mysql.soと記述されている状態です。 試しにphp.iniにextension=mysql.soと記述したり、mysql.soでなくmysqli.soに変えてみたりしましたが、 それでもエラーが出たままとなっております。 詳しい方がいらっしゃいましたら、是非ご教授いただきたいと思います。 宜しくお願いいたします。

  • PHP myADMINインストール時のエラー

    PHP myADMINをインストールしようとしていますが、 「mysql 拡張がありません。PHP の設定をチェックしてみてください。」 とエラーが出て先へ進めません。 設定は下記で設定しました。 yum -y install php-common yum -y install php-mbstring yum -y install php-mcrypt yum -y install php-mysql config.inc.php $cfg['blowfish_secret'] = '適当な文字'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */とし、これをアップした後、660にパーミッション変更 php.iniの設定は extension_dir = /usr/lib/php/modules extension=mysql.so extension=mbstring.so これでよさそうなのですが、相変わらず「mysql 拡張がありません。」が出てきます。 phpinfoを見ると、mbstringやmcryptは見えるのですが、mysqlは見えません。 mysqlのデーモンはちゃんと稼働しています。 > find / -name mysql.so とすると /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.soとなります。 extension_dir = /usr/lib/php/modulesのphp.iniの記載に対し、mysql.soが全然違うところに来ておりこれが読めない原因と推測しています。 対策としてのこのmysql.soをコピーして/usr/lib/php/modulesにコピー、再立ち上げしてみましたが駄目でした。 どのようにすれば動くようにご教授願います。 環境は CentOS 5.7 Apache 2.2.3 MySQL 5.0.77 PHP 5.3.8 phpMyAdmin 3.4.7 となります。宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • PHPからMySQLが動かせません

    PHPからmysqlのテーブルを開こうとした際に Fatal error: Call to undefined function mysql_connect() という一文が出ました。 php.iniのextension_dirのパスは一字一句間違っておりませんし、 extension=mysql.so extension=mysqli.so の二文も追加しました。また、その二つのファイルがあることも確認済みです。 また、phpファイルの構文は以下のとおりになっています。 $link = mysql_connect('ローカルホスト', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); こちらもいろいろ調べまして、php_mysql.soとphp_mysql.soがないためではないかなどとかんぐっておりますが、そういった記述は私が調べた限りにおいては見かけませんでした。 php_mysql.soとphp_mysql.soというファイルはなくても、mysql.soとmysqli.soというファイルがあれば動くのでしょうか? 仮にphp_mysql.soとphp_mysql.soというファイルがないと動かない場合、何をインストールすればよいのでしょうか? ご回答よろしくお願いします。 また、PHPとMySQLはソースファイルを/usr/ports/distfilesディレクトリにコピーした上でポートからmake、make installしました。 マシンスペック OS…FreeBSD6.4 Apache…1.3.14 PHP…5.2.8 MySQL…5.0.92 都合上、バージョンを他のものに変更することはできません。 追記してくれということがありましたらよろしくお願いします。

  • ApacheとPHPの連携

    Fedora Core5でApache2.xとPHP5.xの連携が取れません。 ApacheとPHPはダウンロードからセットアップする方法が分からなかったので yum -y install httpd yum -y install php php-mysql でダウンロード、インストールさせました。 httpd.confに書き加えた内容は以下の通りです。 LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps その後、Apacheを再起動してみましたが、 index.phpを表示する事が出来ません。 index.phpの中身は<?php phpinfo(); ?>です。 一応、AddTypeは働いているようなのですが、 真っ白で何も表示されません。 LoadModuleが間違っているのでしょうか? PHPを単純に動作させたいだけならphp.iniの内容を 変更する必要はありませんよね? 宜しくお願い致します。

  • ubuntuで、PHPからMYSQLが見えません。

    MySQLとPHPがつながりません。 (コマンドラインからはmysqlにログインできます)。 どなたか、原因等わかるかたがいらっしゃったらご教授ください。 バージョンは以下の通りです。 MySQL-5.0.38 Apache-2.0 PHP-5.2.1 ubuntu-7.04 全てapt-get installで、APACHE、MYSQL、PHPの順でインストールしています。 phpinfoでもmysqlの項目表示がされず、またmysql_connectなどの 関連するコマンドも「call to undefined~」のエラーが出力されてしまいます。 /etc/php5/apache2/php.iniに、 extension=mysql.so extension_dir="/usr/lib/perl5/auto/DBD/mysql/ の記述もしてみましたが状況は変わりませんでした。 (/usr/lib/perl5/auto/DBD/mysql/mysql.soをlocateで見つけました) 以上、お手数でございますがどうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQLとPHPの連携がうまくいかない

     プログラマ初心者ですが、以下の質問があります。  PHPからMySQLへの接続がうまくいかなくて困っています。  まず、使っているバージョンは以下の通りです。  MySQL 5.0.27  PHP 5.2.0  Apache 2.2.3  Windows XP Profesional  そして、エラーメッセージは以下のとおりです。  Fatal error: Call to undefined function mysql_connect() in C:\Usr\Apache\htdocs\db0.php on line 6  各サイトで解説されている以下の設定はすべて行いましたが、それでもできないようです。  ・Windowsフォルダにphp.iniをコピーする。  ・php_mysql.dll、php_mysqli.dll、libmysql.dllをsystem32にコピーする。  ・iniファイルにextension_dir=C:\php5\extとセットする。  ・iniファイルのextension=php_mysql.dll、extension=php_mysqli.dllのセミコロンをはずす。  他の方の解決策は以下のどれかが抜けていたというようなものらしいですが、私の場合はどれも抜けていないのに駄目だという状態です。  MySQL、Apacheは正常に動いています。(関係ないかもしれませんが、PerlとMySQLの連携は問題なく動いています)  どなたか解決策がわかる方は教えてください。

    • ベストアンサー
    • MySQL
  • apache経由でphpのmysql接続不可

    以下をWindowsXP SP2にインストールしました。 apache_2.2.10-win32-x86-openssl-0.9.8i.msi php-5.2.6-win32-installer.msi mysql-essential-5.0.51b-win32.msi apache経由でmysql_connect()を実行すると以下エラーがapacheのerror.logに記述されmysqlに接続できません。 PHP Fatal error: Call to undefined function mysql_connect() コマンドプロンプト上でphp test.phpと実行する場合は接続できます。 関係ないかもしれませんが、phpinfo()を確認したところ、Apache EnvironmentのPATHにC:\Program Files\PHP\が入っていません。コマンドプロンプト上でsetコマンドを実行するとC:\Program Files\PHP\がPATHに含まれています。apache、OSの再起動を実行しましたが改善しませんでした。 httpd.confおよびphp.iniはインストールウィザードに従い設定し、php.iniの外部モジュールを以下2つ以外コメントアウトする修正のみ行っております。 extension=php_mysql.dll extension=php_mysqli.dll 改善方法をご教授願います。

    • 締切済み
    • PHP
  • PHPのインストールについて

    RedHat7.3、apache1.3.33です。 php4.3.10をソースからインストールしました。 #cd /usr/src #tar -zxvf php-4.x.x.tar.gz #cd php-4.x.x #./configure # make # make install httpd.confに下の2行を追加 LoadModule php4_module modules/libphp4.so AddType application/x-httpd-php .php しかし、どうしてもphpが動作しません。 /usr/local/modules/をみてもlibphp4.soがありません。 インストールしたphpはどこにインストールされているのでしょうか?

  • mod_dav_svnをインストール出来ません

    mod_davとmod_dav_fsをコンパイルし、httpd.confを編集し <Location /svn> DAV svn SVNPath /var/lib/svn/repository/ </Location> としたところ、「Unknown DAV provider: svn」とエラーと出ました。 自分はcentOS5.5でApache2.2はソースから、Subversionはyumからインストールしました。 よってyumからinstallでは駄目なんじゃないかと思い、で、mod_dav_svn.soをいつものようにapxs等でソースからインストールしようと思ったのですが、web上で全く情報が無く全部yumからのインストールでした。 1時間くらい探しまわったのですが、仕方が無く yum istall mod_dav_svn を行いましたが当たり前ですが、/usr/local/apache2/modules/内には存在しませんでした。 で、/etc/httpd/modules/内のmod_dav_svn.soを使おうと思いhttpd.confに LoadModule dav_svn_module /etc/httpd/modules/mod_dav_svn.so を追記した所、 「httpd: Syntax error on line 60 of /usr/local/apache2/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_dav_svn.so into server: /usr/lib/libsvn_fs_base-1.so.0: undefined symbol: db_create」とエラーが出ました。 どのようにしたらmod_dav_svnをインストール出来るのでしょうか? 自分としては、yumではなくソースからコンパイルしたいと思っております。 無理であればyumからでもいいのですが、その場合どのようにすればうまくいくのでしょうか?

  • MySQLとPHPがつながりません。

    MySQL5.1 Apache2.0 PHP5.2.4をインストールしたのですが、MySQLとPHPがつながりません。 phpinfoを見ても、libxmlとodbcの間に本来あるべきMySQLがありません。 C:\WINDOWS\php.iniにある、 extension=php_mysql.dll extension=php_mysqli.dll のセミコロンは外しています。 php5ts.dllはC:\WINDOWSに、libmysql.dllはC:\System32とC:\Apache2\binにコピー済みです。 php_mysql.dllやphp_mysqli.dllもコピー済みです。 それでも反映されず、やけくそで各フォルダに全種類dllをコピーしたりもしましたがやはり反映されません。 そして、この状態でWEB上からPHPにアクセスすると、 Fatal error: Call to undefined function mysql_pconnect() in C:\Apache2\htdocs\include\setup.php on line 7 というメッセージのサイトが出てきます。 恐らくphpinfoにMySQLが反映されれば解決すると思うのですが、どのようにすれば良いのでしょうか。 どなたか宜しくお願いします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう