うつ病、双極性感情障害を抱えたけんけんのFedora、FreeBSD勉強日記。
Linux、Unixのデスクトップ用途として使う秘訣お教えします。
 since 2006年2月16日(木)

WordPress

WordPress Maximum Upload File Size 2MB

WordPress鯖をLAN内で構築しているのですが、画像ファイルなどのメディアファイルのサイズが2MB以上のものがアップロード出来ませんでした。

ぐぐってみると、.htaccessとか functions.phpだったりしますが変更しても何も変化なく…

/etc/php.iniの編集

  
 Fedora鯖のphpの/etc/php.iniを弄れば良いようです。もちろんsudo vim /etc/php.initしてくださいね。  
    
upload_max_filesize = 2M
  
        ↓   
upload_max_filesize = 10M
  
    
  と数字を変更してください。数値は必要になってから増やす方が良いかと思います。
  
    

php-fpmサービスの再起動

  
  phpのサービスを再起動します。   
    
 sudo systemctl restart php-fpm
  
    

PHP設定確認

  
  設定サービス再起動したら安心と思わず、反映されているか確認しておきましょう。WordPressでアップロードしてみれば良いですが、WordPress側の設定のせいか鯖の設定か切り分けられないので、Linux鯖のPHPでの確認方法を紹介しておきます。   
    

phpinfo.phpの確認

  
  phpの設定確認にphpinfo.phpを用意します。公開先は標準だと/var/www/html/以下ですかね。   
 
phpinfo-code
    
とします。画像ですいません。HTML preタグの中で書くと<?がコメント化されてしまいます。
編集出来たら、ブラウザで
http://IPアドレスorドメイン名/phpinfo.php を開きます。IPアドレスorドメイン名はご自分の環境で。すると下図のようにphpの情報が表示されると思います。   
    
  phpinfo-ed
  
    
  表示されたら、ブラウザの検索で

upload_max_filesize

で検索します。下図のように設定した数値になっていたら成功です。
php情報を公開するのは危険なので速やかにphpinfo.phpを消しておいてください。   
    
  phpinfo-max-file-size_ed
  
    
  これでもWordPressでメディアアップロードが出来なければブラウザからWordPressの設定をあたってください。プラグインで設定するのが楽かな?   

お使いのサーバーのphpではwordpressに必要なmysql拡張を利用できないようです on Fedora25

エラーメッセージ

Fedora25にアップグレードして久々にWordPressを鯖設定するというか設定済なので localのWordPressを開くと、
以下のように言われました。

お使いのサーバーのphpではwordpressに必要なmysql拡張を利用できないようです

他サイトさまの解決方法

エラーメッセージだけで判断するとFedoraだからPHPのバージョンが新しいすぎるのかなあと思ったのですが ググった限りではPHP 7系統でも動いている様子。
当然次にやることはこのエラーメッセージでググることですね。

ぐぐるとまあ、出てくるわ出てくるわ色んなサイトがひっかっかります。よくある問題みたいです。 大きくは、2つのことが原因のようです。

  • MySQLのPHP拡張が入っていない。
  • /etc/php.iniファイルの の設定が不十分。

対策

答えを最初に書くと、/etc/php.iniが古くなっていたのか、php.iniファイルを一旦削除してphp-commonパッケージを再インストールしたら直りました。 コマンドで書くと、

sudo rm /etc/php.ini
sudo dnf reinstall php-common
sudo systemctl restart httpd

とすれば直りました。

詳細

以下これより先はことの顛末を記述しています。

とりあえず、MySQLのPHPが拡張が入ってないかどうかはパッケージがインストールされてるかどうかですね。
そこで、以下のコマンドを実行して入っているか確認します。

rpm -q php-mysql

とすると

パッケージ php-mysql はインストールされていません。

と言われました。 あれ?入ってないのおかしいなあということでもう少し広めにパッケージデータベースを検索してみます。

rpm -qa|grep php-mysql

としてみると

php-mysqlnd-7.0.14-1.fc25.x86_64

と返ってきました。パッケージ名が変わったんですかね。

それでは、/etc/php.iniの設定がおかしいのかなあと変更してみます。 /etc/php.iniファイルをsudoで開いて

;extension=msql.so 

の;を削除してコメントアウトを外します。つまり以下のようにします。

extension=msql.so 

に書き直します。そして設定変えたのでhttpdサービスを再起動します。

sudo systemctl restart httpd

としてwordpressを開いてみてもエラーメッセージは変わらず…

そして、

php -m | grep mysql

してみても何も返事がなく…

ここで、ではwordpressのバージョンが古いのかなと考え今あるディレクトリをリネームして新しいバージョンを落としてきます。

wordpress Latestをダウンロードして/var/www/htmlに展開します。
が、結果変わらず。

php -m

してみると、なんと

PHP Warning:  PHP Startup: Unable to load dynamic library './zip.so' - ./zip.so: cannot open shared object file: No such file or directory in Unknown on line 0

とズラズラーッとWarningが出るではありませんか。

確かに/etc/php.iniファイルを弄ったのに変化ないし、弄ってなくてもタイトル通りのエラーが出ていたのでひょっとして/etc/php.iniファイルが壊れてるのかと思い、

sudo rm /etc/php.ini
sudo dnf reinstall php-common

してみました。パッケージ名がphp-commonとわかったのは

sudo dnf provides /etc/php.ini

としてphp.initの在り処がphp-commonと表示されたからです。

php -m |grep mysql

を再度実行してみると

mysqli
mysqlnd

と表示され、エラーもなくなりました。

早速httpdを再起動させるとエラーメッセージなくWordPressのインストール画面が!!

無事解決してなによりです。 実はこれ以外にも一度データベースを削除しないといけなくなったりしましたが、 これは別記事にする予定。

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

ブログ内の検索
Google

WWW を検索
このblog内を検索
最新コメント
コンピューター オススメ
アクセスカウンター

    はてブリスト - 現在
    • ライブドアブログ