C++ FCGI でのバックエンド サーバーの作成

3D エディタ Cube Art Project のサーバー部分をどのように書いたかについての簡単なメモです。サーバーは Web バージョン ユーザーの作業を保存して表示し、保存ボタンを使用して短い URL を提供する必要があります。当初はバックエンドにSwift/PHP/Ruby/JSなどの最新言語を使いたかったのですが、VPSの特性を見てサーバーをC/C++で書くことにしました。
まず、サーバーに libfcgi をインストールし、Web サーバー用の fcgi サポート モジュール (Ubuntu と Apache など) をインストールする必要があります。

sudo apt install libfcgi libapache2-mod-fcgid

次に、config でモジュールを構成します。

FcgidMaxProcessesPerClass –クラスあたりの最大プロセス数ですが、大きな負荷が予想されないため1プロセスに設定しました。
AddHandler fcgid-script .fcgi – fcgi モジュールを開始するファイル拡張子。
CGI アプリケーションの起動元となるフォルダーを構成に追加します。

次に、fcgi サポートを備えた C/C++ でアプリケーションを作成し、アセンブルして、/var/www/html/cgi-bin フォルダーにコピーします。
コードとビルド スクリプトの例:
https://gitlab.com/demensdeum/cube-art-project-server/-/blob/master/src/cubeArtProjectServer.cpp
https://gitlab.com/demensdeum/cube-art-project-server/-/blob/master/src/build.sh
この後、Web サーバーを再起動する必要があります。

systemctl restart apache2

次に、chmod 経由で cgi-bin フォルダーを実行するために必要な権限を入力します。
この後、CGI プログラムは、Cube Art Project サーバーの例のリンクを使用してブラウザ経由で動作するはずです。
http://192.243.103.70/cgi-bin/cubeArtProject/cubeArtProjectServer.fcgi
何かが動作しない場合は、Web サーバーのログを確認するか、デバッガーを使用して実行中のプロセスに接続します。デバッグ プロセスは、通常のクライアント アプリケーションのデバッグ プロセスと異なっていてはなりません。

ソース

https://habr.com/ru/post/154187/http://chriswu.me/blog/writing-hello-world-in-fcgi-with-c-plus-plus/

ソースコード

https://gitlab.com/demensdeum/cube-art -プロジェクトサーバー