Apache HTTP Server module
のC++
(Ubuntu 16.04
)に次のコードがあります。C + + Apacheモジュールでファイルに書き込む方法は?
(std::ofstream
を使用して)ログにデバッグを書きたいのですが、何も表示されません。ログもファイルもありません。
また、以下のような、すでにhttp_log.h
にあるApacheが複数のログルーチンを使用しようとしましたが、何も書かれていません。
Apache module
のファイルにデバッグログを書き込むにはどうすればよいですか?
#include <httpd.h>
#include <http_log.h>
#include <http_core.h>
#include <http_protocol.h>
#include <http_request.h>
#include <apr_strings.h>
#include <iostream>
#include <fstream>
void write_something_to_a_file() // <---- DOESN'T WRITE TO FILE!
{
std::ofstream myfile;
myfile.open ("//home//myubuntu//myubuntu//textfile_1.txt");
myfile << "Writing this to a file.\n";
myfile.close();
}
static int myserver_handler(request_rec *r)
{
write_something_to_a_file(); // <-- DOESN'T WORK :(
ap_log_pid(p, "//home//myubuntu//myubuntu//textfile_2.txt"); //<-- DOESN'T WORK
return OK;
}
static void register_hooks(apr_pool_t *pool)
{
ap_hook_handler(myserver_handler, NULL, NULL, APR_HOOK_LAST);
}
module AP_MODULE_DECLARE_DATA myserver_module =
{
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
register_hooks
};
許可を得ることができますか?あなたはapacheサーバーが書き込み権限を持っている別の場所を試しましたか? – miradham
私はISAPIの経験があるだけですが、あなたのアプリケーションが実行するユーザーが前述のディレクトリに書き込む権限を持っている限り、ファイル書き込み機能は完璧に動作するはずです。私はこのデフォルトのユーザーがセキュリティ上の懸念から書き込みアクセス権を持っていないことを期待しています。 –