LNMP環境における高可用性アーキテクチャの構築
LNMPアーキテクチャの概要
LNMPはLinux、Nginx、MySQL、PHPからなるWebアプリケーションスタックであり、動的コンテンツを提供するための代表的なオープンソース技術群です。本ガイドでは、単一サーバー上にこの環境を構築し、基本的な運用までを実施します。
Nginxのソースからのインストール
Nginxはリバースプロキシやロードバランシングにも対応した高速なWebサーバー ...
6月20日 20:44 投稿
単一サーバーにおけるLAMPアーキテクチャの実装(モジュール方式)
LAMPアーキテクチャとは
LAMPは、Linux、Apache(httpd)、MySQL/MariaDB、PHP の頭文字を取った用語で、Webアプリケーションを構築するためのオープンソース技術スタックです。本稿では、単一サーバー上でPHPをApacheのモジュールとして統合する形態での構成方法について説明します。
Webリソースの種類
静的リソース:HTML、CSS、JavaScript、画像ファイルなど、サー ...
6月17日 20:20 投稿
Webフレームワークの基本原理と設計思想
Webフレームワークは、特定の問題を解決するために生まれた開発規約の集合体である。たとえば、SmartyのようなテンプレートエンジンはPHPとHTMLの分離を目的としているが、フレームワークはそれよりも広い視点で、コードの構造・ディレクトリ配置・アクセス方式などを標準化し、開発の再利用性と保守性を高めることを目的とする。
開発者が独自にプロジェクトを構築する際 ...
6月16日 23:49 投稿
PHPスクレイピング用セレクターライブラリの実装
概要
この記事では、PHPでスクレイピングを行うためのセレクターライブラリの実装について解説します。このライブラリは、phpspiderプロジェクトから抽出した独立したコンポーネントとして利用できます。
インストール
このセレクターライブラリは、Composerを介してインストールできます。ただし、ここではコア機能のみを抽出した実装を紹介します。
コード実装
<? ...
6月16日 21:54 投稿
RoadRunnerアプリケーションサーバーの詳細設定
サーバーコマンド
RoadRunnerアプリケーションは、PHPアプリケーションのルートディレクトリから簡単なコマンドを実行することで起動できます。
$ rr serve
カスタム設定ファイルを使用してRoadRunnerを起動することも可能です。
$ rr serve -c ./app/.rr.yaml
すべてのRoadRunnerサービスを再読み込みします。
$ rr reset
このコマンドをIDEのファイルウォッチャーとして ...
6月16日 19:38 投稿
Webセキュリティ実践:CTFにおけるPHPコード注入とファイルインクルージョン攻撃手法
コード実行脆弱性の悪用
PHPのeval関数は文字列をコードとして実行する危険性の高い機能です。CTFのWeb問題では、この関数の不適切な使用が攻撃の起点となります。
<?php
if (array_key_exists('command', $_GET)) {
eval($_GET['command']);
} else {
highlight_file(__FILE__);
}
?>
このスクリプトでは、commandパラメータの入力検証が一切行われていませ ...
6月12日 22:59 投稿
Laravel 5.6でのCRUD操作実装
基本的なテストが通ったので、CRUD機能を実装していきます。
実装手順
コントローラーの作成
ルーティング設定
CRUD機能の開発
1 コントローラー生成
php artisan make:controller TasksController
生成されたファイルは app/Http/Controllers ディレクトリ内に保存されます。
2 ルーティング設定(routes/web.phpに追加)
Route::resource('tasks', 'TasksController') ...
6月12日 20:55 投稿
CodeIgniterにおける複数条件検索とページングの実装
CodeIgniterフレームワークで複数の検索条件を持つページング機能を実装する際の解決方法を紹介します。通常のページング機能と異なり、検索条件を維持しながらページングを行う必要があります。
通常のページング実装例:
$this->load->library('pagination');
$page_config['base_url'] = 'http://example.com/items/list/';
$page_config['total_rows'] = 350;
$ ...
6月9日 19:23 投稿
RoadRunner による PHP アプリケーションの高速化とサーバー構成
RoadRunner 概要とアーキテクチャ
RoadRunner は、Go 言語で構築された高性能な PHP アプリケーションサーバーおよびプロセスマネージャーです。従来の PHP-FPM とは異なり、アプリケーションをワーカープロセスとして常驻メモリ上で実行することで、フレームワークのブートストラップ時間を排除し、処理速度を劇的に向上させます。
このサーバーは、HTTP リクエストだけで ...
6月9日 19:13 投稿
PHP 7.4とPHP 8.0のインストールとpkg-configの詳細
2022年12月21日 15:49:28
公式ドキュメント: PHP 7.4の変更点
一部の拡張がpkg-configのみを使用するように移行しています。これにより、--with-foo-dir=DIRなどのパラメータではなく、--with-fooを使用するようになります。カスタムライブラリのパスは、PKG_CONFIG_PATHに追加ディレクトリを設定するか、FOO_CFLAGSおよびFOO_LIBSで明示的に指定します。
影響を受ける拡張 ...
6月9日 16:48 投稿