UpDate について

Proxy配下だからなのか、UpDateの「更新」が表示されません。
おそらくは、「更新」が出てもうまくいかない予感がしています。
Update時に動作するスクリプトをご教示頂けないでしょうか?

ちなみにWindows環境で以下のステップでインストールは出来ています。

●Proxy配下のWindows(IIS)+MariaDBでのインストールでは、
通常のインストールのSTEP1がうまく動作しないためコマンド
プロンプトでSTEP1を実行しています。
(訳あって、curlもphpもパスを通していない環境です)

set http_proxy=(プロキシ):(ポート)
set https_proxy=(プロキシ):(ポート)
cd /D (BaserCMSのパス)\composer
set HOME=(BaserCMSのパス)\composer
(curlのパス)\curl.exe -sS https://getcomposer.org/installer | (PHPのパス)\php.exe

また
●composer_installer.php は、書き換えて実行しています。
・$phpPath = whichPhp(); → $phpPath = “(PHPのパス)”;
・$command
CDコマンド実行にCMDが必要なのでCMDを追加
ウエブサイトのフォルダが別ドライブの場合 cd の /D オプションを付ける
curl はフルパスに変える
export → set
yes | → echo y |

●STEP2以降は、普通にブラウザ操作でインストール出来ています。

@bon さん こんにちは、自分もWindows環境でBasercmsを使用しています。
(こちらはxamppでcurlとphpのパスを通しており、設定は異なりますが)

そのため、アップデートの際にはインストール時と同様に、下記のファイルをWindows環境用に書き換えています。
vendor/baserproject/baser-core/src/Utility/BcComposer.php

書き換え内容の参考トピック
Windows環境でのアップデートについて

ちなみにBasercmsにログインした状態で、下記のアドレスにアクセスしたら、更新の設定画面が表示されたりしませんでしょうか?
{basercmsのURL}/baser/admin/baser-core/plugins/update

@ciao-h さん
確認が遅くなり申し訳ありません。
ご教示頂いた「vendor/baserproject/baser-core/src/Utility/BcComposer.php」は、もう少しciao-hさんの投稿をみて理解を深めようと思います。

{basercmsのURL}/baser/admin/baser-core/plugins/update
こちらで、画面を確認出来ましたが、最新版のバージョンを持ってこれていないようです。
今は5.1.8のはずですが、インストールされている5.1.7が表示されます。
手動で、5.1.8として、php.exeのフルパスを設定して試したところ以下のエラーとなりました。
「最新版のダウンロードに失敗しました。ログを確認してください。」
#\tmp\updateにはファイルがあるので、ダウンロードが行われているようです。

「BcComposer.php」の修正を試してみます。

Windows環境でのアップデートについて
こちらを参考にさせて頂き、同様に3カ所を修正しました。
5.1.7では、78行目、80行目、149行目が該当します。
#149行目はcurl.exeのパスを通していないので、フルパスに変えました。

/baser/admin/baser-core/plugins/update から実行したところ
・「最新版のダウンロードに失敗しました。ログを確認してください。」となる
・\tmp\updateにはファイルがダウンロードされている

インストールについてもSTEP1は、コマンドラインでの実行が必要だったので、コマンドラインでのUpdateしかないですかね…
#そのコマンドラインが分かってない(^^;

更新の通知が来ないと正常に動作しないのか、または
@bon さんの環境の場合、PHPのパスも通されていないとのことですので、
前回の修正に加え、PHPのパスに関する下記の箇所を書き換える修正も必要なのかもしれません。

修正ファイル vendor/baserproject/baser-core/src/Utility/BcComposer.php
59行目
変更例

public static $php = '(phpのパス)\php.exe ';

81行目

self::$php = ($php)? : '(phpのパス)\php.exe ';

また、こちらでBasercmsをインストールする際、
bonさんのトピック「Windows環境でのインストール(5.0.10)」を参考にし、うちの環境用にインストールファイルを改良しております。
ただ、こちらの環境ではCMDの記述(「cmd.exe~」)を追加しなくても動作するのですが、
もしかすると、bonさんの環境ではインストールと同様に149行目に「cmd.exe~」の記述が必要なのかもしれません。

149行目
変更例 ※記述に誤りがあるかもしれませんが

$command = 'cmd.exe /C "cd /D ' . self::$composerDir . ' && ' . self::$export . ' (curlのパス)\curl.exe -sS https://getcomposer.org/installer' . ' | ' . self::$php . ' 2>&1"';

@ciao-h さん
検証が遅くなり申し訳ありません。

public static $php = '(phpのパス)\php.exe ';
//以下は念のために書き換え
self::$php = ($php)? : '(phpのパス)\php.exe ';

こちらを試して見ましたが、ダメでした。

ログでは以下のようになっているので「Composer」を勉強してみます。
#wincacheは、今回の動作に影響はないと思っています。

2025-07-28 07:51:30 error: PHP Warning:  PHP Startup: Unable to load dynamic library 'wincache' (tried: C:\opt\php\php848nts\ext\wincache (指定されたモジュールが見つかりません。), C:\opt\php\php848nts\ext\php_wincache.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
A script named install would override a Composer command and has been skipped
./composer.json has been updated
Running composer update baserproject/baser-core --with-all-dependencies
Loading composer repositories with package information
Cannot create cache directory C:/Windows/system32/config/systemprofile/AppData/Local/Composer/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache. See also cache-read-only config if your filesystem is read-only.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

In CurlDownloader.php line 390:

  curl error 35 while downloading https://repo.packagist.org/packages.json: Recv failure: Connection was reset


require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-m|--minimal-changes] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>...]

proxy配下だから、うまくいかないような気がしてきました。
#実行コマンドさえ分かれば…

う~ん自分のつたない知識だとこれ以上はわからないですね・・・
エラーログをcopilot(コパイロット)やgemini(ジェミニ)などのAIサービスに投げてみて対処法を聞いてみるのはどうでしょうか