FreeBSD: Fatal error: Call to undefined function session_name()

I just setup Apache and PHP on FreeBSD 9, configured a vhost, then when I tried to access it, I got the following error:

Fatal error: Call to undefined function session_name() in /srv/www/sugaku.domain.com/inc/init.php on line 144

so apparently, the “session” support is missiong from php5 installation. To fix it, I need to install php5-session port.

Let’s do it.

# whereis php5-session
php5-session: /usr/ports/www/php5-session
portmaster www/php5-session

If the installation is successful, then we can restart apache.

# service apache22 restart

or

# /usr/local/etc/rc.d/apache22 restart

That’s it.

Credit: http://forums.freebsd.org/showthread.php?t=12565

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Everytime I start apache2 (# apache2ctl start) this message is dispalyed:

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Well, the site is still running despite the above notification.

To fix it, we need to edit the /etc/apache2/httpd.conf or /etc/apache2.conf and add the following line:

ServerName nameofserver

Now, restart the apache server (# apache2ctrl restart) and should no loger see the previous message.

Enable mod_userdir for Apache2 on Debian

By default Apache2 doesn’t enable mod_userdir, a module to enable all users in your Linux system to host web pages. On Debian, it’s very to enable this mod, and probably with other modules as well. There is no need to edit the config file manually.

There are two tools offered by Debian to assist you with enabling and disabling the modules in Apache2: a2enmod and a2dismod. As the name inferred, a2enmod enables the modules, while the a2dismod does the opposite.

In my case, all I need to do is to type the following commands as the root (, or using sudo):

# sudo a2enmod mod_userdir

Then restart the apache2 server:

# sudo /etc/init.d/apache2 force-reload