Centos7でphp7・nginx・memcached・MariaDBをyumでインストール

タイトル通り
Centos7でphp7・nginx・memcached・MariaDBをyumで一気にインストール
を行います。

環境はさくらのクラウドです。

まずは、リポジトリの準備

# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
#baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1

# vim /etc/yum.repos.d/mariadb.repo
# MariaDB 10.0 CentOS repository list - created 2015-06-22 01:26 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

# vim /etc/yum.repos.d/remi-php70.repo
[remi-php70]
name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php70/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php70/mirror
#enabled=0
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
priority=1 ←追加

しかしこのままだと以下のエラーが出るので

Transaction check error:
file /usr/share/mysql/charsets/Index.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64
file /usr/share/mysql/charsets/armscii8.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64
file /usr/share/mysql/charsets/ascii.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64
file /usr/share/mysql/charsets/cp1250.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64
file /usr/share/mysql/charsets/cp1256.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64
file /usr/share/mysql/charsets/cp1257.xml conflicts between attempted installs of mysql-community-common-5.6.29-2.el7.x86_64 and MariaDB-common-10.0.24-1.el7.centos.x86_64

邪魔なパッケージを削除

# yum remove mysql-community-release

準備が出来たらこんな感じで一気にyumでinstall

# yum install nginx php70 php-fpm nginx php70-php-mcrypt php70-php-mbstring php70-php-fpm php70-php-gd php-pecl-memcached memcached memcached-devel php-mysql php-fpm MariaDB-devel MariaDB-client MariaDB-server

館林城跡に行ってきた。

群馬県館林市に有る館林城跡に行っていました。
城跡と言っても石垣や城類が有るわけではありません。

本丸?の門です。 画像右下の開いている所から外にでれます。

館林城跡 門
館林城跡 門

写真は無いんすが門を出た所、普通にただの道だったのでがっかりしました。

門の前にあった井戸です。

館林城跡 井戸
館林城跡 井戸

土橋門っていうらしいです。

館林城跡 土橋門
館林城跡 土橋門

館林城の説明です。

館林城跡
館林城跡

レスリングの碑が館林城公園にあったりしました。

館林城公園レスリング
館林城公園レスリング

丁度、館林市の鶴生田川で有名なこいのぼりがお祭りがやってました。

館林市 鶴生田川 こいのぼり
館林市 鶴生田川 こいのぼり

うろうろしていると足尾銅山で有名な田中正造の記念館も有りましたが
開園時間をすぎてしまい入れませんでした。。

足尾銅山 田中正造
足尾銅山 田中正造

群馬もいろいろ有って楽しいですね。

PHPのインストールでError: Packageが出た時のメモ

Centos7でPHP7の環境を作ろうと↓の感じでyum install を行った際に

yum install php70 php-fpm nginx php70-php-mcrypt php70-php-mbstring php70-php-fpm php70-php-gd php-pecl-memcached memcached memcached-devel

大量にError: Packageと出力された。

Error: Package: php-pecl-memcached-3.0.0-0.1.20160217git6ace07d.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(api) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(api) = 20100412-64
Error: Package: php-pecl-igbinary-1.2.2-0.1.20151217git2b7c703.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(zend-abi) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(zend-abi) = 20100525-64
Error: Package: php-pecl-msgpack-2.0.1-1.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(zend-abi) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(zend-abi) = 20100525-64
Error: Package: php-pecl-igbinary-1.2.2-0.1.20151217git2b7c703.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(api) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(api) = 20100412-64
Error: Package: php-pecl-msgpack-2.0.1-1.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(api) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(api) = 20100412-64
Error: Package: php-pecl-memcached-3.0.0-0.1.20160217git6ace07d.el7.remi.7.0.x86_64 (remi-php70)
Requires: php(zend-abi) = 20151012-64
Installing: php-common-5.4.16-36.el7_1.x86_64 (base)
php(zend-abi) = 20100525-64
You could try using --skip-broken to work around the problem

remiを見に行かずbaseリポジトリを見に行っているようなので

remi-php70.repo

priority=1

を書いた所、すんなりインストールできました

centos+nginxにowncloudをインストールした。その2

前回まででowncloudの
基本的な設定はできたのでDBの設定をします。

ほかのCMSなんかと同じで専用のDBとアクセス権を持ったユーザーを作ります。

$ mysql -u root -p
create database owncloud;
grant all privileges on owncloud.* to 'owncloud'@'localhost' identified by 'ぱすわーど';

画面に有る「ストレージとデータベース」と有る所をぽちって
「MySQL/MariaDB」を選択して
作成したDB情報・owncloudの管理者アカウントを入力します。

作成したDBを

owncloudDB指定
owncloudDB指定

するとまた以下のエラーが・・・

.htaccessファイルが動作していないため、おそらくあなたのデータディレクトリまたはファイルはインターネットからアクセス可能になっています。
サーバーを適正に設定する情報は、こちらのドキュメントを参照してください。

nginxなのでもちろん.htaccessは使用できませんのでconfの問題です。
公式サイトを参考に〇パクリで動きました。

これでやっと管理画面に入れましたがまだエラーが表示されてます。

まずはこれ

NSS バージョン (NSS/3.19.1 Basic ECC) の古い cURL を使っています。OSを更新するか、この機能 アプリストア または クラウド連携共有からアプリをインストール もしくはアップデート が正しく動くアプリに更新してください。

curlのバージョンが古いようです。
リポジトリを入れて

# rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
# yum install libcurl -y

これで一つ消えました。

次に

PHPのシステム環境変数が正しく設定されていないようです。getenv("PATH") コマンドでテストして何も値を返さないことを確認してください。
PHP設定の注意とご利用のサーバー向けの特にphp-fpmを利用する場合のインストールドキュメント ? を確認してください。

と表示されていたので
以下のファイルの最終行に追記して

# vim /etc/php-fpm.d/www.conf
clear_env = no

nginxとphp-fpmを再起動

# /etc/rc.d/init.d/nginx restart; /etc/rc.d/init.d/php-fpm restart

また一つ消えました。

その次に

メモリキャッシュが設定されていません。パフォーマンスを向上するために、可能であれば memcache を設定してください。 より詳しい情報については、ドキュメント を参照してください。

以下のファイルに設定を追加

# vim /var/www/html/owncloud/config/config.php
'memcache.local' => '\OC\Memcache\APC',

そして再度
nginxとphp-fpmを再起動

# /etc/rc.d/init.d/nginx restart; /etc/rc.d/init.d/php-fpm restart

最後に

~PHPから提供されている新しいバージョンにアップグレードすることを強くお勧めします。

さすがに検証なしでPHPのパージョンは上げたくないのでスルー・・・
これで一応管理画面にもログイン出来てowncloudを使用することが可能になりました。

今週の桃福_番外編_2016/3/14

友人からの桃福ら~めん画像です。

開店直後に行ったようですが
「今開いたのに、もう満席。」だそうで、桃福の開店時間は確か・・11時30分
相変わらず桃福は美味しいので開店すぐで満席になるんですね。
僕も近所に有ったら毎日お昼ご飯は桃福に行くと思います。。
行きたいです・・。

コメントは有りませんでしたが、友人が食べた桃福ら~めん画像です。
味噌大盛ですね。

2016-03-14_桃福_味噌ら~めん大盛
2016-03-14_桃福_味噌ら~めん大盛

そろそろ、まじめに桃福のら~めん食べたくなってきましたよ。

centos+nginxにowncloudをインストールした。

今更ながらにowncloudをインストールしてみた。
環境はこんな感じです。

centos6.7
nginx
php-fpm
MariaDB

インストールには

isv:ownCloud:community.repo

を使用します。

# vim /etc/yum.repos.d/isv:ownCloud:community.repo
[isv_ownCloud_community]
name=Latest stable community release of ownCloud server (CentOS_6)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/isv:/ownCloud:/community/CentOS_6/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/isv:/ownCloud:/community/CentOS_6//repodata/repomd.xml.key
enabled=1

あと、remi.repoも使用しました。

準備が出来たらインストールします。

# yum install owncloud -y

依存関係やらでPHP関連がたくさんupdateされましたが
問題なくインストールは完了

owncloudは以下に設置されるので

/var/www/html/owncloud

nginxのconfを修正します。
自分の環境では、SSL通信でowncloudを使用するので
SSL設定の個所を修正します。

server {
listen 443 ssl default_server;

下記2か所をowncloudのドキュメントルートに指定

location / {
root /var/www/html/owncloud;

location ~ \.php$ {
root /var/www/html/owncloud;

変更したらnginxとphp-fpmを再起動

# /etc/rc.d/init.d/nginx restart; /etc/rc.d/init.d/php-fpm restart

ブラウザでアクセスすると以下のエラーが

ownCloud
Can't write into config directory!
This can usually be fixed by giving the webserver write access to the config directory.
ownCloud ? あなたが管理するウェブサービス

アクセス権が無いようなので変更

# pwd
/var/www/html
# chown -R nginx. owncloud/

リロードをかけるとまた次のエラーが

内部サーバエラー
サーバー内でエラーが発生したため、リクエストを完了できませんでした。
このエラーが繰り返し表示されるようであれば、以下の技術情報を添付してサーバー管理者に報告してください。
詳細は、サーバーのログを確認してください。
技術詳細
リモートアドレス: ***.***.***.***
リクエスト ID: jKx4oQpfP2z3J2HPXQmM

owncloudのログは以下に有るので見てみると

# pwd
/var/www/html/owncloud/data
# tailf owncloud.log
{"reqId":"F+2ghY\/e0X9D3DBzWNKW","remoteAddr":"***.***.***.***","app":"base","message":"Exception: {\"Exception\":\"ErrorException\",\"Message\":\"session_start(): open(\\\/var\\\/lib\\\/php\\\/session\\\/sess_bh38gqkejnln1v06n248jdvir6, O_RDWR) failed: Permission denied (13)\",\"Code\":0,\"Trace\":\"#0 [internal function]: OC\\\\Session\\\\Internal->trapError(2, 'session_start()...', '\\\/var\\\/www\\\/html\\\/o...', 38, Array)\\n#1 \\\/var\\\/www\\\/html\\\/owncloud\\\/lib\\\/private\\\/session\\\/internal.php(38): session_start()\\n#2 \\\/var\\\/www\\\/html\\\/owncloud\\\/lib\\\/base.php(454): OC\\\\Session\\\\Internal->__construct('ocjscitoq7tm')\\n#3 \\\/var\\\/www\\\/html\\\/owncloud\\\/lib\\\/base.php(594): OC::initSession()\\n#4 \\\/var\\\/www\\\/html\\\/owncloud\\\/lib\\\/base.php(1122): OC::init()\\n#5 \\\/var\\\/www\\\/html\\\/owncloud\\\/index.php(46): require_once('\\\/var\\\/www\\\/html\\\/o...')\\n#6 {main}\",\"File\":\"\\\/var\\\/www\\\/html\\\/owncloud\\\/lib\\\/private\\\/session\\\/internal.php\",\"Line\":104}","level":4,"time":"2016-03-13T13:19:07+00:00"}

どうやら以下のディレクトリに書込めない為エラーになっている模様

/var/lib/php/session

権限をnginxに変更

# pwd
/var/lib/php
# ls -al
total 12
drwxr-xr-x 3 root root 4096 Mar 3 00:11 .
drwxr-xr-x. 37 root root 4096 Mar 13 21:58 ..
drwxrwx--- 2 root apache 4096 Mar 3 00:11 session
# chown -R nginx. session

やっとowncloudのログイン画面が拝めました。

owncloudログイン画面
owncloudログイン画面

このままだと、sqliteな様なのでmysqlの設定等は次にします。