PHP

Linux

Pico シンプルで高速なCMSのインストールと設定メモ

Pico は、とてもシンプルで高速な CMS(コンテンツ・マネジメント・システム)です。一般的な CMS はデータベースを使いますが、Pico はデータベースを必要としないため、インストールやサーバーの移行が簡単にできるのが特徴です。また、外部からアクセスできるような管理画面が無いためセキュリティ的にも安心して使えます。そこで今回は、Pico のインストールと初期設定、テーマのカスタマイズ方法まで...
PHP

PHP8 インストールメモ(CentOS8)

2020年11月26日 PHP 8.0 がリリース されました。約5年ぶりのメジャーバージョンアップです。PHP 8.0 では、JITコンパイラにより長時間実行アプリケーションのパフォーマンスが向上され、名前付き引数、属性、Nullsafe演算子などの新機能が追加されています。そこで今回は、CentOS8に PHP 8.0 をインストールする手順をまとめてみました。
プログラム

PHP U2Fセキュリティキーを使った2段階認証の実装方法メモ

U2F(Universal 2nd Factor)は、認証技術 FIDO(ファイド)の認証方式の1つです。ユーザーIDとパスワードで認証した後に、U2F に対応したセキュリティキーなどで2段階認証を行う仕様になっています。電子的認証のガイドライン NIST SP800-63B ではこの U2Fセキュリティキーを使った2段階認証を AAL3(認証者保証レベル3)という最も強度が高い認証方式として位置...
PHP

phpMyAdmin のインストールとセキュリティ設定メモ

phpMyAdmin は、Webブラウザから MySQL や MariaDB を管理するためのフリーソフトウェアツールです。SQL文を書かずに、データベースやテーブル、ユーザーの作成などができるとても便利なツールなのですが、公開サーバーに phpMyAdmin をインストールする場合は、セキュリティへの配慮も必要です。そこで今回は、phpMyAdmin のインストールと初期設定、安全に使うためのセ...
プログラム

2段階認証を実装するための記事まとめ(PHP+認証アプリ)

Google Authenticator などの認証アプリを使った2段階認証を、ご自分や自社の WEBサービスに導入するのは少しハードルが高いと思ってはいませんか? 実は、認証アプリを使った2段階認証は、RFC6238 Time-Based One-Time Password Algorithm というとてもシンプルな技術仕様で実装できるため、スマートフォンが普及した現在では、比較的簡単に導入する...
プログラム

PHP で otpauth URI(TOTP)を作成する方法

2段階認証でよく使われる TOTP(時間ベースのワンタイムパスワード)は、利用をはじめる時に Google Authenticator などの認証アプリに、サーバーで生成した秘密鍵を登録します。この登録する秘密鍵はQRコードで表示することが多いのですが、その際に秘密鍵などを otpauth URI という形式にしてQRコードに埋め込む必要があります。そこで今回は、PHP で otpauth URI...
プログラム

5分で出来る!PHPでQRコードを生成する方法

つい先日 PHPでQRコードを生成する機会があったので少し調べてみました。実装は大変かと思っていましたが、ありがたいことに QRコードを生成する PHPライブラリはいくつも公開されていて、簡単に QRコードを生成することができそうです。そこで今回は、endroid/qr-code を使って PHPでQRコードを生成する方法をまとめてみました。
プログラム

PHP + Google Authenticator(TOTP)2段階認証の実装方法

2019年7月、あるスマートフォン決済サービスが不正利用され多くの利用者の方が被害に遭われました。その決済サービスには、2段階認証やそれに準ずるセキュリティ対策を怠ったとして大きな批判が集まりました。高い安全性が求められるサービスでは、パスワード認証だけでは安全を確保することが難しくなっています。そこで今回は、PHP と Google Authenticator を使った2段階認証の実装方法をまと...
PHP

PHP のセッションを使ったログイン認証はなぜ安全なのか?

PHP のセッションを使ったログイン認証後の処理は、上のように簡単なコードで実装できてしまいます。利用者の大切な情報を守るための、とても重要な処理なのですが、こんな簡単なコードで大丈夫なのかと不安になるのは私だけでしょうか(^^;) そこで今回は、PHP のセッションを使ったログイン認証がなぜ安全なのかを、PHP のセッションの仕組みをふまえて検証してみました。
プログラム

Apache NetBeans 11 を macOS にインストールメモ

Apache NetBeans(ネットビーンズ) は、オープンソースの統合開発環境(IDE)です。Java や PHP など色々なプログラム言語に対応しています。以前は オラクルが中心になって NetBeans を開発していましたが、バージョン9から Apache が開発をするようになりました。現時点ではインストーラーが提供されていないため、以前とインストール方法が少し変わっているようです。そこで...
クラウド

【2019年版】Google Analytics API v4 の使い方(PHP)

毎月ウェブサイトごとに Google Analytics の解析データをエクセルにまとめる作業があるのですが、サイト数が増えてくると時間もかかり大変な(めんどくさい)作業になってきます。Google Analytics API を使えば、手製のプログラムから解析データを取得できるので作業を自動化できそうです。そこで今回は、現時点(2019年3月)での最新バージョン Google Analytics...
Linux

CentOS7+Apache2.4(TLS1.3)+MySQL8.0+PHP7.3 最新LAMP環境+WordPress5.0インストールメモ

2018年は、4月の MySQL8.0 のリリース、8月のRFC8446(TLS1.3の標準仕様)の発行、10月の Apache httpd2.4 の TLS1.3 サポート、そして年末12月には PHP7.3 と WordPress5.0 がほぼ同時にリリースされ、ミドルウェア界隈では変化の多い1年となりました。そこで今回は、現時点で(2019年1月8日)最新の LAMP環境と WordPres...
プログラム

A3RT の Talk API を PHP で使ってみた

リクルートテクノロジーズが公開している A3RT(アート)は、機械学習や人工知能を手軽に使うことができる API群です。A3RT の各種 API はメールアドレスの登録だけで無償で使うことができます。そこで今回は、Chatbot を簡単に作成することができる Talk API を PHP で使ってみました。
Linux

Apache HTTP/2+PHP7.2+MySQL5.7 インストールメモ(2018年)

ここ最近、新規で WEBサーバーをセットアップする時に「ミドルウェアは最新バージョンで!」とオーダーされることが多くなりました。ひと昔前は安定性を優先して十分に枯れたミドルウェア(Apache 1.3 など) を使うことがよくありましたが、最近では新しいバージョンでもそこそこ安定していますので、新機能や性能向上などのメリットがある最新版を使うのが正解なのかもしれません。そこで今回は、現時点(201...
プログラム

PHP7.2 に mcrypt をインストールする方法(ただし非推奨!)

PHP でデータを暗号化や複号化をする時によく使われていた mcrypt関数 が、PHP7.2でコアから削除されました。ただ OpenSSL関数 を使えば mcrypt と同じことができる上に処理も早いので問題ないはずなのですが、古いシステムからの移行時のつなぎや、色々な力関係などで(^^;) しかたなく mcrypt を使わなければならない場面もあるかと思います。そこで今回は、非推奨ですが PH...
Linux

WordPress で画像をアップロードできない場合は mod_fcgid を疑え!

つい先日 WordPress のメディアライブラリに画像ファイルをアップロードをしようとしたら「HTTP エラー」と表示され、とつぜんアップロードができなくなりました。色々調べた結果 PHP を FastCGI で動かすための Apache httpd のモジュール mod_fcgid の設定に原因がありました。そこで今回は、ファイルのアップロードができなくなった原因とその対処方法をご紹介いたしま...
Linux

CentOS 7.4 で手軽になった HTTP/2 対応 Apache のインストールメモ

CentOS 7.4(1708)から、OpenSSL 1.0.2 が導入され ALPN がサポートされました。これまでは HTTP/2(mod_http2)に対応した Apache httpd をインストールするには、OpenSSL や HTTP/2 関連ライブラリなどを自前でソースからビルドしなければなりませんでしたが、ALPN がサポートされたことにより、これらを yum からインストールでき...
Linux

FastCGI PHP の設定方法 と mod_php とのパフォーマンスの比較(Apache httpd)

FastCGIとは、CGIプロセスの起動と終了にかかる手間を減らすことにより、プログラムをCGIで高速に動作させるとともに、サーバーへの負荷も少なくすることができる仕組みです。Apache httpd での FastCGI の実装 mod_fcgid により PHP を動作させると、mod_php と同じようなパフォーマンスで PHP を実行できるそうです。そこで今回は、mod_fcgid を使っ...
クラウド

ゼロから始める Google App Engine の使い方(2017年)

Google App Engine(よくGAEと略されます)は、自分が作ったWEBアプリケーションを簡単に公開することができる PaaS (Platform as a Service)です。最近ではサーバーレスアーキテクチャ(サーバーの構築や保守が不要なしくみ)とも呼ばれるようになりました。以前の Google App Engine は、制約が多く対応するプログラム言語も少なかったのですが、ここ最...
Zabbix

Zabbix サーバ証明書の有効期限の監視設定メモ

Let's Encrypt や AWS Certificate Manager など、ここ数年で SSL/TLSサーバ証明書を無料で自動更新してくれるサービスが登場したこともあり、WEBサイトに HTTPS を導入する機会も増えてきたのではないでしょうか? サーバ証明書を自動更新してくれるのであれば、サーバ証明書の有効期限のチェックも自動化しておきたいものです。そこで今回は、Zabbix で SS...
クラウド

Cloud Vision API で「笑いながら怒る人」を感情分析してみた

Cloud Vision API は、画像の内容を解析してくれる Googleのクラウドサービスです。物体、構造物、ロゴ、有害コンテンツ、文字(OCR)など色々な検知機能があります。特に顔検知機能では、人の顔を検知するのはもちろん、喜び、悲しみ、怒り、驚き、といった表情も解析できるそうです。そこで今回は、Google Cloud Vision API の使い方を学びつつ、竹中直人の名人芸「笑いなが...
プログラム

入力チェックコードを PHP と JavaScript で共通化する方法

フォームに入力された値に行う、入力チェックは(バリデーションチェックとも言うらしいです)大きく分けて、JavaScript で行うクライアント側チェックと、PHP などで行うサーバ側チェックの2つがあります。当然両方で入力チェックを行うことが望ましいのですが、同じようなコードを、クライアント側とサーバ側で書かなければなりません。そこで今回は、入力チェックコードを PHP と JavaScript ...
Linux

Apache HTTP/2 + PHP7 のパフォーマンスを測定

前回の記事「Apache HTTP/2+PHP7+MySQL5.7 インストールメモ」で構築したサーバの、パフォーマンス(レスポンスタイム)を測定してみました。HTTP/1.1+PHP5.4 の環境と比較してみると、大幅にパフォーマンスが向上しています。当然の結果かと思いますが、あまりに劇的だったのでメモとして残しておきます。
Linux

Apache HTTP/2+PHP7+MySQL5.7 インストールメモ

2015年もあと少しになりました。今年を振り返ってみると、HTTP/2 の標準化と主要WEBサーバへの実装、2倍以上の性能向上やメモリ使用量を低減した PHP7 のリリース、Let's Encrypt によるSSL/TLSサーバー証明書の無料化、パフォーマンスが飛躍的に向上した MySQL5.7 のGA版リリースなど、2015年はWEBに関する技術が、大きく変化した年だったと思います。そこで今回は...
Zabbix

PHP 5分でわかる! Zabbix API の使い方(ホスト一覧の取得)

Zabbix API を使うと、プログラムやコマンドラインから、ホストを追加したり、監視データを取得することが出来ます。自動化ツールの Chef 等と組み合わせれば、サーバの監視設定までもを自動化することが可能です。API と聞くと少し難解なイメージがありますが、Zabbix API は JSON-RPC 2.0 のシンプルな仕様に準拠しているため、比較的簡単に使えるようです。そこで今回は、PHP...
プログラム

Twitter API search/tweets で 100件以上のツイートを取得する(PHP)

Twitter のツイート検索API(search/tweets)で、取得できるツイート数の上限は 100件 です。分析用途で使うには、ちょっと件数が少ないですね。そこで今回は、Twitter API で 100件 以上のツイートを取得する方法をご紹介します。
Linux

Redis と php-pecl-redis のインストールメモ(CentOS7.1.1503)

Redis(レディス)は、メモリ上でデータの高速な読み書きを可能にする、キーバリューストアを構築するためのソフトウェアです。キーバリューストアの代表格 Memcached と比べると、Redis は高機能で、データの永続化や、データ構造のサポート、データレプリケーション機能など、便利な機能が色々あります。そこで今回は、Redis と php-pecl-redis のインストール手順と、Redis ...
データ分析

PHP 政府統計 API の使い方メモ(e-Stat)

政府統計の総合窓口(e-Stat)の API 機能 では、各府省が公表する統計データを、APIを使って簡単に取得することができます。以前は各府省ごとに、統計データを公開していましたが、近年この、政府統計の総合窓口サイトの1つにまとめられ、昨年からは API 機能の提供も開始されました。 政府統計 API の使い方はいたって簡単なのですが、統計データの種類、量ともに膨大なため、データ取得までの流れが...
プログラム

PHP 5分で出来る!Twitter API アプリケーション認証(Application-only authentication)

ツイッター API の、アプリケーション認証 (app auth) を使うと、15分あたりのAPI利用上限を、ツイート検索が 180回 から 450回 に、タイムライン取得は 180回 から 300回 に増やすことができます。ツイート探索系のアプリを作るのには、ちょっと嬉しい仕組みですね。 そこで今回は、PHP から Twitter API アプリケーション認証を行い、ツイート検索をする方法をご紹...
プログラム

MeCab と php-mecab のインストールメモ(CentOS7.1)

MeCab は、日本語の文章を解析して、単語に分割してくれるソフトウェアです。WEBサービスを作るにあたって MeCab を PHP から使う必要があったので、今回は php-mecab もインストールしました。MeCab(めーきゃぶ)の名称は、開発者さんの好物「めかぶ」にちなんで付けられたそうです。ふと、めかぶをつまみに一杯やりたくなりました。(^^)