メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • vscode : phpの実行環境パスにphp.exeファイルが含まなければならない

vscode : phpの実行環境パスにphp.exeファイルが含まなければならない

Visual Studio Code
xampp
development

開発環境に複数のPHPバージョンが共存

  • ローカル環境はWindows10で、実行したいPHPを環境変数に設定しないで、開発ツール、サーバーに必要なPHPバージョンを設定します
  • ローカルのPHPとApacheはXAMPPパッケージで管理します
    • 複数のPHP環境をApacheのhttpd.confファイルで管理します
    • 「XAMPP環境の複数バージョンのPHPをインストールと設定」を参考ください

VSCodeのPHP実行環境をphp.validate.executablePathにphp.exe実行ファイルの指定

  • VCCodeの設定:setting >> Extensions >> PHP Validate: Executable Pathにある「Edit in setting.json」を開いて、以下のPHP実行パスを入力
    {
        "php.validate.executablePath": "D:/develop/servers/xampp-5.6.15/php-7.2.30-Win32-VC15-x86"
    }
  • 実際にPHPファイルを参照すると、VCCodeからエラーメッセージが表示されました
    • Cannot validate since D:/develop/servers/xampp-5.6.15/php-7.2.30-Win32-VC15-x86 is not a valid php executable. Use the setting 'php.validate.executablePath' to configure the PHP executable.
      VCCodeのPHP実行パスにphp.exeがなければエラーになる
    • 何と、このパスが正しくないようです
  • PHPの実行パスを間違ってはいないですが、試しにこのパスの下にphp.exeを入れれば、問題が解決です
    {
        "php.validate.executablePath": "D:/develop/servers/xampp-5.6.15/php-7.2.30-Win32-VC15-x86/php.exe"
    }

     

xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
apache
xampp

XAMPPに複数のPHPバージョンの導入

  • 一つのXAMPPパッケージに複数のPHPバージョン環境でテストすることがあります
    • 詳細は:XAMPP環境の複数バージョンのPHPをインストールと設定 を参考してください
  • もちろん、各PHPバージョンごとに、XAMPPをダウンロードして、必要応じで起動することもできます

新しいPHPバージョン(v7)を設定して、XAMPPが起動時にエラー:libssl2ロードエラー発生

  • 低いPHPバージョン(v5.6)のXAMPPにPHP7環境を設定して、Apacheを起動すると、エラーが発生しました。
  • libssh2.dllをロード時にエラーが発生したようです
    The procedure entry point libssh2_scp_recv2 
    could not be located in the dynamic link library

     

原因:XAMPPのApacheにあるlibssh2.dll、ssleay32.dll、libeay32.dllの古いのせい

  • XAMPPがphp5.6に対応するため、Apacheディレクトリにあるダイナミックライブラリ:libssh2.dll、ssleay32.dll、libeay32.dllのバージョンが低いため、appache起動時にphp_curl.dllロード時に上記エラーが発生しました。

解決:新しいバージョンのlibssh2.dll、ssleay32.dll、libeay32.dllの使用

  • 解決手法はいろいろ考えられます。例えば、XAMPPにあるApacheディレクトにあるlibssh2.dll、ssleay32.dll、libeay32.dllファイルをバージョンアップします
  • 複数のPHPバージョンがあるため、別のPHPバージョンを使用する際に、libssh2.dll、ssleay32.dll、libeay32.dllを更新することが面倒なので、この方法をあまりお勧めしません
  • 各PHPバージョンの定義ファイル(php.ini)に各自のlibssh2.dll、ssleay32.dll、libeay32.dllロードする記述をします
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libeay32.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/libssh2.dll"
    LoadFile "C:/develop/servers/xampp-5.6.15/php-7.0.27-Win32-VC14-x86/ssleay32.dll"
    extension=php_curl.dll
    
  • ポイントは:Pope_curl.dllをロードする前に、各PHP環境にあるlibeay32.dll、libssh2.dll、ssleay32.dllをロードします
xampp

やりたいこと:XAMPP環境で複数バージョンのPHPを使用したいです

  • 開発環境で複数バージョンのPHP(例:5.6、7.0、7.1など)で確認、テストすることがあります
  • XAMPPでは、単一のPHPバージョンなので、PHPバージョンに合わせてXAMPPをダウンロード、インストールして使用することが一般的です
  • 複数のXAMPPをダウンロード、ローカルにインストールすることを避けたいです
    • 複数のデータベースのデータを同期することが面倒です
    • Apache、MySQLなどを丸ごと複数存在するので、スマートなインストールとは言えないです
  • 調べてみたら、Apache,MySQLを共有する前提で、XAMPP環境で複数バージョンのPHPインストールするには、大体2種類の方法があります
    • 複数のバージョンのPHPをインストールして、違うポートでそれぞれのPHP環境を使用(利点:複数のPHP環境が同時に起動し、ブラウザで違うポートで違うPHP環境のテストができます。頻繁に違うPHPでのテストが必要であれば、これが良いでしょう)
    • 複数のバージョンのPHPを新ストールして、どっちを使用するかはApacheの設定ファイル(httpd.conf)より切り替えます(利点:設定するには簡単です。あまり頻繁にPHP環境を切り替え必要はなければ、これでも良いでしょう。)
  • どちらかを使用するかは、開発目的に合わせて選べばよいでしょう

複数バージョンのPHPをXMAPPにインストール

  • 例として、Apacheの設定ファイル(httpd.conf)よりPHP環境切り替え方式を説明します
  • 複数バージョンのPHPをXMAPPのルートディレクトリに入れます
    複数バージョンのPHP
  • 各バージョンのPHP環境のphp.iniを用意
    • 新規ダウンロードされたPHPフォルダにphp.ini-development、php.ini-productionがあります。どちらかをコピーしてphp.iniにファイル名を変更します
    • php.iniなのエクステンション、XDebugなどの必要な設定を行います(設定の詳細を省略)
    • 注意点:エクステンションのディレクトリ設定時に、フールパス設定したほうが良いでしょう(説明通り:extension_dir="ext"ではうまくいかない場合があります)
      PHPのエクステンションディレクトにフールパス
  • Apacheで複数バージョンのPHP環境呼び出しファイルを用意します
    • パス: XAMPP\apache\conf\extra の下
    • 元のPHP設定ファイル:httpd-xampp.conf、これをコピーして、それぞれのPHPバージョンに分けます
      Apacheで複数のPHP設定ファイル作成
    • このPHP設定ファイルにそれぞれのPHP環境パスに合わせて、変更します
      Apacheのphp設定

ApacheのPHP呼び出し記述をスイッチに

  • Apacheの設定ファイル:"C:\develop\servers\xampp-5.6.15\apache\conf\httpd.conf" にあるPHP呼び出しのところ( Include "conf/extra/httpd-xampp70.conf" )を見つけ出します
    Apacheから起動するPHP選択
  • 起動したPHPバージョン環境を書き換えて、そのバージョンのPHP環境起動用意は完了します
  • 上記設定が完了したらApacheを再起動します
  • 弱点はPHP環境を切り替えるときにここでPHP環境設定ファイルを切り替え必要があります
Visual Studio Code
windows
development

リモートサーバのソースコード管理ツール:SFTP

  • 作業環境:リモートサーバーの開発環境で行い、ローカルで管理しないことにします(異なる端末で行います)
    • 開発者は一名で、同時に異なる端末でソースコードの編集は行わないので、ソースコードのバージョン管理はしなくて良いです
    • 異なる端末、違う時間帯でソースコードを編集作業するため、全部ローカルにダウンロードして、作業後にサーバーにアップロード(コミット)することが面倒なので、ローカルでソースコードを管理しないことにします
  • VS Code(Visual Studio Code)の拡張モジュールを探してみたところ、SFTPが要望に一致しています
    • VS Codeの拡張検索:sftp を入力して検索すると sftp1.8.4(現時点)があります。これをインストールします
    • インストール後にリロード(reload)リンクをクリックして、SFTPを立ち上げます

SFTP設定ポイント:サーバー名、ログインユーザー名、パスワード、名前

  • File >> Performances >> Settings >> Extensions >> sftp configuration がSFTPの基本管理を行います
    • ローカルでソースコード管理する必要はなければ、「Download When Open In Remote Explorer」をチェックしないままにします。
  • VS Codeのコマンドパレット(command palette、shift+ctrl+p)を開いてSFTPの接続情報(sftp.json)を設定します
    • 初期値としては以下のようです
      {
          "protocol": "sftp",
          "host": "localhost",
          "port": 22,
          "username": "",
          "remotePath": "/"
      }
      

       

  • 接続設定として、以下の要素が必須です
    • name: 任意の名前(空白でもかまわない)
    • host:  リモートサーバー名
    • port:  22(初期値のままでよい)
    • username:  リモートサーバーをログイン名
    • password:  リモートサーバーをログインパスワード
    • remotePath: リモートサーバー上にソースコードのパス
      接続設定イメージ
  • 注意点:name要素がなければ、エラーとして検出され、サーバーへの接続を行わないです
    接続設定にnameが足りない場合にエラー
    error message: Missing property "name"
  • 上記設定が完了すると、リモートサーバーへの接続ができ、サーバー上のソースコードなどの変更ができるようになります
Visual Studio Code
windows
development

初期インストールしたVSCode(Visual Studio Code)がすべてのタイプのファイルを関連付けていない

  • 初期状態のVSCodeがすべてのタイプのファイルを登録していないです
    • 例:Drupalのモジュール(.module)、インクルートされるファイル(.inc)がPHPで作成されています。
  • VSCodeでは、登録されていないタイプのファイルを「plain text」で開いています
    関連付けていないタイプのファイルをplain textで開く
    • 開いたファイルがテキストとして見なされているので、PHPのコード補完、コードの入ライドなどがありません

関連するエディターに結びづける方法:表示された「Plain Text」をクリックして関連するエディターを選択

  • 操作方法が比較的に簡単です。Windowの右下に表示された「Plain Text」をクリックすれば、プログラムエディター一覧が表示されます
    関連するエディターに結びづける
  • 関連のあるエディターを選んで、関連付けが完了です
  • 関連付けてから、コードの入ライド、補完ができるようになります

 

ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)