Diff for /wikisrc/pkgsrc/how_to_install_a_lamp_server.mdwn between versions 1.1 and 1.2

**LAMP** is a an acronym for a combined set of software to run a Webserver containig following Software Products: **Apache, Mysql Perl, Python or PHP**. The "L" stands for Linux, therefore there is also an acronym named **WAMP** representing the Windows Operating System. This also means that the title of this article is misleading. The approach is to install the same combined set of software, but using NetBSD as the Operating System instead of Linux.

**LAMP** is a an acronym for a combined set of software to run a Webserver containig following Software Products: **Apache, Mysql Perl, Python or PHP**. The "L" stands for Linux, therefore there is also an acronym named **WAMP** representing the Windows Operating System. This also means that the title of this article is misleading. The approach is to install the same combined set of software, but using NetBSD as the Operating System instead of Linux.

We will install all components using pkgsrc, building all packages from source. An installation using existing binaries provided by ftp.netbsd.org is not possible.

We will install all components using pkgsrc, building all packages from source. An installation using existing binaries provided by ftp.netbsd.org is not possible.

**Contents**

**Contents**

[[!toc]]

[[!toc]]

# Installing the Apache webserver

# Installing the Apache webserver

The new Apache 2.2 server comes with two different threading models from which [prefork](http://httpd.apache.org/docs/2.2/mod/prefork.html) is installed by default. It is **not** recommended to use the Worker model, if you wish to use Apache and PHP. As that is the case, we will install a default Apache 2.2 server.

The new Apache 2.2 server comes with two different threading models from which [prefork](http://httpd.apache.org/docs/2.2/mod/prefork.html) is installed by default. It is **not** recommended to use the Worker model, if you wish to use Apache and PHP. As that is the case, we will install a default Apache 2.2 server.

# cd /usr/pkgsrc/www/apache22

# cd /usr/pkgsrc/www/apache22

# make install clean clean-depends

# make install clean clean-depends

This will install the Apache 2.2 server and all it's dependencies. The package currently depends on 10 other packages like perl, gmake and libtool to name a few. All dependencies are build before the Apache webserver is build, otherwise it wouldn't be dependencies.

This will install the Apache 2.2 server and all it's dependencies. The package currently depends on 10 other packages like perl, gmake and libtool to name a few. All dependencies are build before the Apache webserver is build, otherwise it wouldn't be dependencies.

If your build was successful, you should now edit the Apache configuration file _`/usr/pkg/etc/httpd/httpd.conf`_ to fit your needs. At least set the `Listen` Attribute and your `ServerName`. Please ensure that if your machines hostname does not globally resolve, to put it into your `/etc/hosts` file, otherwise Apache will refuse to start.

If your build was successful, you should now edit the Apache configuration file _`/usr/pkg/etc/httpd/httpd.conf`_ to fit your needs. At least set the `Listen` Attribute and your `ServerName`. Please ensure that if your machines hostname does not globally resolve, to put it into your `/etc/hosts` file, otherwise Apache will refuse to start.

If you wish to start the Apache webserver at boottime, please copy the rc.d example script from `/usr/pkg/share/examples/rc.d/apache` to `/etc/rc.d` and then add `apache=yes` to your `/etc/rc.conf` file.

If you wish to start the Apache webserver at boottime, please copy the rc.d example script from `/usr/pkg/share/examples/rc.d/apache` to `/etc/rc.d` and then add `apache=yes` to your `/etc/rc.conf` file.

# cp /usr/pkg/share/examples/rc.d/apache /etc/rc.d

# cp /usr/pkg/share/examples/rc.d/apache /etc/rc.d

If you want to copy the rc.d scripts automatically with pkgsrc, you can use:

If you want to copy the rc.d scripts automatically with pkgsrc, you can use:

PKG_RCD_SCRIPTS=YES

PKG_RCD_SCRIPTS=YES

in your /etc/mk.conf

in your /etc/mk.conf

You could now start, stop and restart the Apache Webserver using _apachectl_ or using boot script _/etc/rc.d/apache_

You could now start, stop and restart the Apache Webserver using _apachectl_ or using boot script _/etc/rc.d/apache_

For much more Options, consider reading the MySQL [Documentation](http://dev.mysql.com/doc/refman/5.0/en/).

# Installing the PHP Module for Apache

# Installing the PHP Module for Apache

# cd /usr/pkgsrc/www/ap-php

# cd /usr/pkgsrc/www/ap-php

# make install clean

# make install clean

This will install by default the latest Version of PHP 5.x and the PHP5 Module for Apache 2.2

This will install by default the latest Version of PHP 5.x and the PHP5 Module for Apache 2.2

## Configuring PHP

## Configuring PHP

You should now add the Module and the PHP Handlers to your Apache Configuration File `/usr/pkg/etc/httpd/httpd.conf`

You should now add the Module and the PHP Handlers to your Apache Configuration File `/usr/pkg/etc/httpd/httpd.conf`

Add following lines:

Add following lines:

LoadModule php5_module /usr/pkg/lib/httpd/mod_php5.so

LoadModule php5_module /usr/pkg/lib/httpd/mod_php5.so

and

and

AddType application/x-httpd-php .php

AddType application/x-httpd-php .php

and if you wish

and if you wish

DirectoryIndex index.html index.php

DirectoryIndex index.html index.php

# Installing the MySQL module for PHP

# Installing the MySQL module for PHP

This step is important and enables you to make mysql database connections from your php skript.

This step is important and enables you to make mysql database connections from your php skript.

cd /usr/pkgsrc/databases/php-mysql/

cd /usr/pkgsrc/databases/php-mysql/

make install clean

make install clean

Now edit `/usr/pkg/etc/php.ini` and add the line

Now edit `/usr/pkg/etc/php.ini` and add the line

extension=mysql.so

extension=mysql.so

You need this to enable mysql functions in your php module.

You need this to enable mysql functions in your php module.

Now restart your Apache webserver. To test, if PHP is working, create a small file called test.php in your document root directory, which is by default `/usr/pkg/share/httpd/htdocs`, containing only one line with the function phpinfo().

Now restart your Apache webserver. To test, if PHP is working, create a small file called test.php in your document root directory, which is by default `/usr/pkg/share/httpd/htdocs`, containing only one line with the function phpinfo().

<?php phpinfo(); ?>

<?php phpinfo(); ?>

if you use php5 and wish to use short tags like `<? phpinfo() ?>`, then edit your `/usr/pkg/etc/php.ini` file and change option `short_open_tag = Off `to `On` to make this line working. In PHP5 short_open_tag is off by default.

if you use php5 and wish to use short tags like `<? phpinfo() ?>`, then edit your `/usr/pkg/etc/php.ini` file and change option `short_open_tag = Off `to `On` to make this line working. In PHP5 short_open_tag is off by default.