<p>When a script runs under Apache, I insert <code>$_SERVER['SERVER_NAME']</code> value into an error reporting e-mail message.</p>

<p>However, if a Web script forks a "worker" job with <code>nohup php ...</code>, <code>$_SERVER['SERVER_NAME']</code> appears to be empty there. Thus, if an error occurs, it's reported without a host name.</p>

<p>Can I reliably get the host name by means of PHP, without calling Unix <code>hostname</code> command? </p>

php_uname("n")
(PHP 4 >= 4.0.2, PHP 5)
php_uname — Returns information about the
  operating system PHP is running on
php_uname() returns a description of the operating system PHP is
  running on. This is the same string you see at the very top of the
  phpinfo() output. For the name of just the operating system, consider
  using the PHP_OS constant, but keep in mind this constant will contain
  the operating system PHP was built on.
On some older UNIX platforms, it may not be able to determine the
  current OS information in which case it will revert to displaying the
  OS PHP was built on. This will only happen if your uname() library
  call either doesn't exist or doesn't work.