サポート » インストール » MySQLの設定?について

  • 解決済 wordpress-masa

    (@wordpress-masa)


    お世話になっております。
    初歩的なことかもしれませんが、インストール時のMySQLに付いてお聞きしたいことがあります。

    会社でwordpressを導入しようと、centOS(ver.5.9)サーバにwordpressをインストールいたしました。
    このサーバ上でPHPは動いていますが(PHP5.5.0)、MySQLを起動できなかったため、社内の別サーバで既に稼働しているMySQL(MySQL5.0)を参照しようと、wp-config.phpのDB_NAME、DB_HOSTを編集しました。
    define(‘DB_NAME’, ‘wp-XXX’);←MySQL内に新たに作成したWP用DB
    define(‘DB_HOST’, ‘192.168.1.XXX’);←別サーバのIPアドレス

    ※wp-config.phpについて参考にしたサイト
    http://blog.goo.ne.jp/remember_blog/e/ff40315872e3716f998baf5302407669

    しかし、それでも「お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです。」とメッセージが出てしまい、wordpressが起動できません。

    前述のとおり、wordpressをインストールしたcentOSサーバではMySQLが動いていないのですが、この場合centOSサーバでもMySQLの起動が必要になるのでしょうか。

    何か解ることがありましたら、ご教授お願いいたします。

15件の返信を表示中 - 1 - 15件目 (全19件中)
  • 書き忘れていました。
    MySQLが起動している別サーバのポート:3306は解放されていることは、netsh diag connectコマンドを使って確認済みです。

    また、MySQL上でWordPress用ユーザは作成済みで、ホストには「192.168.1.*」を設定し、WordPress用DBへの各種権限も付与してあります。(Navicat8を使用してMySQLを管理)

    WordPressを設置したサーバーにphp-mysqlはインストールされていますか?

    windows-user様

    返信ありがとうございます。
    参考サイトを元にコマンドから確認したところ、下記のように表示されたので、インストールはされているかと思います。

    [root@localhost ~]# rpm -q php-mysql
    php-mysql-5.1.6-39.el5_8

    (参考サイト:http://centossrv.com/phpmyadmin.shtml)

    PHP5.5.0
    php-mysql-5.1.6-39.el5_8
    バージョンが違いますね。

    PHP5.5.0をどのようにインストールしたか分かりませんがphp-mysqlも同様にすべきです。

    windows-user様

    返信ありがとうございます。

    >PHP5.5.0をどのようにインストールしたか分かりませんがphp-mysqlも同様にすべきです。
    先ほど、下記コマンドでphp-mysqlのアンインストール→最新版をインストールとやろうとしたのですが、
    yum remove php-mysql-5.1.6-39.el5_8
    yum install php-mysql*
    インストール時に表示されたバージョンが「5.1.6-39.el5_8」となってしまいます。
    もしかして、php-mysqlの最新版が「5.1.6」なので、PHPの方をバージョンを下げてあげないといけないのでしょうか。

    PHPは5.5なのですよね?
    これはどのようにしてインストールしたのですか?
    ソースからですか?
    CentOS標準でPHP5.5は提供していません。

    CentOS 5.xの場合PHPは普通にインストールして5.1だったはずです。
    yum install php53 でphp5.3がインストール出来たと思います。
    なのでyum install php53-mysqlでphp-mysql5.3がインストール出来ます。
    php-mysql5.3をインストールしたとしても恐らく動かないと思います。

    バージョンを上げるか下げるかは自由ですが、揃える必要がありますね。

    windows-user様

    何度も返信を頂きまして、ありがとうございます。

    PHP5.5はこちらのサイトを参考にしてインストールしました。
    http://shobon.hatenablog.com/entry/2013/07/04/232200
    経緯はうろ覚えなのですが、確か一度wordpressを起動させた時に「PHPのバージョンが低いため…」のようなメッセージが出たため、インストールした記憶があります

    それで、試しに”yum install php”コマンドを打ってみたところ、以下のように表示されました

    Loaded plugins: downloadonly, fastestmirror, priorities
    (略)
    Package php-5.1.6-39.el5_8.i386 already installed and latest version
    Nothing to do

    これがwindows-user様が言っていたバージョンかと思います。
    このバージョンが起動できれば…ということでしょうか。

    (ちなみに、phpinfo()での表示と”php -v”コマンドでの表示では、PHP5.5.0と出ます)

    ソースからインストールしたのですね。
    現状はソースから入れたPHPとrpmパッケージのPHPが混在しています。
    どちらを使うかは自由ですがソースから入れた場合、後の管理が面倒です。
    特にバージョンアップやPHPのモジュールが必要になった場合等・・・

    経緯はうろ覚えなのですが、確か一度wordpressを起動させた時に「PHPのバージョンが低いため…」のようなメッセージが出たため、インストールした記憶があります

    WordPress バージョン 3.2 系以降
    PHP バージョン 5.2.4 以上
    MySQL バージョン 5.0.15 以上

    上記が現行のWordPressのサーバー要件です。
    PHP5.1では動きません。

    CentOS 5.xで普通にPHPをインストールすると5.1が入ってしまいます。
    ですがPHP5.3を入れればWordPressを動かす事ができます。
    PHP5.3はCentOS標準のパッケージとして提供されています。
    これをインストールするには5.1を全てアンインストールしなければいけません。

    まぁ、特別な理由が無ければソースからコンパイルして入れる必要は無いと思います。

    windows-user様

    何度も丁寧に返信を頂きまして、ありがとうございます。
    情報を整理しつつ、この後の手順を確認させてください。

    >現状はソースから入れたPHPとrpmパッケージのPHPが混在しています。
    ソースから入れたPHP = 5.5.0←こちらではphp-mysqlとのバージョンが合わない
    rpmパッケージのPHP = 5.1.6 ←こちらではwordpressは起動しない
    以上から、
    ・php/php-mysqlともに5.3をインストールする必要がある。
    ・ただし、php5.3をインストールするには、現状でサーバにインストールされているrpmパッケージの5.1.6をアンインストールしなければならない。
    ・アンインストールのコマンドは下記。

    /bin/rpm -e php-5.1.6-39.el5_8

    ▼rpmのアンインストールの参考サイト
    https://users.miraclelinux.com/technet/document/linux/training/1_2_2.html#training1_2_2_4

    ・php/php-mysqlともに5.3をインストール。windows-user様の書き込みから。
    yum install php53
    yum install php53-mysql

    ・インストール後、php.iniを編集(あるいは今使っているphp.iniをどこかに保存しておいて、それをphpインストール後にサーバに配置)

    …こんなところでしょうか。

    ソースから入れたPHP = 5.5.0←こちらではphp-mysqlとのバージョンが合わない

    いえ、バージョンが合わないと云うか、別物みたいなものです。
    話しが転がりますが、PHP5.5をコンパイルした際にmysqlのオプションも加えていれば
    mysql.soがあるはずなので、これをPHPで読み込むようにすれば良いだけです。
    あくまでphp-mysqlがインストールされていない状態での話しです。

    どのようにするかは自由ですが私的にはRPMパッケージを使った方が
    インストールも管理も楽で良いと思います。

    PHP5.3のRPMパッケージをインストールする際に確認する必要があるのが
    PHP5.1でモジュールは何が入っているかです。
    rpm -qa php* で確認してください。
    この際、表示された内容はメモ帳等にコピーしておいた方が良いでしょう。

    そして上記で確認したものを全てアンインストールしてください。

    yum remove php* でキレイさっぱり消えると思います。

    その後
    yum install php53 php53-cli php53-common php53-mbstring php53-mysql
    等として必要なものをインストールします。

    尚、phpMyAdmin等で要求されるmcryptの5.3はCentOS標準では存在しないため
    EPEL等のサードパーティーからインストールしてください。
    ftp://ftp.riken.jp/Linux/fedora/epel/5Server/i386/php53-mcrypt-5.3.3-1.el5.i386.rpm

    php.iniの上書きについては分かりかねますが、
    変更箇所が分かっているのであればPHP5.3をインストールした後、
    修正した方が良いと思います。

    全ての作業完了後、Apacheの再起動をお忘れなく。

    尚、RPMパッケージを使う場合、不具合が出るかもしれないので
    コンパイルしたPHPはアンインストールした方が無難かと思います。

    windows-user様
    何度も丁寧に返信を頂きまして、ありがとうございます。

    >話しが転がりますが、PHP5.5をコンパイルした際にmysqlのオプションも加えていれば
    >mysql.soがあるはずなので、これをPHPで読み込むようにすれば良いだけです。
    >あくまでphp-mysqlがインストールされていない状態での話しです。
    >どのようにするかは自由ですが私的にはRPMパッケージを使った方が
    >インストールも管理も楽で良いと思います。

    この部分に焦点を当てて、話を進めさせて下さい。

    >話しが転がりますが、PHP5.5をコンパイルした際にmysqlのオプションも加えていれば

    PHP5.5をインストールした際に参考にしたサイトでは”–with-mysql\”と書かれているので、
    mysqlのオプションも加わっていると思われますが、この考えは正しいでしょうか。
    http://shobon.hatenablog.com/entry/2013/07/04/232200

    >mysql.soがあるはずなので、これをPHPで読み込むようにすれば良いだけです。

    この質問をする前、PHP5.5をインストールした直後の話になるのですが、その時に”php -v”コマンドを実行すると、以下のようなメッセージが出ていました。

    PHP Warning: PHP Startup: mysql: Unable to initialize module
    Module compiled with module API=2005XXXX
    PHP compiled with module API=2012XXXX
    These options need to match in Unknown on line 0

    このメッセージが、恐らくmysql.soがPHPで読み込まれてない為に出たメッセージかと思います。
    知人に尋ねたところ「コンパイルして出来たmysql.soをモジュールフォルダにコピーすれば読み込める」との回答でしたので、その回答通りモジュールフォルダにコピーすれば良いという事でよろしいでしょうか。
    (この場合、モジュールフォルダとはどこになるのでしょうか…?)

    >あくまでphp-mysqlがインストールされていない状態での話しです。

    と言う事は…
    ・PHP5.5でコンパイルした際にmysqlのオプションを加えていて、
    ・mysql.soを読み込むようにすれば(mysql.soをモジュールフォルダにコピーすれば)、
    ・php-mysql5.3のインストールは不要
    という解釈でよろしいでしょうか。

    >PHP5.3のRPMパッケージを~
    これより先の文章は、php/php-mysqlともに5.3をインストールする場合の作業の際に、参考にさせていただきます。丁寧にご指摘をして下さりまして、ありがとうございます。

    find / -name mysql.so で存在を確認してください。

    mysql.soが在るならば
    vi /etc/php.d/mysql.ini
    extension=mysql.so

    php.dディレクトリが無ければ
    mkdir /etc/php.d/ で作成してください。

    httpd再起動です。

    windows-user様
    毎回毎回ありがとうございます。

    >find / -name mysql.so で存在を確認してください。
    >mysql.soが在るならば
    >vi /etc/php.d/mysql.ini
    >extension=mysql.so
    findでmysql.soがあったので、mysql.iniを作成し「extension=mysql.so」を記述して保存。
    また、/etc/php.ini内にも「extension=mysql.so」を記述していたのでコメントアウトしました。

    >httpd再起動です。
    再起動の前に、/etc/rc.d/init.d/mysqld stop で念のためMySQLを停止。
    /etc/init.d/httpd restart で再起動をかけてみました。

    起動時に下記の警告が出ましたが、httpd自体は起動しています。
    [warn] module php5_module is already loaded, skipping
    “php -v”コマンドを実行しても、特にエラー/警告は出ていません。

    ※ちなみに、昨夜の状態でphp -vを実行すると以下の警告が出ていました。今は出ていません。
    PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/ex tensions/no-debug-non-zts-20121212/mysql.so’ – /usr/local/lib/php/extensions/no- debug-non-zts-20121212/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0

    しかし、wordpressのページに行くと『お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。』と表示されてしまいます。

    他に何か足りないものがあるのでしょうか…

    再起動の前に、/etc/rc.d/init.d/mysqld stop で念のためMySQLを停止。

    どうでも良いですけど、なぜ起動しないMySQLを停止する必要があるのですか?

    [warn] module php5_module is already loaded, skipping

    どこかに重複する記述がありませんか?
    LoadModule php5_module modules/libphp5.so
    httpd.conf等を探してみてください。

    お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

    PHPでデータベースに接続出来ないからです。

    windows-user様
    毎回毎回ありがとうございます。

    >どうでも良いですけど、なぜ起動しないMySQLを停止する必要があるのですか?
    起動していないとはわかっているのですが「一応、停止のコマンドを送っておいた方がいいかな…」程度の考えですので、お気になさらないでください。

    >どこかに重複する記述がありませんか?
    ご指摘の通り、httpd.conf内に記述がありましたので、コメントアウトしたところ警告は消えました。ありがとうございます。

    >PHPでデータベースに接続出来ないからです。
    となりますと、MySQL側の設定の問題ということですね…。

    実際、centOSを入れたサーバ(192.168.1.AAA)からMySQLがある別サーバ(192.168.1.XXX)に接続しようとしたところ、以下のように’Access denied’が表示されてしまっています。
    MySQLのユーザ設定を間違えている(恐らくパスワード設定ミス)ようなので、そこをもう一度調べてみようと思います。
    (接続ができたら”解決済み”にしようと思います)

    mysql -h 192.168.1.XXX -u (Wp用のユーザ名) -p
    Enter password:
    ERROR 1045 (28000): Access denied for user ‘(Wp用のユーザ名)’@’192.168.1.AAA’ (using password: YES)

15件の返信を表示中 - 1 - 15件目 (全19件中)
  • トピック「MySQLの設定?について」には新たに返信することはできません。