Recently I was adapting a newsletter plugin for Wordpress and needed the PHP mail() function for testing. However an Ubuntu desktop install is missing Sendmail – the MTA that PHP expects to find on a Linux PC.
I use a local Apache/MySQL server on a laptop to do a lot of my development – I don’t need a full mail server just to send mail.
Also SMTP servers on dynamically assigned IP addresses are so untrusted these days that you can be pretty much guaranteed that a decent spam filter will reject your email based on a RBL lookup. By using Google Mail’s authenticated SMTP service you bypass this restriction.
The lightweight solution is ssmtp.
Continue reading ‘PHP mail() with Ubuntu Desktop and Gmail’ »

Updated with more tests on 2010-05-16.
Click here to jump to the 2010-05-16 update…
The conventional wisdom always said that PHP’s include()/require() was quicker than include_once()/require_once(), but recently I came across an interesting post by Arin Sarkissian which suggests otherwise. Also I found more commentary on the performance benefit of using relative versus absolute paths in include()/require() and include_once()/require_once() statements (although the main article’s conclusions contradict Arin’s experiments). The Drupal developers discussed and benchmarked the relative/absolute include() issue too.
So in keeping with the spirit of quick and dirty experimentation I hacked up some code and ran some tests on include()/require() against include_once()/require_once() and on the relative/absolute path issue. The results are pretty surprising and I love to hear some views.
Continue reading ‘PHP: The include() include_once() performance debate’ »
Symptom:
- An XML file saved as something.php.html
- Apache was trying to parse it as PHP and throwing an error because Short_open_tag was ‘on’
Fix:
Add the following to an .htaccess file in the folder (or a parent folder):
php_value short_open_tag off
I don’t know if this is a ‘bug’ or a ‘feature’. I don’t see why Apache should be interpreting *.php.html files as PHP (BAD Apache) but now that the issue is fixed for me I am not too concerned.
Update: 2010-05-07:
Kae Varens already came across this and blogged about it in October 2008. It turns out that
- it’s Apache – not me!
- there is a lot more to this than meets the eye
If you manage your own Apache web server then Kae’s blog post is required reading.