httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gio Pugliese <atla...@gmail.com>
Subject [users@httpd] Re: File i/o permission question
Date Tue, 30 Aug 2005 00:22:04 GMT
I was finally able to track down the problem. Unfortunately being a new 
developer with a new development server which I set up for development it 
appears I did not have the development server set up correctly. Apache was 
not loading as the apache user, group which is configurable in the 
httpd.conf, thus the process obviously did not have the rights to write to 
the system. I kept thinking there was a coding error when the it was a 
configuration issue. Sorry for the newbie mistake. :)


 On 8/29/05, Gio Pugliese <atlasgp@gmail.com> wrote: 
> 
> Hello, I would appreciate a point in the right direction concerning file 
> access within an apache module. I come from a win32 development background 
> and this is my first attempt writing an apache module. Using examples found 
> around the net and studying the various filters I have been able to write an 
> 'empty filter'. Before commencing 'fitlering' work I'm attempting to add 
> logging functionalilty to better track behavior within the module. I have 
> successfully passed initialization information via the http.conf file to 
> the module, however upon calling apr_file_open the server is reporting a 
> 'permission denied' error and not allowing me to create/write to the log 
> file. I have researched this basically all of today, looking through google 
> and through some of the other filters to observer there logging code and I 
> believe that I'm following the same path, however obviously something eludes 
> me. Here are a few points to consider - 
> 1 ) Filter is working. Although I cannot create my own log file, I am able 
> to dump the error the the error log
> 2 ) The file path appears correct. Based on the dump to the error log 
> heres how the path looks - /usr/local/apache2/logs/filter_log
> 3 ) I actually created a file called filter_log and changed the 
> permissions to owner: apache, group: apache. No dice
> 
> If someone could be so kind to point out the err of my ways or perhaps 
> point me to the right documentation i would trully appreciate it. Thxs in 
> advance.
> Here's a sample of the code ( I have included the permissions passed as 
> well )...
> 
> static int xfer_flags = (APR_WRITE | APR_APPEND | APR_LARGEFILE);
> static apr_fileperms_t xfer_perms = ( APR_UREAD | APR_UWRITE |
> APR_GREAD | APR_WREAD ); // I ALSO TRIED APR_OS_DEFAULT
> 
> static apr_status_t test_filter_in(ap_filter_t *f, apr_bucket_brigade *b, 
> ap_input_mode_t mode, apr_read_type_e block,
> apr_off_t readbytes)
> {
> apr_bucket *e;
> 
> apr_file_t *fd = NULL;
> apr_status_t status;
> apr_status_t rv; 
> 
> status = ap_get_brigade(f->next, b, mode, block, readbytes);
> // Get the first bucket on our brigade
> e = APR_BRIGADE_FIRST(b);
> 
> // If the first bucket is empty, we have an empty brigade. Exit the 
> function
> if (e->type == NULL) {
> return status;
> }
> 
> conn_rec *c = f->c;
> pt_filter_conf_t *s_cfg = ap_get_module_config( 
> c->base_server->module_config, &test_module); 
> const char *fname = s_cfg->strLogFilePath;
> 
> rv = apr_file_open(&fd, fname, xfer_flags, xfer_perms, f->c->pool);
> if ( APR_SUCCESS != rv ) {
> ap_log_error(APLOG_MARK, APLOG_ERR, rv, c->base_server,
> "could not create filter log at path %s", fname);
> return status;
> }
> ...
> }
>

Mime
View raw message