
サーバーをインストールしているのでnginx
、配布する必要があります。そのため、エンド ユーザーは任意のディレクトリから実行できます。nginx
実行ファイルは、コンパイル時に指定されたパスでハードコードされています。
これをポータブルにするにはどうすればいいでしょうか?
編集:
その実行ファイルに変更を加えたところ、nginx
起動せず、代わりに次のようなエラーがスローされます。セグメンテーション違反のコアダンプ解決にご協力ください。
答え1
4つの選択肢が思い浮かびます:
- 相対ディレクトリを使用するようにアプリケーションをコーディングし、データ ディレクトリ ツリーの先頭から起動するように指定します。
$HOME
データの場所を定義するために環境変数を設定するように指定します (新しい明示的な変数を定義しない場合は、ディレクトリからの相対パスを使用できます)。.app
または構成ファイルを使用して.config/app
場所を指定します。- 固定ディレクトリ パスを使用してコードを記述し、実際の場所を指すシンボリック リンクがこの場所に作成されるように指定します。
セグメンテーション違反に関しては、エラー チェック (ファイル ポインターが null でないことを確認するなど) を忘れたようです。