はじめに 皆様はじめまして!GMOペイメントゲートウェイの川原と申します。 普段はWebアプリケーションエンジニアとして決済代行サービスであるPGマルチペイメントサービス(以下「マルペイ」と記載)の開発・運用に従事しており、その中でも主に加盟店様にて取引の確認や設定変更を行っていただくための管理画面(以下「マルペイ管理画面」と記載)を担当しています。 私は数年前からマルペイ管理画面のPHPバージョンアップ対応を行っており、今年その一連の対応を完了させることができました。本記事では、このPHPバージョンアップ対応について共有したいと思います。 バージョンアップの概要 担当しているマルペイ管理画面は言語としてPHP、フレームワークはSymfonyを採用しており、オンプレミスの仮想サーバー上で稼働しています。今回PHPをこれまで使用してきた5.6から8.1へアップグレードし、同時にフレームワーク
PHPに関する日本最大のカンファレンスである「PHPカンファレンス2024」が2024年12月22日(日)に開催されます。カンファレンス盛り上げ企画として、開催までの5カ月間にわたりPHPの技術記事の連載を企画しました。この記事をお読みの皆さんには、PHPのさまざまな技術に触れながらカンファレンス当日を楽しみにしていただければと思います。第5回目の今回は、オープンソースのツールである「PlantUML」「php-class-diagram」を使って、既存のPHPのソースコードからソフトウェア設計の把握や改善に役立つクラス図を自動生成する方法を紹介します。 複雑なシステムの課題 PHPは伝統的に、シンプルなWebサイトを迅速に立ち上げるためのツールとして威力を発揮してきました。 迅速に立ち上げられたシステムも、機能追加を繰り返しながら運用を続けていると、プログラムが複雑化して修正や機能追加を
PHPに関する日本最大のカンファレンスである「PHPカンファレンス2024」が2024年12月22日(日)に開催されます。カンファレンス盛り上げ企画として、開催までの5カ月間にわたりPHPの技術記事の連載を企画しました。この記事をお読みの皆さんには、PHPのさまざまな技術に触れながらカンファレンス当日を楽しみにしていただければと思います。 第4回目の今回は、PHPのパッケージ管理ツールとしておなじみの「Composer」について、どのようにパッケージの存在を確認し、バージョンを解決するのか、一連の流れを見ていきましょう。 パッケージ管理ツール「Composer」 今日では、多くのプログラミング言語において、開発プロジェクトにパッケージ管理ツールが欠かせないものとなりました。 既存資産の活用で「車輪の再発明」を避け、開発の効率化を助けてくれます。また、セキュリティ意識が高まる中で、厳密なバー
CodeIgnitorの環境構築をしたときのメモです。 環境 WSL 2 Ubuntu 20.04 Docker 20.10.7 PHP 8.0.9 (新規インストール) composer 2.1.5 (新規インストール) codeigniter 4.1.3 (新規インストール) CodeIgniter4 User Guide — CodeIgniter 4.1.3 documentation ベースとなるDockerイメージはphp:8.0-apacheとした。 Php - Official Image | Docker Hub マルチステージビルドを使って、Composerをインストールする。 We do not provide a Composer image for each supported PHP version because we do not want to encou
php-fpm がリクエストを処理しているサイクルをざっくりとまとめました。 php-fpm ワーカープロセスの生成 リクエストループ 1) リクエスト接続待ち listen_socket の生成 FastCGI リクエスト 2) リクエスト開始処理 実行PHPファイルパスの決定 スーパーグローバルへの格納 3) PHPファイル実行 4) リクエスト終了処理 PHP コード実行リソースの解放 max_requests チェック FastCGI クライアントとの通信 接続開始 リクエスト読み取り レスポンス書き込み 接続終了 さいごに php-fpm ワーカープロセスの生成 php-fpm は FastCGI リクエストを処理する SAPI 実装の一つです。いわば、PHP コードを実行する FastCGI サーバです。prefork 型となっており、nginx 等からの FastCGI リク
Orange Tsai tweeted a few hours ago about “One of [his] PHP vulnerabilities, which affects XAMPP by default”, and we were curious to say the least. XAMPP is a very popular way for administrators and developers to rapidly deploy Apache, PHP, and a bunch of other tools, and any bug that could give us RCE in its default installation sounds pretty tantalizing. Fortunately, for defenders, the bug has o
PHPでBase64とBase64 URLを相互変換(エンコード・デコード)したい! .NET/C#の記事は下記に掲載してます。 【.NET/C#】Base64とBase64 URLの相互変換(エンコード・デコード) | ネコニウム研究所 概要 この記事では、PHPでBase64とBase64 URLを相互変換(エンコード・デコード)する手順を掲載する。 Base64は、バイナリなどのデータを64種類の文字列で表現するエンコード方式です。 Base64 URLは、Base64から更にURLとして使える文字列で表現するエンコード方式です。具体的にはBase64にエンコードした文字列に下記の処理を行う。 +を-に置換する /を_に置換する 末尾の=を削除する 仕様書 環境 PHP 8.0.17 手順書 下記は、文字列をBase64にエンコードした後にBase64 URLにエンコードした文字列を
NGINX Unitはさまざまな言語で動作可能なオープンソースの動的アプリケーションサーバーです。PHPのアプリケーションを動作させる際にNGINX Unitを使うと、PHP-FPMを使う場合に比べて約8倍も応答速度が改善するというテスト結果をエンジニアのstraykerwlさんが報告しています。 Comparing PHP-FPM, NGINX Unit, and Laravel Octane / Habr https://habr.com/en/articles/646397/ サービスメッシュ基盤構築~NGINX Unit - NGINX https://www.nginx.co.jp/products/nginx-unit/ GitHub - nginx/unit: NGINX Unit https://github.com/nginx/unit NGINX UnitではPHPのほ
API Platform Conference 2024 Sep 19-20, 2024 Join FrankenPHP creators, contributors, and speakers in Lille, France, or online. API Platform Conference 2024 Sep 19-20, 2024 Join FrankenPHP creators, contributors, and speakers in Lille, France, or online. API Platform Conference 2024 Sep 19-20, 2024 Join FrankenPHP creators, contributors, and speakers in Lille, France, or online.
FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみでPHPサーバを提供できるようになるとともに、PHP 8.2以降のほとんどのPHP機能拡張、およびすべてのCaddyモジュールと互換性がある。 ほかにも、アプリケーション起動してメモリに保持するワーカーモード、JavaScriptイベントとしてWebブラウザへ送信されるリアルタイムイベント、ZstandardおよびGzip圧縮、構造化されたログ、Prometheusメトリクスを使用したCaddyの監視、HTTPS・HTTP/2・HTTP
(最終更新:2023/01/27) インストール&設定 インストール 📕インストール Composerでインストールすると簡単です。 ci4app/ ├── app/ ... アプリケーション │ ├── Common.php │ ├── Cells/ ... (ビューセル) │ ├── Commands/ ... (コマンド) │ ├── Config/ ... 設定 │ ├── Controllers/ ... コントローラ │ ├── Database/ ... データベース │ ├── Entities/ ... (エンティティ) │ ├── Filters/ ... コントローラフィルタ │ ├── Helpers/ ... ヘルパー │ ├── Language/ ... 言語ファイル │ ├── Libraries/ ... ライ
Rocky Linux 9.1 をインストールして LEMP 環境を構築しました ~ 後編 「Rocky Linux に LEMP 環境を構築する」の後編です。今回は MariaDB と PHP のインストールを行います。php-fpm をソースコードからコンパイルしました。 Linux 2023年 3月 28日 OS RHEL Rocky Linux に PHP 8.2.4 をマシマシインストール 前回は Rocky Linux をインストールして Nginx をインストールすることろまでやりました。 今回は LEMP 環境の残り、「MariaDB」と「PHP」をインストールしていきます。 MariaDB はパッケージでちゃちゃっとやっちゃいます。PHP はソースコードからオプションマシマシでfpmをインストールしますが、設定は最小限にとどめます。 細かい設定は専門のサイトにお任せし
php-fpmでのsegmentation fault 先日、お客様が運用しているWebサイトで、502 Bad Gatewayが頻発して原因がよくわからないので調べられないかとお問い合わせをいただきました。 とりあえず、お客様の環境を確認させていただくと、Amazon Linux上でNginxとphp-fpm(phpのバージョンは7.2)を使ったWebシステムでした。やれるだけはやってみますということで調査を開始しました。 まず、Nginxのエラーログを確認してみます。 ...略... recv() failed (104: Connection reset by peer) while reading response header from upstream, ...略... ということで、upstream。この場合はphp-fpmでエラーがおきているようです。 今度はphp-fpm
中国語の文字列を単語単位に分割するためのライブラリ guoba を公開します。 ダウンロード:guoba 1.07(ZIPファイル:3.65MB) 動作環境:PHP7.3.25にて動作確認。動作にはライブラリimdrが必要となります。同梱しているフォルダdatにはデータファイルが収められています。guoba.phpと同じフォルダに置いてください。 インストール先のフォルダ ├─guoba.php ├─dat │ ├─emit.dat │ ├─start.dat │ ├─init.dat │ ├─trans.dat │ └─trie.dat └─imdr.php 使用例: require_once 'guoba.php'; $test = new guoba(); #メソッドcutで文字列を単語に分割する $str = "北京一直是作为中国的首都在发挥作用"; $res = array();
すっかり秋になり、お鍋が恋しい季節になりました。 どうもお久しぶりです、GMOアドマーケティング GMOSSP開発担当の@KazuakiMです。 GMOSSPでは最近、CircleCIからGitHub Actionsに移行した事から、その情報をお伝えできたらと思います。 GMOSSPでは配信をPHP、集計などをGo言語で実装している事から、 今回はPHPのGitHub Actionsの実装例となります。 そもそもGitHub Actionsとは? 継続的インテグレーション/継続的デリバリー(CI/CD)をGitHubが提供する環境内で実行できるサービスとなります。 GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のト
はじめに AWS EC2サーバーのPHPとLaravelを最新バージョンに、アップデートする方法についてまとめました。 環境 現環境 Amazon Linux 2 PHP 7.2.8 Laravel 5.7.9 nginx 1.12.2 composer 1.10.15 (なくても可) アップデート後 Amazon Linux 2 PHP 8.0.16 Laravel 9.5.1 nginx 1.20.0 composer 2.2.7 PHPバージョンアップ PHPバージョンは7.2なので、PHP8にバージョンアップします。 PHPをバージョンアップする前に、/etc/php.iniファイルをローカルにコピーしておいてください。 バージョンアップすると、/etc/php.iniファイルは、デフォルトに書き換えられます。 // パッケージアップデート $ sudo yum update -y
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く