実現したいこと
Apacheのモジュールから実際のディレクトリにファイルを保存したいです
問題
仮想的なディレクトリ?にファイルが保存されてしまいます
該当のソースコード
mod_filetest.c
C
1/* 2** mod_filetest.c -- Apache sample filetest module 3** [Autogenerated via ``apxs -n filetest -g''] 4** 5** To play with this sample module first compile it into a 6** DSO file and install it into Apache's modules directory 7** by running: 8** 9** $ apxs -c -i mod_filetest.c 10** 11** Then activate it in Apache's apache2.conf file for instance 12** for the URL /filetest in as follows: 13** 14** # apache2.conf 15** LoadModule filetest_module modules/mod_filetest.so 16** <Location /filetest> 17** SetHandler filetest 18** </Location> 19** 20** Then after restarting Apache via 21** 22** $ apachectl restart 23** 24** you immediately can request the URL /filetest and watch for the 25** output of this module. This can be achieved for instance via: 26** 27** $ lynx -mime_header http://localhost/filetest 28** 29** The output should be similar to the following one: 30** 31** HTTP/1.1 200 OK 32** Date: Tue, 31 Mar 1998 14:42:22 GMT 33** Server: Apache/1.3.4 (Unix) 34** Connection: close 35** Content-Type: text/html 36** 37** The sample page from mod_filetest.c 38*/ 39 40#include "httpd.h" 41#include "http_config.h" 42#include "http_protocol.h" 43#include "ap_config.h" 44 45#include <stdio.h> 46 47/* The sample content handler */ 48static int filetest_handler(request_rec *r) 49{ 50 if (strcmp(r->handler, "filetest")) { 51 return DECLINED; 52 } 53 r->content_type = "text/html"; 54 55 if (!r->header_only){ 56 FILE *fp; 57 fp = fopen("/var/tmp/fssv.txt", "w"); 58 fclose(fp); 59 60 FILE *fp2 = fopen("/var/tmp/fssv.txt", "r"); 61 if (fp2 == NULL){ 62 ap_rputs("Not found", r); 63 } 64 65 ap_rputs("The sample page from mod_filetest.c\n", r); 66 } 67 return OK; 68} 69 70static void filetest_register_hooks(apr_pool_t *p) 71{ 72 ap_hook_handler(filetest_handler, NULL, NULL, APR_HOOK_MIDDLE); 73} 74 75/* Dispatch list for API hooks */ 76module AP_MODULE_DECLARE_DATA filetest_module = { 77 STANDARD20_MODULE_STUFF, 78 NULL, /* create per-dir config structures */ 79 NULL, /* merge per-dir config structures */ 80 NULL, /* create per-server config structures */ 81 NULL, /* merge per-server config structures */ 82 NULL, /* table of config file commands */ 83 filetest_register_hooks /* register hooks */ 84};
fopenでファイルを作成して、存在を確認します
存在していなかったら Not found という文字を返します
default-ssl.conf
<VirtualHost *:443> DocumentRoot path ServerName domain SSLCertificateFile path SSLCertificateKeyFile path SSLCertificateChainFile path <FilesMatch ".filetest$"> SetHandler filetest </FilesMatch> </VirtualHost>
実行結果
Not found は表示されませんでした
ファイルは作成されたようですが、シェルから ls で存在を確認したところ、存在していないようでした
sudo を付けても同じでした
実際のディレクトリに保存することは可能でしょうか
バージョン
Ubuntu 20.04.2
Apache 2.4.41
回答1件
あなたの回答
tips
プレビュー