Skip to main content

Incoming email to PHP: need to write attachments to web directory


I have a PHP script that is accepting all emails (wildcard) to my domain, and inserting the data into MySQL.



The beginning of the script has this line:




#!/usr/bin/php -q



It then looks like a regular PHP script. The part that writes the attachments to disk seems to work but the permissions on the new folders where they're stored were created by the 'nobody' user.



How can I edit permissions so that after these files are written to disk, they can be accessed by the webserver/webserver user?



Thanks for the help!



(Fedora 14 Linux server, Postfix)


Source: Tips4allCCNA FINAL EXAM

Comments

  1. What user is PHP running as? PHP does have a chmod function, but you can't elevate privileges higher than what the user PHP is running as.

    If that doesn't do the trick, could you chown the attachment directory to be owned by whatever user PHP is running as?

    ReplyDelete
  2. I suggest you do the following:


    chown -R apache:apache directory_name


    This is because PHP runs as the web server user (I believe this is apache on Fedora). Otherwise, if you are using a different web server, then change the ownership of the files to that web server's user (you are sure to find this in the server's configuration files somewhere).

    ReplyDelete
  3. You need sticky bits on the file server level.

    setting the sui/sgid bits

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.