さくらのVPSでサーバー構築(3)

今日は、PHP、MySQL5.7、phpMyAdminをインストールしたいと思います。

PHP及びPHP-FPMのインストール

  1. epelでインストールします。
    yum --enablerepo=epel -y install php php-mbstring php-pear php-fpm
  2. php-FPMを設定します。
    vi /etc/php-fpm.d/www.conf
  3. デフォルトでuserとgoupがapacheに設定されていますので、nginxに変更します。
  4. 39行目のuser=apacheを下記に変更します。
    user = nginx
  5. 41行目のgroup=apacheを下記に変更します。
    group = nginx
  6. php-fpmの起動と自動起動を設定します。
    systemctl start php-fpm
    systemctl enable php-fpm

Nnginxの設定変更

  1. nginx.conf内を変更します。
    vi /etc/nginx/nginx.conf

    ※nginx9.7以上の場合は、/etc/nginx/conf.d/default.confを修正してください。

  2. 下記の内容を追記します。
    location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      include fastcgi_params;
    }
  3. ※尚、上記でphp-fpmが起動しない場合は、3行目の$document_rootの部分を、下記のように修正してください。
    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
  4. nginxを再起動します。
    systemctl restart nginx
  5. PHPInfoを作成して、PHPの動作確認をします。
    echo "<?php phpinfo() ?>" > /usr/share/nginx/html/info.php
  6. PHPのバージョンは、5.4.16です。
    2015-11-13 18-44-22

php7.0.0RC7のインストール

yumでインストールするphpのバージョンは、5.4.16です。最新のphp7.0をインストールしたいと思います。本来なら、11月12日には、php7.0の正式版がリリースされている予定でしたが、今月末に伸びましたので、今日は、php7.0.0RC7をインストールします。

  1. まず、インストールされているphpのパッケージを調べてみます。
    rpm -qa | grep php
  2. インストールされているphpパッケージを全て削除します。
    yum remove php*
  3. 削除できたら、remiリポジトリをインストールするのですが、wgetがインストールされていなければ、先にwgetをインストールします。
    yum -y install wget
  4. remiのリポジトリパッケージをダウンロードします。
    wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
  5. rpmコマンドでremiリポジトリをインストールします。
    rpm -Uvh remi-release-7.rpm
  6. リポジトリ内を調べてみます。
    ls /etc/yum.repos.d
  7. remi-php70.repoというレポジトリがあります。
    2015-11-15 14-39-30
  8. それを利用してphp7.0をインストールします。
    yum -y install --enablerepo=remi-php70 php php-mbstring php-pear php-fpm
  9. ブラウザで確認してみましょう。
    2015-11-15 13-03-37

無事、インストールされました。php7.0のリリースが待ち遠しいですね。

MySQL5.7のインストール

最新のMySQL5.7をインストールします。詳細は、下記を参照してください。

CentOS7にMySQL5.7のインストール

尚、MriaDBをインストールしたい場合は、Server World様の下記のサイトを参照してください。

MariaDB インストール

phpMyAdminのインストール

  1. 下記のコマンドでphpMyAdminをインストールします。
    yum --enablerepo=remi-php70 -y install phpMyAdmin php-mcrypt
  2. Nginx用のphpMyAdmin環境ファイルを作成します。
    vi /etc/nginx/conf.d/phpmyadmin.conf
  3. 下記の内容を記述します。
    server {
           listen 80;
           server_name  phpmyadmin.winroad.org;
    
           location / {
                    root /usr/share/phpMyAdmin;
                    index index.php;
                    }
    
            location ~ \.php$ {
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$fastcgi_script_name;
                    include fastcgi_params;
            }
    }
  4. phpMyAdminが利用するセッションの保存場所を設定します。php.iniファイルを開きます。
    vi /etc/php.ini
  5. 1215行目あたりにある『;session.save_path=”/tmp”』を下記のように修正します。
    session.save_path="/var/lib/php/session"
  6. セッションディレクトリのパーミッションを変更します。
    chown -R root.nginx /var/lib/php/session
  7. phpmyadmin.winroad.orgで、サブドメインを作成します。※サブドメインの作成方法は前回をご参照ください。
  8. 無事phpMyAdminが起動しました。
  9. 2015-11-15 14-01-49
  10. 只、phpMyAdminのログイン画面に誰でもアクセスできるのは、不用心ですので、Nginxの設定ファイルを少々いじることにします。
    vi /etc/nginx/conf.d/phpmyadmin.conf
  11. 下記の部分を修正します。
    location / {
                    root /usr/share/phpMyAdmin;
                    index index.php;
                    }
  12. 下記のように記述すると、指定されたIPアドレスからしかアクセスできなくなります。
    location / {
                    root /usr/share/phpMyAdmin;
                    index index.php;
                    allow 203.148.57.182;
             deny all;                
                    }
  13. allow以下には、各自のIPアドレスを指定してください。上記のIPアドレスは適当ですので、悪しからず。尚、Apacheの場合は、denyを先に記述しますので、allowとdenyの順番が逆のように感じますが、nginxの場合は、これが正解ですので、お間違いなく。

環境保管領域の設定

『環境設定は、現在のセッションでのみ有効です。この設定を永続的に有効にするには、phpMyAdmin 環境保管領域が必要です。』とエラーが表示されたら、環境保管領域を作成する必要があります。

  1. create_tables.sqlを実行すれば、必要なテーブルを作成してくれるみたいです。
  2. まず、create_tables.sqlの場所を確認してみます。
    find / -name "create_tables.sql"
  3. /usr/share/phpMyAdmin/sql/create_tables.sql と場所が確認できましたので、MySQLを起動します。
    mysql -u  root -p
  4. パスワードを入力して、MySQLが起動したら、下記のコマンドを実行します。
    mysql>source /usr/share/phpMyAdmin/sql/create_tables.sql
  5. ずらずらーとQuery OK,….が表示されたら、phpmyadmin名のデータベースが作成されたかどうかを確認します。
    mysql>show databases;
  6. MySQLを終了したら、次に、config.inc.phpファイルを修正します。
  7. config.inc.phpファイルもインストール環境により場所が違う可能性がありますので、下記で調べてみます。
    find / -name "config.inc.php"
  8. 今回は、下記の2つが表示されました。
    /etc/phpMyAdmin/config.inc.php
    /usr/share/phpMyAdmin/setup/frames/config.inc.php
  9. 上記のうちの、/etc/phpMyAdmin/config.inc.phpファイルの一部を下記のように修正します。
    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
    $cfg['Servers'][$i]['relation'] = 'pma__relation';
    $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
    $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
    $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
    $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
    $cfg['Servers'][$i]['history'] = 'pma__history';
  10. 修正後、ログインし直して、上記の注意メッセージが消えていればOKです。

アップロードサイズの変更

nginxでは、デフォルトで、一度に1Mしかデータがアップできませんので、各設定ファイルで、下記のような設定を追加します。

client_max_body_size 128M;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
send_timeout 300s;

尚、アップロード容量や、接続時間等は、各自の状況に応じて設定してください。尚、上記の記入箇所は、http、server、locationのどの箇所でも大丈夫です。尚、これに対応して、/etc/php.iniのpost_max_sizeや、upload_max_filesizeも変更してください。

本日は、以上です。

追伸

本日(平成27年11月26日)現在で、php7はphp7.0.0RC8がリリースされています。正式版はもうちょっと先に伸びるのでしょうか。

尚、php7.0.0RC8にアップグレードしたら、phpMyAdminが起動しなくなりましたが、セッションディレクトリを再度設定し直したら、起動しました。

chown -R root.nginx /var/lib/php/session

以上、一言追伸でした。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ