プログラミング PC

うぶんちゅ

うぶんちゅ

|ω・)そろり。

先日、ノートPCを購入しました。
主要なスペックは以下のとおりです。

  • AMD Ryzen 5 3500U (4Core/8Thread/2.1GHz)
  • Memory 8GB DDR4-2400
  • SSD 256GB
  • AMD Radeon Vega 8 グラフィックス
  • 14inch FullHD 1920x1080 ノングレア

メインのデスクトップPCはWindowsなので、ノートPCにはubuntu(Linux)をインストールしました。

Windowsはバックアップを取った上で生存させておりますが、よっぽどのことが無い限り使わないでしょう。

経験上、LinuxだとWeb関係の開発環境を構築しやすいし扱いやすいんですよ。(´・ω・)

そういうわけでPHP7.4をビルドインストールして必要なパッケージや手順を簡単にまとめました。

興味がありましたら、ぜひどうぞ。

サーバ WEB

サーバーお引っ越し

サーバーお引っ越し

|ω・)そろり。

以前から企んでいた、サーバー移転を敢行しました。

CentOS等ソフトウェアのバージョンアップも兼ねていたので以下のような構成に。

  • CentOS 7
  • Apache 2.4 (CentOS標準)
  • MariaDB 10.3 (MariaDB公式)
  • PHP7.3 (ビルドインストール)

事前に仮想マシンで同じような構成を作って楽に設定できるよう準備していたものの、移転作業中にApache2.4とLet'sEncryptにおけるSSL設定で少々ハマってしまいました。(´・ω・`)

この話は忘れないうちにまとめてアップしようと思います。

プログラミング

はいぱーてきすとぷろせっさ7.2

はいぱーてきすとぷろせっさ7.2

|ω・)そろり。

PHP7.2が公開されたので早速サーバーにぶっ込みました。

気になったことを下記に挙げておきますねー。

mcrypt関数が削除

mcrypt関数がサポートされなくなったようです。

ビルド時のconfigureで"--with-mcrypt"を入れると非推奨とツッコミが入りました。

CentOSだとphpMyAdminを使う時に「mcrypt拡張入れろよ!(意訳)」ってツッコミを入れられて、わざわざ他のリポジトリ(epelやらRPMForgeなど)からlibmcryptをインストールする、という事案を経験した人もいると思います。

うちのサーバーに入れてあるphpMyAdmin(4.7.x)はどうなるんだ?と思いつつ開いてみたら特に問題なく動いております。特に警告表示もありませんでした。おそらくちゃんと対応しているんでしょうね。なお、その他のバージョンは確認していないので分かりません。(´・ω・)

KCFinderで警告表示

KCFinderはバックエンド側で使っております。

バージョンは最新の3.12なのですが、こんなモノが表示されました。

KCFinderでアップロード警告

each関数がPHP7.2.0から非推奨になっているようです。
参考 PHPマニュアル : each

ソースコードの該当箇所を見てみましたが、修正できそうな面倒くさそうな感じ。(´・ω・)

今のところ自分が使う分には不具合は無い感じです。

最新と言っても3年前なので、PHP次期バージョンでどうなることやら。(´・ω・`)

プログラミング

はいぱぁてきすとぷろせっさ7.1

はいぱぁてきすとぷろせっさ7.1

|ω・)そろり。

ようやくPHP7.1が来ましたよ。
早速サーバにインストールしました。

所感

RC版の段階でテストサイトである程度確認していたのですが、Smartyのキャッシュを削除した直後でもサクサク動いております。
それとイラストのサムネイルはPHPでリサイズ/表示させているのですが、PHP5.6のときと比べるとパッと見て速くなった感じはします。

トラブルシューティング

インストール直後にMySQL(PDO)でDBに接続できないエラーが出ました。

調べてみたらphp.iniでソケット指定が必要なディレクティブがあって、うちの場合は下記のように設定するとちゃんと動くようになりました。

pdo_mysql.default_socket = /var/lib/mysql/mysql.sock

環境によりけりかもしれませんが、気に留めておくとよいかもしれません。(´・ω・)

なお、当サーバはMySQL5.6を動かしています。

プログラミング

PHP7.1.0 RC4

|ω・)そろり。

PHP7はPHP5より速いとかなんとか。

前から気になっていたので、PHP7.1.0RC4をサーバーにソースからビルドしてインストール!

テストサイトだけPHP7.1.0RC4が動くように設定しました。

こういうときにユーザー権限でのFastCGIが役に立ちますねぇ。

超簡易的適当速度計測

ホームページのシステムを速度計測できるように少々改造。

なお、速度計測と言っても下記のような簡単なコードです。

$starttime = microtime(true);
/* ---------------
    色々な処理
--------------- */
$proctime = microtime(true) - $starttime;

超簡易的で適当なやり方ですが、10回くらいリロードを繰り返してその都度時間を確認しただけです。

  • PHP 5.6
    約0.10 ~ 0.15秒
  • PHP 7.1 RC4
    約0.07 ~ 0.09秒

数値を見る限りでは少しだけ速くなっているようです。

うちのホームページごときでは体感できないレベルですが、WordpressなどのCMSだと大きく影響するかもしれませんね。

よもやま話

今回の件でちょっとハマりそうになったお話。

microtime()関数は文字列を返します。
float型で取りたいときは、"microtime(true)"としましょう。

PHP:microtime - マニュアル

PHP7で"microtime()"で動かしてみたら「引き算してるけどデータ型がおかしいぜ。(かなり意訳)」みたいなNoticeエラーが出てしまいました。

A non well formed numeric value encountered in /home/***/www/***.php on line xx

てっきりfloat型で取ってると思っていたら、実は文字列だったのでエラーが出たということらしいです。

スポンサードリンク