Virtual hosts and PHP "downloads": php5 and apache22 on FreeBSD6.1-STABLE

Mikhail Goriachev mikhailg at
Wed Jun 7 02:27:22 UTC 2006

John DeStefano wrote:
> First and foremost, thanks for the reply.
> On 6/6/06, fbsd <fbsd at> wrote:
>> The php5 port is broken in 6.1.
>> It no longer defaults to activating the php/apache module.
> Thanks for that. I do appreciate it.
>> This has been covered in great detail on this list in the past 6
>> weeks which you would have found out if you reviewed the list
>> archives before posting this question.
> I may have missed a week or two, but the only responses I've seen
> personally have been "see /usr/ports/UPDATING", which I did.  I'm not
> thrilled with the stock "RTFM" post, but I guess that's par for the
> course.
>> After downloading the 6.1 version php5 port config files you have to
>> do "make config" and select the apache module. The "make install"
>> will automatically make the correct changes to your httpd-config
>> file for serving up php pages correctly. php5-extensions is not
>> normally needed.
> I did that.  That's pointed out in /usr/ports/UPDATING.
> Unfortunately, it didn't automatically fix the issue for me.
>> Your other httpd-config problems are due to you using apache22
>> instead of apache13 which is the rock hard production version of
>> Apache web server. Apache22 is generally considered as the
>> developmental version.
> I was running 1.3 before my BSD upgrade to 6.1-STABLE.  There were
> security issues with 1.3 that were not resolved at the time of my
> upgrade.  And I assumed with the package changes to PHP5 in 6.1 that
> going with an updated version of apache as well would be the best
> method.  If you're saying I should revert back to 1.3, should I also
> revert to an earlier version of PHP5, or is the latest and greatest
> still best compatible with apache13?
> Thank you,
> ~John
>> -----Original Message-----
>> From: owner-freebsd-questions at
>> [mailto:owner-freebsd-questions at]On Behalf Of John
>> DeStefano
>> Sent: Tuesday, June 06, 2006 3:46 PM
>> To: freebsd-questions at
>> Subject: Virtual hosts and PHP "downloads": php5 and apache22 on
>> FreeBSD6.1-STABLE
>> I upgraded my system from 5.4-RELEASE to 6.1-STABLE last week, and
>> my
>> web server immediately stopped serving PHP pages, where I had no
>> problem doing so before.  Instead of processing the PHP code on the
>> server and displaying the result in a browser, browsing to any page
>> containing PHP code resulted in a prompt to download the PHP page as
>> a
>> file.
>> /usr/ports/UPGRADING mentions that PHP has been streamlined and must
>> be recompiled to work with Apache and other packages. After
>> deinstalling, configuring (where applicable), and reinstalling PHP5,
>> php5-extensions, and apache2 to the latest versions, not only were
>> PHP
>> files not being served, but my web server was toast:
>> "Forbidden You don't have permission to access / on this server."
>> I edited the new apache config file (now located in
>> /usr/local/etc/apache22/httpd.conf) with my system information,
>> including a DocumentRoot path. But when I started apache, I got some
>> very peculiar errors:
>> "Warning: DocumentRoot [/www/docs/] does not
>> exist
>> Warning: DocumentRoot [/www/docs/] does not
>> exist"
>> Not only did I confirm beforehand that I had set the DocumentRoot
>> path, and that apache was using the correct config file... but these
>> "dummy" paths didn't exist in the config file!  I learned eventually
>> that a new apache directive splits out virtual host directives to a
>> new include file (/usr/local/etc/apache22/extra/httpd-vhosts.conf).
>> Then I learned after getting a server warning ("NameVirtualHost *:80
>> has no VirtualHosts") that the syntax has been slightly modified, so
>> that the IP/port value of each VirtualHost specification must match
>> that of the NameVirtualHost directive (i.e., "NameVirtualHost *:80"
>> and "<VirtualHost *:80>").
>> Still having trouble though: my "main" site loads properly, but the
>> other virtual hosts aren't. Browsing to any virtual host address
>> other
>> than the default results in either the wrong content or an error.
>> Here's what my httpd-vhosts.conf looks like:
>> NameVirtualHost *:80
>> <VirtualHost *:80>
>> ServerName
>> ServerAlias *
>> DocumentRoot /usr/www
>> ErrorLog /var/log/httpd-SiteA-error.log
>> CustomLog /var/log/httpd-SiteA-access.log combined
>> </VirtualHost>
>> <VirtualHost *:80>
>> ServerName
>> ServerAlias *
>> DocumentRoot /usr/www2
>> ErrorLog /var/log/httpd-SiteB-error.log
>> CustomLog /var/log/httpd-SiteB-access.log combined
>> </VirtualHost>
>> So, what's happening is that SiteA works as expected, but browsing
>> to
>> SiteB brings you to SiteA, or doesn't load at all ("403" error).
>> In addition, I'm back to my original problem, where PHP files are
>> not
>> loading, and browsing to a PHP page prompts the user to download the
>> page as a file.
>> Any help on either the virtual hosts or the PHP download issue would
>> be greatly appreciated.

I'm using Apache22 and PHP4. Haven't encountered any problems yet. You
could try PHP4 and see how it goes. As stated above, "make config" and
select apache module. Once you're up and running, you can troubleshoot
your virtual hosts.


Mikhail Goriachev

Telephone: +61 (0)3 62252501
Mobile Phone: +61 (0)4 38255158
E-Mail: mikhailg at

PGP Key ID: 0x4E148A3B
PGP Key Fingerprint: D96B 7C14 79A5 8824 B99D 9562 F50E 2F5D 4E14 8A3B

More information about the freebsd-questions mailing list