Wiz PHP [ホームに戻る] [スレッド一覧] [新規投稿] [留意事項] [ワード検索] [管理用] [過去ログ] 記事閲覧
このスレッドは管理者からのメッセージです。

  • スレッド先頭部のまたはをクリックするとスレッド内の全記事を表示します。(はツリー表示)
  • 記事先頭の▼ △をクリックすると参照関係のある発言をその発言から(は下、は上) へツリー表示します。 
  • スレッド最終行のまたは最新発言のをクリックするとスレッドの全記事を降順に表示します。(はツリー表示)
  • 投稿に添付は添付ファイル付き   
  • 新着記事は new!
  • スレッド1:Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について] ナオヤM  2022/08/14 15:19   閲覧数: 31748
    No.1  [ Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について ②] ナオヤM  2022/08/17 09:56
    No.3  [PHP7.4 対応の 新 Wiz スケジューラー を VPS サーバーにインストールした時のエラー対策] ナオヤM  2022/08/31 06:57
    No.2  [ Wiz スケジューラー(グループウェア)の PHP ヴァージョンアップ前後のスクリプト] ナオヤM  2022/08/17 11:47
    No.4  [ Re: Wiz スケジューラー(グループウェア)の PHP ヴァージョンアップ前後のスクリプト] ナオヤM  2022/12/02 16:07


    ◆ 全ての発言 (スレッドのツリー順に表示) (全部表示中)  戻る  逆順に表示

    スレッド1: Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について ATOM1.0 RSS2.0 RSS1.0 FEEDアイコン
    日時: 2022/08/14 15:19
    名前: ナオヤM ID:M0pcex9Y メールを送信する
    参照: https://vmorita.com/bbs/wizphp/forum.shtml?room=wizphp

    ネット社会になって SNS 全盛の昨今、無料のグループウェア(スケジューラー)など見向きもされない時代なのかもしれません。しかし僕がリストラになった18年前はサイボーズなどのグループウェアは高価で、仲間と始めたベンチャー企業にはとても手が出ない代物でした。そこで探した結果「システムコンサルタント社」が提供する La!Cooda WIZ というスケジューラーは無料ながら本格的な内容でベンチャー企業には十分な機能を備えていました。サポートは有料だったと思いますが、僕がエンジニアだったこともあり、PHP を勉強しながら何とかサポートを受けずに立ち上げることが出来ました。 その後クロスサイトスクリプティング対策を行いTask機能を追加するなどバージョンもアップして V1.42 になった後、サービスが中止され会社も消滅してしまいました。 さすがに数百~数千行もある PHP プログラム数十本からなるソフトウェアを無料でサポートするのは難しかったのでしょう。当時は PHP5.2 の時代で文字コードも EUC_JP でした。

    その後も 2009 年頃まではゴールデンウィークの祝日変更や 2100 年までの春分の日・秋分の日の自動計算などの改良をしながら文字コードを UTF-8 にするなど個人的に細々とメンテしてきたのですが、PHP5.4 になって、クロスサイトスクリプティング対策の htmlspecialchars() の第4引数に "utf-8" とコード指定しないと動作しなくなったので苦労したのを覚えています。

    そのベンチャー企業も退職して年金生活者となり、PCもプログラミングどころかキーボードの打ち込みもミスだらけで PHP など無縁の生活をしていたのですが、コロナ不況下でソフト担当者をリストラしたベンチャーの社長から呼び出しを受け、無給で手伝うことになってしまいました。ところがその会社が WIZ を退職時そのままの状態で、令和の天皇誕生日も海の日・山の日の祝日も対策しないまま使い続けているのを目の当たりにして、何とかしなきゃと思い、PHP アップデート対応を始めることになりました。
    No.1: Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について ②
    日時: 2022/08/17 09:56
    名前: ナオヤM ID:jb/jW0RU メールを送信する
    参照: https://vmorita.com/bbs/wizphp/forum.shtml?room=wizphp

    PHP のバージョンが 7 になって WIZ を起動してみましたが全く動作しません。  ログインもできないので PHP の ディスプレーエラーを ONにして致命的エラーの内容を見てみると、関数 ereg(), ereg_replace()、split() ををそれぞれ preg 関連の関数に置換しなければいけないらしい。しかもこれらの ereg 関連の関数はそれらの第1引数で与える"正規表現"を preg 関数では "/正規表現/" のようにデリミターで囲んで渡さなければいけない、正規表現に使われる制御文字は \ でエスケープが必用、など結構大変です。 ほかにも、・関数に渡す引数は重複してはいけないなどの制約があり、また Fatal Error ではなく、Depreciated ですが宣言されたクラス名と同じ名前のメソッドのコンストラクターは別途 __construct__ 宣言が必用など変更箇所が続出して、とてもスクリプトを追っかけて一々修正していくのでは困難と思われました。

    そこで、それらの変更箇所を検索して、決まった手順で自動的に修正する PHP ソフトを作って見ることにしました。始めは一つひとつの項目を特定のファイルに適用し、それが上手くいくとディレクトリ全体、更には再帰的にプロジェクト全体に適用という風に徐々に増やして、複数項目を一挙に処理する様にしました。 こうして開発したアプリ修正ソフトを WIZ プロジェクトに適用した結果、夫々の項目毎に処理したファイルの合計が 103 ファイル、適用箇所は数百箇所以上に及び、WIZ_V1.42_with_task は PHP7.4 で一応動作するようになりました。 自動修正では処理し切れていない箇所もあると思いますが、思っていたより処理結果が良いようなのでここで発表することにしました。 残った問題点は追々検討することとして皆さんのご意見をお聞かせ下さい。

    自動修正ソフトは linux 上の WIZ がインストールされたサーバーの web root 以下に maintenance ディレクトリを作成し、その配下の index.html を、PC からブラウザでアクセスして処理するようにしています。 maintenance.tar.gz にはディレクトリと配下の index.html, phpupdate.php というアプリ自動修正ソフトと css, 画像データなどが一括して入っています。 linux サーバーなどにインストールしてお使いください。
    1. maintenance.tar.gz

    maintenance.tar.gz
    No.3: PHP7.4 対応の 新 Wiz スケジューラー を VPS サーバーにインストールした時のエラー対策   [No.1への返信]
    日時: 2022/08/31 06:57
    名前: ナオヤM ID:v0vXUs8A メールを送信する
    参照: http://viola.vmorita.com/bbs/wizphp/forum.shtml

    ● 上の記事で、筆者の独自 VPS にインストールした WIZ が最初うまく動作しませんでした。 PHP や PostgreSQL のパージョンは PHP7.4, PostgreSQL9.6 とターゲットどおりであるにも拘らずです。

    ● 理由は2つありました。 1つは最近の Apache5.4 (HTTPD) はハイ・トラフィックに適応するため、MPM (Multi Processing Module) のモードが以前の prefork ではなく、event になっていることに因ります。この変更により、PHP を実行するモジュールががアパッチの mod_php では無く php-fpm という別プロセスになったため、そのディレクトリのアパッチの挙動を決める .htaccess に PHP_flag や PHP_VLUE 等の記述があるとアパッチがエラーになるためです。 その為 .htaccess に記述されていた PHP の挙動に関する項目は、 .user.ini という別ファイルに php.ini と同じ記述形式で書き出す必用がありました。

    ● もう1つは、デフォルトではブラウザでアパッチをアクセスした時に実行するユーザ・グループが apache:apache で設定されていたり、PHP のセッション情報を格納するディレクトリ (/var/lib/php/session) の所要者が root:root でパーミッションが 755 になっていたりするからです。WIZ では社員情報をクッキーにしてユーザーに喰わせ、それをサーパー側ではセッション・ディレクトリに格納して処理しているようです。僕はセキュリティー上、アパッチの実行ユーザを apache ではなく www にしているので "chown -R root:www /var/lib/php/" 及び "Chmod -R g+w /var/lib/php" のコマンドを打って解決しました。

    皆さんのご参考になれば幸いです。           ナオヤM
    No.2: Wiz スケジューラー(グループウェア)の PHP ヴァージョンアップ前後のスクリプト
    日時: 2022/08/17 11:47
    名前: ナオヤM ID:jb/jW0RU メールを送信する
    参照: https://vmorita.com/bbs/wizphp/forum.shtml?room=wizphp

    PHP バージョンアップに伴う苦労話をただ聞かされてもピンと来ないと思いますので、PHP バージョンアップ前後の WIZ スクリプトをここにアップしますので、実際に見て頂こうと思います。 PHP バージョンアップ後のスクリプトのschedule.php には バージョンアップに対応した修正以外に、令和の天皇誕生日、海の日・山の日の祝日変更も含まれています。 (次節のお試し URL は筆者の PC 内のサーバーだったため電源を切っている間はアクセスできませんでした。それでは都合が悪いと思い、筆者のもう一つの公開 VPS にインストールし直しました。 すると想定外のトラブルが発生したため、説明書などを書き直して、r1 バージョンに差し替えました。)

    WIZ スケジューラーの内容につきましては、僕の実験用サーバーに設置した PHP アップデート後の以下の URL にアクセスしてみて下さい。
    https://vmorita.net/wiz/index.php (ID: guest, PW: guest0)
    二た昔前のものですが、WIZ スケジューラーの機能が実感できると思います。

    機械的に自動修正したスクリプトではまだ不具合があったり、PHP アップデートに関しても、色々なご意見があると思いますので、次の FAQ スレッドで皆様の質問やご感想をお待ちしております。それではよろしくお願いします。                                           ナオヤM

    1. PHP バージョンアップ前の WIZ スクリプト

    wiz142plus_utf8_php54_r1.tar.gz
    2. PHP バージョンアップ後の WIZ スクリプト 2

    wiz142plus_utf8_php74_r1.tar.gz
    No.4: Re: Wiz スケジューラー(グループウェア)の PHP ヴァージョンアップ前後のスクリプト   [No.2への返信]
    日時: 2022/12/02 16:07
    名前: ナオヤM ID:PbekWzKA メールを送信する
    参照: https://viola.vmorita.com/bbs/wizphp/forum.shtm

    wizphp フォーラム・ファンの皆さん、こんにちは。

    自宅のPCの動作が不安定になったので、別に中古のPCをゲットしてVirtualBox7.04にAlmaLinux8.7をインストールし直して、Apache2.4.54, PHP7.4.33, PostgreSQL14.6をDNFで入れてwizを再インストールしてみました。 今度のPCはCPUをインテル i-5 RAM を 8GB と前よりSPECを落としたにも関わらず Windows11 Pro が結構早くてサクサク動きます。

    インストールの際、installation_for_linux_pgsql.txt の記述が結構違っていたので訂正しました。 MySQLの記述は書き直していないので、MySQL でインストールする場合はポスグレの例を参考にして解釈してください、僕は Apache の実行ユーザは www としていますが、この説明書では Apache のデフォルト通り実行ユーザは apache としてあります。 installation_for_linux_pgsql.txt 以外の スクリプトなどは一切手を入れていないので前にリリースした r1 との違いは無いのですが、一応 r2 として全体を再リリースします。 ポスグレは最新に近いバージョン 14 でも問題なく動いているようです。 ご質問等ありましたら FAQ スレッドで投稿してください。 宜しくお願いします。

                                           ナオヤM

    1. installation_linux_pgsql.txt

    installation_for_linux_pgsql.txt
    2. wiz142plus_utf8_php74r2.tar.gz

    wiz142plus_utf8_php74_r2.tar.gz
    (全部表示中)  戻る  逆順に表示  スレッド一覧  新規スレッド作成