I'm using the SMTP mailer and I keep on getting a timeout message
well before the X seconds I set it for. What gives?
PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout
early. You can fix this by re-compiling PHP 4.0.4pl1 with this fix:
timeoutfix.diff. Otherwise you can wait
for the new PHP release.
I am concerned that using include files will take up too much
processing time on my computer. How can I make it run faster?
PHP by itself is very fast. Much faster than ASP or JSP running on
the same type of server. This is because it has very little overhead compared
to its competitors and it pre-compiles all of
its code before it runs each script (in PHP4). However, all of
this compiling and re-compiling can take up a lot of valuable
computer resources. However, there are programs out there that compile
PHP code and store it in memory (or on mmaped files) to reduce the
processing immensely. Two of these: APC
(Alternative PHP Cache) and Afterburner
(Win32 download)
are excellent free tools that do just this. If you have the money
you might also try Zend Cache, it is
even faster than the open source varieties. All of these tools make your
scripts run faster while also reducing the load on your server. I have tried
them myself and they are quite stable too.
What mailer gives me the best performance?
On a single machine the mail() or sendmail mailers give you the best
performance because they do not have the added overhead of SMTP.
If you have you have your mail server on a another machine then
SMTP is your only option, but you do get the benefit of redundant
mail servers.
When I try to attach a file with on my server I get a
"Could not find {file} on filesystem error". Why is this?
If you are using a Unix machine this is probably because the user
running your web server does not have read access to the directory
in question. If you are using Windows, then the problem probably is
that you have used single backslashes to denote directories ("\").
A single backslash has a special meaning to PHP so these are not
valid. Instead use double backslashes ("\\") or a single forward
slash ("/").