Table of contents
- 1. Introduction
-
- 1.1. Concepts
- 1.2. Revision history
- 1.3. Copyright
- 1.4. Disclaimer
- 2. Download software
- 3. MySQL database installation
- 4. Glib, Expat-lib and Berkeley-DB installation
- 5. OpenSSL and mod_ssl installation
- 6. Apache httpd installation
- 7. PHP4 installation
- 8. Midgard installation
-
- 8.1. Midgard-lib installation
- 8.2. Midgard-data installation
- 8.3. mod_midgard installation
- 8.4. midgard-php4 installation
- 9. Apache configuration
- 10. Midgard configuration
- 11. Testing it all
- 12. nAdmin installation
1. Introduction
Note: this document is now outdated, and is here for reference only,
since there are Debian packages for Midgard nowadays. Use them for a
much more convenient install.
This setup is well suited for a VPS provider, such as DigitalOcean.
1.1. Concepts
Throughout this document, you will see either hash symbols (#) or dollar signs
($) in front of the commands. These indicate whether the command should be run
as a regular user or with superuser privileges (ie. root). Do not include these
in the commands! And by the way, copy-pasting commands is not such a great
idea.
1.4. Disclaimer
Use the information in this document at your own risk. I disavow any potential
liability for the contents of this document. Use of the concepts, examples,
and/or other content of this document is entirely at your own risk.
All copyrights are owned by their owners, unless specifically noted otherwise.
Use of a term in this document should not be regarded as affecting the
validity of any trademark or service mark.
Naming of particular products or brands should not be seen as endorsements.
You are strongly recommended to make a backup of your system before major
installation and should make backups at regular intervals.
2. Download software
I downloaded the sources to a directory called /home/user/Midgard and extracted
them there (except for Nadmin, which will be used when the Midgard install is
completed).
Next, I downloaded and installed Curses/termcap compat libs needed by MySQL,
Zlib and some compiling tools needed later on and, of course, Perl.
# apt-get update
# apt-get install ncurses3.0 ncurses3.0-altdev termcap-compat ncurses3.4 \
libncurses4-dev zlib-bin zlib1 zlib1-altdev zlib1g zlib1g-dev autoconf \
automake libtool flex perl
3. MySQL database installation
# groupadd mysql
# useradd -g mysql mysql
$ tar xfvz mysql-3.23.45.tar.gz
$ cd ~/mysql-3.23.45
$ ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql
$ make
# make install
# ./scripts/mysql_install_db
# chown -R mysql.mysql /usr/local/mysql
# /usr/local/mysql/bin/safe_mysqld --user=mysql &
# /usr/local/mysql/bin/mysqladmin -u root password myMySQLpassWord
# /usr/local/mysql/bin/mysqladmin -u root -h debian password myMySQLpassWord
I added /usr/local/mysql/lib/mysql to my /etc/ld.so.conf and ran ldconfig as
root.
4. Glib, Expat-lib and Berkeley-DB installation
$ cd /home/user/Midgard/glib-1.2.9
$ ./configure
$ make
# make install
$ cd /home/user/Midgard/expat-1.95.2
$ ./configure
$ make
make install
$ cd /home/user/Midgard/db-3.3.11/build_unix
$ ../dist/configure --prefix=/usr
$ make
make install
I also added /usr/local/lib to my /etc/ld.so.conf and ran ldconfig as root.
5. OpenSSL and mod_ssl installation
$ cd /home/user/Midgard/openssl-0.9.6b
$ ./config --prefix=/usr/local/ssl
$ make
# make test
# make install
$ cd /home/user/Midgard/mod_ssl-2.8.4-1.3.20
$ ./configure --with-apache=../apache_1.3.20
6. Apache httpd installation
# groupadd apache
# useradd -g apache apache
$ cd /home/user/Midgard/apache_1.3.20
$ ./configure --prefix=/usr/local/apache \
--enable-module=ssl \
--enable-module=so \
--with-perl=/usr/bin/perl \
--enable-shared=ssl \
--enable-shared=max \
--server-uid=apache \
--server-gid=apache \
--without-execstrip
$ make
# make certificate TYPE=custom
# make install
# /usr/local/apache/bin/apachectl start
7. PHP4 installation
$ cd /home/user/Midgard/php-4.3.1
$ ./configure --with-mysql=/usr/local/mysql \
--with-xml \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-track-vars \
--enable-ftp
$ make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
# php-config --extension-dir
I edited the /usr/local/lib/php.ini file so, that it loads midgard.so from
the proper extension dir, which I got by running php-config.
8. Midgard installation
8.1. Midgard-lib installation
$ cd /home/user/Midgard/midgard-lib-1.4.1-5
$ ./configure --prefix=/usr/local/midgard \
--with-sitegroups \
--with-mysql=/usr/local/mysql \
--with-expat
$ make
# make install
I also added /usr/local/midgard/lib to my /etc/ld.so.conf and ran ldconfig as
root.
8.2. Midgard-data installation
$ cd /home/user/Midgard/midgard-data-1.4.1-5
$ ./configure --with-db-admin=root \
--with-db-admin-password=myMySQLpassWord \
--with-db-user=midgard \
--with-db-user-password=midgard \
--with-db=midgard \
--with-lang=en \
--with-midgard=/usr/local/midgard \
--with-php=4 \
--with-blobdir=/var/www/blobs \
--with-apxs=/usr/local/apache/bin/apxs \
--with-apache-user=apache \
--with-install=new
# PATH=$PATH:/usr/local/mysql/bin
# ./dbinstall
# cp -r images/ /usr/local/apache/htdocs/ (for old admin images)
# cp midgard-data.conf /usr/local/apache/conf/
8.3. mod_midgard installation
# PATH=$PATH:/usr/local/midgard/bin/
$ cd /home/user/Midgard/mod_midgard-1.4.1-5
$ ./configure --with-midgard=/usr/local/midgard \
--with-mysql=/usr/local/mysql \
--with-expat=/usr/local \
--with-apxs=/usr/local/apache/bin/apxs
$ make
# make install
# cp midgard-root.php /usr/local/apache/libexec/
8.4. midgard-php4 installation
# PATH=$PATH:/usr/local/apache/bin/
# ./mkall /usr/local/midgard
9. Apache configuration
Added this to the last line of httpd.conf for Midgard to work:
Include midgard-data.conf
Uncommented the following lines for PHP4 to work (needed by Midgard):
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
I created a host called mydomain.org (my hostname) using the old admin site
and added a VirtualHost to Apache's configuration file
(/usr/local/apache/conf/httpd.conf) like this one:
<VirtualHost mydomain.org>
MidgardEngine On
ServerName mydomain.org
DocumentRoot "/usr/local/apache/htdocs/user"
</VirtualHost>
I restarted Apache:
# /usr/local/apache/bin/apachectl restart
10. Midgard configuration
I edited my /usr/local/apache/conf/midgard-data.conf:
Set MidgardRootFile to /usr/local/apache/libexec/midgard-root.php
11. Testing it all
Point browser to http://localhost:80/asgard/ to see if it worked. It did.
Point browser to http://localhost:80/admin/ to see if it worked. It did.
Point browser to http://mydomain.org/ to see if it worked. It did.
12. nAdmin installation
# mv fimages.tgz /usr/local/apache/htdocs/
# tar xfvz fimages.tgz
# /usr/local/midgard/bin/repligard -c /usr/local/midgard/etc/repligard.conf \
-i /usr/local/apche/htdocs/nadmin_141_core.xmlgz