カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

XAMPP for Windows における SSL 有効化手順

ローカル開発環境の XAMPP に HTTPS 通信を導入するための、Windows 10/XAMPP 8.2.12 環境での手順を整理して解説します。

事前に準備するもの

  • Windows 10 環境
  • XAMPP 8.2.12
  • Git(Git Bash を利用することを想定しています)
    Git 公式サイト

PHP の OpenSSL 拡張を有効化する

PHP の設定ファイル C:\xampp\php\php.ini を開き、以下の行を見つけてコメントアウトを外します。

extension=php_openssl.dll

これにより、PHP 経由で SSL 証明書に対応できるようになります。

Apache の SSL 用 Virtual Host を設定する

Apache 設定ファイル C:\xampp\apache\conf\extra\httpd-ssl.conf を編集して、HTTPS 通信を受け入れる仮想ホストを追加します。

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/my-server.crt"
    SSLCertificateKeyFile "conf/ssl.key/my-server.key"
</VirtualHost>
  • ServerName は用途に応じて変更可能です。
  • DocumentRoot のパスも実際のプロジェクトディレクトリに合わせて調整してください。

動作確認

ここまでの段階で、https://localhost にアクセスすれば、警告は表示されますが強制的にページを表示させることができます。
しかしまだ証明書を作成していないので、セキュリティ保護なしの状態でページが表示されます。

続きを読む…»

40 views

PHP-FPM .user.iniでアップロード可能容量設定

PHP-FPMの.user.ini設定を少し深掘りしてみます。

ファイルのアップロード可能な容量制限を変更するとき、次のような設定をすることがあります。

memory_limit = 256M
upload_max_filesize = 10M
post_max_size = 12M

しかし、実はこれうまくいきません。
このうち.user.iniで完全に反映できるのはmemory_limitのみです。
他2つは.user.iniではphpinfo()に反映されても、実際の動作には反映されない可能性が高いです。

各ディレクティブの.user.ini適用可否
ディレクティブ .user.iniに設定 phpinfo() に反映 動作に反映されるか
memory_limit できる 表示される 動作にも反映
post_max_size 一部反映される 表示される 動作には反映されない(FPM起動前に必要)
upload_max_filesize 一部反映される 表示される 動作には反映されない(FPM起動前に必要)

なぜupload_max_filesize・post_max_sizeが効かないのか

これらはPHPがファイルやPOSTデータを受け取る前に使われる設定のためです。

post_max_size:PHPがPOSTデータ全体を読み込む前に必要

upload_max_filesize:ファイルアップロード制御も同様にPHPエンジンが処理を始める前に評価

.user.iniは「スクリプトが実行される直前」に読み込まれるため、POSTボディがすでに破棄された後ということになります。

正しい設定方法(PHP-FPM環境)

.user.iniではなくFPMの構成ファイル(www.conf)かphp.iniに設定します。

続きを読む…»

75 views

PHP-FPMで.htaccessにphp_valueを使うと500 Internal Server Errorが発生

特定のディレクトリでPHPの設定を変更するため、.htaccessを作成し以下のように設定していたら500 Internal Server Errorが発生しました。

php_value memory_limit 128M
php_value max_execution_time 0

調査したところ、PHP動作モードがFPM(FastCGI Process Manager)であることが原因でした。
phpinfoのServer APIがFPM/FastCGIになっている場合です。

どうやらPHP-FPMでは.htaccessにphp_valueを使った設定変更が出来ないようなのです。
※.htaccess自体が使えないわけではありません。

解決法

CGI版で使用できる設定ファイル.user.iniを使います。

設定例は以下のようになります。

memory_limit 128M
max_execution_time 0

Apacheの設定で.user.iniへのアクセスを拒否する設定があるか確認、なければ設定しておいてください。

PHP: .user.ini ファイル – Manual
111 views

【メディア掲載】レバテックフリーランスで当ブログを紹介いただきました

レバテック株式会社が運営するIT・Web業界のフリーランスエンジニア向けエージェントサービス「レバテックフリーランス」の記事「幅広い角度からエンジニアのスキルアップのヒントを得られるブログ・サイト」にて、当ブログを紹介いただきました。
他にもスキルアップの参考にできるブログやサイトが多数掲載されています。

記事リンク:幅広い角度からエンジニアのスキルアップのヒントを得られるブログ・サイト

89 views

PowerShellのバージョン確認方法

$PSVersionTableコマンドで確認することができます。

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.5848
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.5848
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
113 views