SourceForge: Breaking Down the Barriers to Open Source Development
Creating the MySQL database (assuming MySQL version >= 3.22.25)
1) Install MySQL from http://www.mysql.com/
2) Choose a database name (let's say 'sourceforge' for the rest of
mysql -e "create database sourceforge"
3) Create the tables.
mysql sourceforge < db/SourceForge.sql
Configuring Apache with SSL (assuming Apache version >= 1.3.9 openssl version >= 0.9.4 mod_ssl version >= 2.4.10-1.3.9)
The best starting point is http://www.modssl.org/. There is very
little chance that your installed Apache server contains SSL, you'll
have to recompile and reinstall. I highly recommend to install Apache
it in a non-standard place. It won't interfere with your working
Apache, if any. And, more important, the installation process will
install sample configuration files instead of keeping them in the
source directory because you already have some installed.
1) Install openssl
2) Configure mod_ssl
3) Install Apache
Configuring Apache with PHP (assuming Apache version >= 1.3.9 and php version >= 4.0)
1) Create a file in the Apache document root named phpinfo.php
echo '< ? phpinfo(); ? >' > .../phpinfo.php
Try to load it with your browser using http://localhost/phpinfo.php.
If it shows an HTML page you already have php installed.
If the page shown contains the word MySQL you have php compiled with MySQL support.
If you see the page and find MySQL in it, you're finished with this chapter. Otherwise proceed to the following steps.
2) Make sure php4 is compiled in (note - SourceForge no longer works with php3).
Try to access http://localhost/server-info and search for php. If it's found somewhere in the page, the php module is available. If http://localhost/server-info does not work add the following lines to the access.conf file:
# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_info.c be loaded).
# Change the ".your_domain.com" to match your domain to enable.
< Location /server-info >
Deny from all
Allow from localhost
< /Location >
If you did not find php you'll have to recompile it yourself. See
http://www.php.net/ and remember that you must re-compile php with
3) Activate php.
In order to activate php the following lines must be found in the
LoadModule php_module modules/libphp.so
4) Enable index.php as a directory index in srm.conf.
DirectoryIndex index.html index.shtml index.cgi index.php
5) Add .php extension to srm.conf.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
6) Try loading http://localhost/phpinfo.php again.
Configuring php and Apache for SourceForge
1) Change the DocumentRoot
Since some scripts assume that the document root starts at the www directory, just say that the document root is this directory.
In access.conf substitute/clone the block for the new document root.
2) Type the URL http://localhost/ in your navigator.
You should see an error message like this:
Fatal error: Failed opening required 'pre.php' in /home/httpd/html/sf/index.php on line 9 meaning that Apache is properly configured as far as php is concerned.
3) Specify the include path.
You must tell php where the include files are. Add the full path to ../alexandria/www/include to the include_path variable of the php.ini file. Something like
include_path = /home/php:/home/loic/local/ports/alexandria/www/include
Alternatively you can add the following lines in httpd.conf:
< Directory / >
php_value include_path "/usr/local/htdocs/alexandria/www/include:."
< /Directory >
4) Include magic in php.ini.
magic_quotes_gpc = On ; magic quotes for incoming GET/POST/Cookie data magic_quotes_runtime = Off ; magic quotes for runtime-generated data, e.g. data from SQL, track_vars = On ; enable $HTTP_GET_VARS, $HTTP_POST_VARS and $HTTP_COOKIE_VARS arrays
5) Restart httpd
6) Type the URL http://localhost/ in your navigator. Two things may happen at that point:
a) You're redirected to http://sourceforge.net/ since that's what the library does when you're not using localhost in the URL.
b) You see an error message like this:
Fatal error: Failed opening required '/etc/local.inc' in database.php on line 11
In either cases it means that the pre.php file was found and that the include path is correct.
1) Create the /etc/local.inc file with the following:
$sys_dbname = "sourceforge";
// With a trailing /
2) Look at the home page http://localhost/
It should display well.
3) Create a user named admin
This user will automatically be assigned server wide administration permissions.