一回折れた人

日々の出来事をつらつらと

php7を入れ直しました

phpを5から7にしました

体感的に5より少し早い気がしますが、5の時の表示速度を測ってないので正確な早さまでは分からないです。 せっかくだから測っておけばよかった。

ついでにphpenvをできるだけ消しました。 できるだけというのは、phpenvのインストール方法を見てその時作られたファイルや、.bashrcを手動で消しただけなので残骸が残っているかも・・・。 ちなみにインストール方法は、下記の通りです。

$ curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
$ git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(phpenv init -)"' >> ~/.bashrc
$ exec $SHELL -l

.bashrcで追記された部分をを消して、「.phpenv」フォルダをサクっと消しただけです。 「curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash」この部分が直接bashを実行しているので、ここがちょっと気がかりです。 中を見た感じだと、rbenvをgitから持ってきてファイルを作成して色々置き換えているだけに見えるのでフォルダ削除で多分大丈夫かと思っていますが・・・。

PHP7をインストール

今回最初は「remi-php70」というリポジトリからインストールしたのですが、リポジトリフォルダの中を見ると「remi-php71」を発見してしまったので、 PHP7.0.?→PHP7.1にしました。(7.1はまだRC版なので様子を見て7.0.?に戻すかもしれません) 参考:PHP 7.1.0 Release Candidate 3 Released 太文字でプレビュー版なのでプロダクトで使用しないでと書いてあるので、何があっても自己責任です。

f:id:hpptms:20170921235151p:plain

開発版で良く分からないだけにトップ画面に表示していたPHPのバージョン表示は消します。

そもそも7.1を入れるなら、updateじゃなくて一旦消して7.1をインストールした方が良さそうですね。 横着して「yum update –enablerepo=remi,remi-php71 php*」としたので、不具合は出そうです。 とりあえずwordpressは動いていますが、7.0から7.1にアップデートする際にかなりの数のWarningとNoticeが出ていたので、エラーに何が出てくるか観察しておきます。

phpenvについて

最近rubyを少し勉強していて(ほぼrailsですが)rubyの記事を読むと「rbenv」がかなりの頻度で出てくるんですね。 でrbenvなんですが、僕が見た記事ではrubyをインストールする前に導入するようです。 phpenvがrbenvを改造して作られた物なので、キレイにphpenv導入するなら一回サーバのphpを消した方が楽に導入できそうです。 「.bash系」の中を見ても今はちょっと対応出来ない・・・。もっとサーバについて知らないといけないですね。

ちょっと話がずれますが、少し時間が取れたらphpenv自体を消してphp5.6か7にしようと思います。 一応webに公開しているサーバなので、再起動する度にphpのverが変わったら問題なので。

それよりもまず、端末ごとの見栄えをCSSで調整しないとダメですね。

MySQLとpostgreSQLの違いは何か?

MySQLpostgreSQLの違い(アーキテクチャ)は何か?こんなことを聞かれました。 僕が知っている違いと言えば、postgreSQLは論理削除を行っているくらいでした。(その場では答えられませんでしたが・・・)

僕の中での2つのRDBの使い分けは基本的にMySQLを使って、postgreSQLはジオメトリ型を扱う時くらいしか使用していませんでした。

MySQLのお話し

少しだけMySQLを整理すると、現在MySQLはWスタンダート?2つの方式からテーブル作成を行えます。 MySQLには「MyISAM」、「InnoDB」を選択できることは知っていました。 おそらく何も設定せずにMySQLでテーブルを作成すると、「InnoDB」になるハズです。

これはDBを読み書きする時の利便性で「InnoDB」の方が管理しやすいためだと思われます。 ・InnoDB:レコード単位でロック ・MyISAM :テーブル単位でロック + トランザクション機能が無い? こう見ると、MyISAM を選ぶ理由が見つかりませんが、バックアップの容易さはMyISAMの方が上のみたいです。(もしかするともうInnoDBの方が上かもしれませんが・・・)

MySQLpostgreSQLの違いは?

MySQL単体だけでも結構な違いがありますが、MySQLpostgreSQLの違いは? 調べたところ、大きそうなところは、 ・MySQL:マルチスレッド ・postgreSQL:マルチプロセス 最近のLinuxの仕組みだとマルチスレッドの方が有利みたいです。 それと「postgreSQL」は追記型なので、何度も同じレコードを更新すると容量を食うようです、この辺は考えて使う必要がありそうですね。 ちなみに「postgreSQL」のロック方式ですが、レコード単位の他色々オプションがあるようです。

もっと深堀する必要はありますが、なかなか調べる機会が無いので勉強になりました。

参考:PostgreSQLとMySQLはどちらかに明確な優位性がありますか? 参考:データベースの比較 参考:運用視点なMyISAMとInnoDBと。 参考:MySQLの「InnoDB」と「MyISAM」についての易しめな違い 参考:PostgreSQLのロック

いつのまにかPHPのverが5系になっていた件

自分用メモ しばらくはphp7で動いていたハズなんですが、久しぶりに確認するとphp5.3.3になっていました・・・。

f:id:hpptms:20170921234601p:plain

php7の時もwordpressは得に問題なく動いていたので一回キレイな状態にしてphp7に入れ替えようかな・・・。(更新があった時も楽だし)

今はphpenvというツールでphpのverを切り替えられるようにしているハズなのですが、wordpressの描写には5.3.3が使われているようです。 なんかちょっと前にもこんな事で悩んだような?

f:id:hpptms:20170921234638p:plain

参考になる記事があったので、後で自分で読みます。 nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する VagrantでCentOS7にNGINX+PHP-FPM+PHP7の環境構築

追記:2016/9/7 直らない゚(゚´ω`゚)゚。 linuxPHPのバージョンを見ても7系が表示されるので、「service php-fpm start」をした時にphpenvの設定とは関係ない部分で「php-fpm.sock」が作成されていますね・・・。 トップページの変なすきまが「7.x」になったら何とかなったんだなって思ってください。

よくよく考えてみたら元々入っていたPHPが優先されている可能性が高いので、調べてみました。

f:id:hpptms:20170921234754p:plain

どう考えてもこっちのPHPが優先されてますね・・・。 前どうやって切り替えたんだ・・・。

postgreSQLのコマンド(自分用)

自分用メモ postgreSQLの基本操作。

//データベースの一覧
\l

//テーブル一覧
\d

//テーブルの項目(フィールド)確認
\d テーブル名

//SQL(スクリプト)ファイルの実行
\i sqlファイル名

//psqll切断
\q

//DB切り替え
\c データベース名 ユーザ名

//不要領域の削除(mysqlにもあるらしい)
VACUUM

象さん。

追記:2016/9/7 postgreSLQLはカラムの追加に任意の要素の下とかに差し込みできないと初めて知りました。