php

CentOS7でphp5.6を使う

CentOS7でリリースされているphpはphp5.4
ownCloud9.1を使おうとしたら、これが引っかかった。ownCloundはphp5.6が必要

ここではSoftware Collectionsを使ってphp5.6を使うことにした

[root@c ~]# yum install centos-release-scl
 
[root@c ~]# yum install rh-php56
[root@c ~]# scl enable rh-php56 bash

一般ユーザでも

[illya@c ~]$ php -v
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[illya@c ~]$
[illya@c ~]$ scl enable rh-php56 bash
[illya@c ~]$ which php
/opt/rh/rh-php56/root/usr/bin/php
 
[illya@c ~]$ php -v
PHP 5.6.25 (cli) (built: Oct 21 2016 18:00:07)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[illya@c ~]$

CentOS7でhttpdにphp5.6を利用させるには

現行のhttpdにロードされているモジュール(php5_module)を差し替えるか、FastCGI系に移るかとなる。
既存のhttpdに手を加えたくないなら、FastCGI系で対処する
留意提供しているサービスが、FastCGI系に対応しているのならこれ
ここで使っているpukiwikiは、このFastCGI系を使うとユーザ認証ができなくなるみたいで、次項の方法にした

PHP-FPM (FastCGI Process Manager)

[root@c ~]# yum install rh-php56-php-fpm
 
[root@c ~]# diff /etc/httpd/conf.d/php.conf.orig /etc/httpd/conf.d/php.conf
5c5
<     SetHandler application/x-httpd-php
---
>     SetHandler "proxy:fcgi://127.0.0.1:9000"
[root@c ~]#
[root@c ~]# systemctl enable rh-php56-php-fpm
[root@c ~]# systemctl start rh-php56-php-fpm
[root@c ~]# systemctl restart httpd

その後、コンテンツにphpinfoを表示させるページを儲けて閲覧して確認する
2017y05m16d_164649205.png

CentOS7でhttpdにphp5.6を利用させるには(その2)

FastCGI系を利用せず、従来のモジュール形式で行いたいのなら、別のhttpdの切り替えか、phpをコンパイルする必要がある。
phpのコンパイルは簡単だが、yumで管理できなくなる。
ここでは別のhttpdを入れて従来どおりyumで管理する方法を示す

[root@c ~]# yum install rh-php56-php httpd24-httpd
[root@c ~]# systemctl stop httpd.service
[root@c ~]# systemctl disable httpd.service

これで旧環境は停止。次に新環境の整備。

[root@c ~]# cp -i /etc/httpd/conf.d/*.conf /opt/rh/httpd24/root/etc/httpd/conf.d/
(名前が重複するファイルは移さない)
 
[root@c ~]# vi /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf
 :
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
 :
[root@c ~]#
(従来のコンテンツへのアクセスを許可させる)

その後に

[root@c ~]# systemctl start httpd24-httpd.service
[root@c ~]# systemctl enable httpd24-httpd.service

とする
2017y05m16d_174607014.png

CentOS 7のphpでsqliteを使うには

単にpdoをインストールすれば一緒に入るみたい。あとhttpdの再起動が必要みたい

[root@c ~]# yum install php-pdo
 
[root@c ~]# rpm -qali |less
 :
Name        : php-pdo
Version     : 5.4.16
Release     : 36.3.el7_2
Architecture: x86_64
Install Date: 2016年09月07日 17時18分01秒
Group       : Development/Languages
Size        : 196979
License     : PHP
Signature   : RSA/SHA256, 2016年08月12日 19時37分17秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : php-5.4.16-36.3.el7_2.src.rpm
Build Date  : 2016年08月12日 06時33分19秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.php.net/
Summary     : A database access abstraction module for PHP applications
Description :
The php-pdo package contains a dynamic shared object that will add
a database access abstraction layer to PHP.  This module provides
a common interface for accessing MySQL, PostgreSQL or other
databases.
/etc/php.d/pdo.ini
/etc/php.d/pdo_sqlite.ini
/etc/php.d/sqlite3.ini
/usr/lib64/php/modules/pdo.so
/usr/lib64/php/modules/pdo_sqlite.so
/usr/lib64/php/modules/sqlite3.so
 :
[root@c ~]#

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-05-16 (火) 17:55:55 (8d)