Moodleのために次はphpをインストールします。
Install Moodle on CentOS 7(apache)
https://www.rootlinks.net/2015/06/21/install-moodle-on-centos-7apache/
Install Moodle on CentOS 7(mariadb)
https://www.rootlinks.net/2015/06/21/install-moodle-on-centos-7mariadb/
このあたりを参考に取り敢えず必要そうなモジュールをインストールしていきます。
PHP Extensions and libraries
https://docs.moodle.org/22/en/PHP
CentOS 7のbase repoではphp 5.4がインストールされます。
このphp 5.4ではopcacheを別途インストールする必要があるので、セットアップ時にチェックが表示されます。
無視してもいいのですが勉強なのでインストールすることにします。
このopcacheはphp 5.5では標準で利用できるようなので、remi repoを利用してphp 5.5をインストールします。
remi repoの導入は下記を参考にして下さい。
CentOS 7にepel,remi repositoryを追加する
https://www.rootlinks.net/2015/06/19/centos-7にepelremi-repositoryを追加する/
remi repoにはphp 5.5と5.6用があります。php 5.6はMoodleでまだ正式対応では無いようです。
1 2 3 4 5 6 7 8 9 10 11 |
[root@host01 ~]# grep php /etc/yum.repos.d/* /etc/yum.repos.d/remi.repo:[remi-php55] /etc/yum.repos.d/remi.repo:#baseurl=http://rpms.remirepo.net/enterprise/7/php55/$basearch/ /etc/yum.repos.d/remi.repo:mirrorlist=http://rpms.remirepo.net/enterprise/7/php55/mirror /etc/yum.repos.d/remi.repo:[remi-php56] /etc/yum.repos.d/remi.repo:#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/ /etc/yum.repos.d/remi.repo:mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror /etc/yum.repos.d/remi.repo:[remi-php55-debuginfo] /etc/yum.repos.d/remi.repo:baseurl=http://rpms.remirepo.net/enterprise/7/debug-php55/$basearch/ /etc/yum.repos.d/remi.repo:[remi-php56-debuginfo] /etc/yum.repos.d/remi.repo:baseurl=http://rpms.remirepo.net/enterprise/7/debug-php56/$basearch/ |
- php 5.5のインストール
- php opcacheモジュールのインストール
- php timezoneの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
[root@host01 ~]# yum --enablerepo=remi --enablerepo=remi-php55 -y install php php-mysql php-xml php-mbstring php-xmlrpc php-soap php-gd php-intl php-ldap 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.kddilabs.jp * extras: www.ftp.ne.jp * remi: remi.kazukioishi.net * remi-php55: remi.kazukioishi.net * remi-safe: remi.kazukioishi.net * updates: www.ftp.ne.jp (snip) インストール: php.x86_64 0:5.5.26-1.el7.remi php-gd.x86_64 0:5.5.26-1.el7.remi php-intl.x86_64 0:5.5.26-1.el7.remi php-ldap.x86_64 0:5.5.26-1.el7.remi php-mbstring.x86_64 0:5.5.26-1.el7.remi php-mysqlnd.x86_64 0:5.5.26-1.el7.remi php-soap.x86_64 0:5.5.26-1.el7.remi php-xml.x86_64 0:5.5.26-1.el7.remi php-xmlrpc.x86_64 0:5.5.26-1.el7.remi 依存性関連をインストールしました: fontconfig.x86_64 0:2.10.95-7.el7 fontpackages-filesystem.noarch 0:1.44-8.el7 gd-last.x86_64 0:2.1.1-2.el7.remi jbigkit-libs.x86_64 0:2.0-11.el7 libX11.x86_64 0:1.6.0-2.1.el7 libX11-common.noarch 0:1.6.0-2.1.el7 libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.10-5.1.el7 libicu.x86_64 0:50.1.2-11.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7 libpng.x86_64 2:1.5.13-5.el7 libtiff.x86_64 0:4.0.3-14.el7 libvpx.x86_64 0:1.3.0-5.el7_0 libxcb.x86_64 0:1.9-5.el7 libxslt.x86_64 0:1.1.28-5.el7 php-cli.x86_64 0:5.5.26-1.el7.remi php-common.x86_64 0:5.5.26-1.el7.remi php-pdo.x86_64 0:5.5.26-1.el7.remi php-pecl-jsonc.x86_64 0:1.3.7-1.el7.remi.5.5 php-pecl-zip.x86_64 0:1.12.5-1.el7.remi.5.5 t1lib.x86_64 0:5.1.2-14.el7 完了しました! |
あれ!? opcache.soがインストールされていません。他のphp関連をインストールしないとダメなのでしょうか。
1 2 3 4 5 |
[root@host01 ~]# php -v PHP 5.5.26 (cli) (built: Jun 10 2015 15:19:21) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies [root@host01 ~]# find / -name opcache.so |
調べてみます。
1 2 3 4 5 6 |
[root@host01 ~]# yum --enablerepo=remi --enablerepo=remi-php55 search all php | grep opcache php-opcache.x86_64 : The Zend OPcache php-pecl-zendopcache.x86_64 : The Zend OPcache php54-php-pecl-zendopcache.x86_64 : The Zend OPcache php55-php-opcache.x86_64 : The Zend OPcache php56-php-opcache.x86_64 : The Zend OPcache |
php-opcache.x86_64で良さそうなのでこれをインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
[root@host01 ~]# yum --enablerepo=remi --enablerepo=remi-php55 -y install php-opcache 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.tsukuba.wide.ad.jp * extras: www.ftp.ne.jp * remi: mirrors.mediatemple.net * remi-php55: mirrors.mediatemple.net * remi-safe: mirrors.mediatemple.net * updates: www.ftp.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ php-opcache.x86_64 0:5.5.26-1.el7.remi を インストール --> 依存性解決を終了しました。 依存性を解決しました ====================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ====================================================================================== インストール中: php-opcache x86_64 5.5.26-1.el7.remi remi-php55 118 k トランザクションの要約 ====================================================================================== インストール 1 パッケージ 総ダウンロード容量: 118 k インストール容量: 289 k Downloading packages: php-opcache-5.5.26-1.el7.remi.x86_64.rpm | 118 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : php-opcache-5.5.26-1.el7.remi.x86_64 1/1 検証中 : php-opcache-5.5.26-1.el7.remi.x86_64 1/1 インストール: php-opcache.x86_64 0:5.5.26-1.el7.remi 完了しました! [root@host01 ~]# find / -name opcache.so /usr/lib64/php/modules/opcache.so /usr/lib64/php-zts/modules/opcache.so [root@host01 ~]# ls -l /usr/lib64/php/modules/opcache.so -rwxr-xr-x. 1 root root 142064 6月 10 22:24 /usr/lib64/php/modules/opcache.so [root@host01 ~]# ls -l /usr/lib64/php-zts/modules/opcache.so -rwxr-xr-x. 1 root root 146192 6月 10 22:24 /usr/lib64/php-zts/modules/opcache.so |
opcache.soが2つありますね。何が違うのだろう?
取り敢えずパッケージでインストールすると設定ファイル/etc/php.d/opcache.iniも作成してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
[root@host01 ~]# cat /etc/php.d/opcache.ini ; Enable Zend OPcache extension module zend_extension=opcache.so ; Determines if Zend OPCache is enabled opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHP ;opcache.enable_cli=0 ; The OPcache shared memory storage size. opcache.memory_consumption=128 ; The amount of memory for interned strings in Mbytes. opcache.interned_strings_buffer=8 ; The maximum number of keys (scripts) in the OPcache hash table. ; Only numbers between 200 and 100000 are allowed. opcache.max_accelerated_files=4000 ; The maximum percentage of "wasted" memory until a restart is scheduled. ;opcache.max_wasted_percentage=5 ; When this directive is enabled, the OPcache appends the current working ; directory to the script key, thus eliminating possible collisions between ; files with the same name (basename). Disabling the directive improves ; performance, but may break existing applications. ;opcache.use_cwd=1 ; When disabled, you must reset the OPcache manually or restart the ; webserver for changes to the filesystem to take effect. ;opcache.validate_timestamps=1 ; How often (in seconds) to check file timestamps for changes to the shared ; memory storage allocation. ("1" means validate once per second, but only ; once per request. "0" means always validate) ;opcache.revalidate_freq=2 ; Enables or disables file search in include_path optimization ;opcache.revalidate_path=0 ; If disabled, all PHPDoc comments are dropped from the code to reduce the ;size of the optimized code. ;opcache.save_comments=1 ; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments" ; may be always stored (save_comments=1), but not loaded by applications ; that don't need them anyway. ;opcache.load_comments=1 ; If enabled, a fast shutdown sequence is used for the accelerated code ;opcache.fast_shutdown=0 ; Allow file existence override (file_exists, etc.) performance feature. ;opcache.enable_file_override=0 ; A bitmask, where each bit enables or disables the appropriate OPcache ; passes ;opcache.optimization_level=0xffffffff ;opcache.inherited_hack=1 ;opcache.dups_fix=0 ; The location of the OPcache blacklist file (wildcards allowed). ; Each OPcache blacklist file is a text file that holds the names of files ; that should not be accelerated. opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ; Allows exclusion of large files from being cached. By default all files ; are cached. ;opcache.max_file_size=0 ; Check the cache checksum each N requests. ; The default value of "0" means that the checks are disabled. ;opcache.consistency_checks=0 ; How long to wait (in seconds) for a scheduled restart to begin if the cache ; is not being accessed. ;opcache.force_restart_timeout=180 ; OPcache error_log file name. Empty string assumes "stderr". ;opcache.error_log= ; All OPcache errors go to the Web server log. ; By default, only fatal errors (level 0) or errors (level 1) are logged. ; You can also enable warnings (level 2), info messages (level 3) or ; debug messages (level 4). ;opcache.log_verbosity_level=1 ; Preferred Shared Memory back-end. Leave empty and let the system decide. ;opcache.preferred_memory_model= ; Protect the shared memory from unexpected writing during script execution. ; Useful for internal debugging only. ;opcache.protect_memory=0 |
Zend OPcacheが組み込まれました。
1 2 3 4 5 |
[root@host01 ~]# php -v PHP 5.5.26 (cli) (built: Jun 10 2015 15:19:21) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies |
最低限の設定としてtimezoneを/etc/php.iniに設定します。
1 2 3 4 5 |
[root@host01 www]# vi /etc/php.ini [root@host01 www]# grep timezone /etc/php.ini ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Tokyo |
今のところphpはこんなところです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@host01 ~]# rpm -qa | grep php php-common-5.5.26-1.el7.remi.x86_64 php-cli-5.5.26-1.el7.remi.x86_64 php-xml-5.5.26-1.el7.remi.x86_64 php-gd-5.5.26-1.el7.remi.x86_64 php-5.5.26-1.el7.remi.x86_64 php-pecl-zip-1.12.5-1.el7.remi.5.5.x86_64 php-pdo-5.5.26-1.el7.remi.x86_64 php-xmlrpc-5.5.26-1.el7.remi.x86_64 php-mysqlnd-5.5.26-1.el7.remi.x86_64 php-ldap-5.5.26-1.el7.remi.x86_64 php-mbstring-5.5.26-1.el7.remi.x86_64 php-pecl-jsonc-1.3.7-1.el7.remi.5.5.x86_64 php-intl-5.5.26-1.el7.remi.x86_64 php-soap-5.5.26-1.el7.remi.x86_64 php-opcache-5.5.26-1.el7.remi.x86_64 |