Er zijn natuurlijk veel (veiligere?) kant en klare paketten te vinden, maar mijn bedoeling is om alles in een eigen directory te zetten :)
Ik ga werken met /opt/gdxweb. Als je een andere directory wilt, moet je overal /opt/gdweb vervangen in je eigen directory!
Dus we maken nu /opt/gdxweb aan:
#
mkdir /opt/gdxweb
Zelf werk ik met een Debian GNU/Linux Sarge. (3.1). De kernel heb ik van een 2.4 naar een 2.6 geupgrade :) (mogelijk met apt-get).
Genoeg gezeverd nu, laten we aan de slag gaan!
top2. MySQL 5.0.20
Eerst downloaden we MySQL, we extracten de tarbal, en we betreden de directory.
Nu moeten we MySQL correct configureren. Dit doen we met het scriptje configure. Als je andere parameters wilt, kan je ./configure --help eens nalezen! Als directory waar het geinstalleerd moet worden kiezen we voor /opt/gdxweb/mysql. We runnen MySQL graag met de username mysql. Deze username behoord tot de groep mysql. We zullen deze dus eerst moeten aanmaken...
Als alles goed is gegaan, mogen we MySQL nu gaan compilen. (dit duurt vrij lang, kan wel een uurtje duren..)
#
make
Als ook dit goed is gegaan, gaan we alles uiteindelijk copiëren naar de correcte plaats (/opt/gdxweb/mysql). Dit doen we met make instal.
LET OP: make install moet met de user 'root' uitgevoerd worden. Typ 'su' om naar de user root te switchen... (dit is van toepassing in de hele tutorial!)
#
make install
MySQL zou nu geïnstalleerd moeten zijn. Eventjes controleren...
#
ls -al /opt/gdxweb/mysql/
Als alles goed is gaan we nu de vereiste databases aanmaken. MySQL heeft hiervoor een scriptje bijgevoegd...
#
./scripts/mysql_install_db
Nu gaan we de rechten aanpassen. Niet iedereen op de server moet MySQL namelijk kunnen beheren. De username mysql heeft wel toegang nodig tot /opt/gdxweb/mysql/var. Deze directory bevat alle data die mysql nodig heeft (databases, usernames, ...)
#
chown -R root /opt/gdxweb/mysql
#
chown -R mysql /opt/gdxweb/mysql/var
Het MySQL configuratie bestand moet nog eventjes naar de correcte plaats gecopy't worden. Ik ben zelf geen optie tegengekomen om dit in een eigen directory te zetten. We zullen het dus naar de standaard linux configuratie directory zetten: /etc
#
cp support-files/my-medium.cnf /etc/my.cnf
MySQL 5.0.20 is nu geïnstalleerd. Starten gaat via dit commando:
#
/opt/gdxweb/mysql/bin/mysqld_safe --user=mysql &
Dit commando geeft ook verdere informatie over hoe je een root password moet installen. Stel zeker een root password in. Anders kan het hele internet jouw MySQL server beheren, databases downloaden/wissen, ...!!!!
Als je wilt dat MySQL start als je de server opzet kan je dit scriptje uitvoeren:
Nu gaan we een group pgsql en een user pgsql aanmaken.
#
groupadd pgsql
#
useradd pgsql
We configureren PgSQL, we compilen het, en we installeren het:
#
./configure --path=/opt/gdxweb/pgsql
#
make && make install
OPMERKING: door && te gebruiken kan je 2 commando's uitvoeren op 1 regel. Je zal make en make install dus niet appart moeten typen. Vanaf nu gebruik ik deze manier verder in de tutorial.
Nu moeten we een data directory aanmaken voor PgSQL. Deze directory moet van de user pgsql zijn, en hierin zullen alle databases & usernames opgeslagen worden.
#
mkdir /opt/gdxweb/pgsql/data
#
chown pgsql /opt/gdxweb/pgsql/data
Tenslotte loggen we in als user pgsql, we maken wat databases aan, starten de server, en spelen wat (om te testen):
TIP: Je moet niet inloggen als pgsql als je over sudo beschikt (installatie: apt-get install sudo). Je kan dan dit gebruiken om een commando uit te voeren (su pgsql is niet nodig bij deze manier): sudo -u pgsql
top4. Apache 2.2.0
Apache, de bekentste http deamon! Deze kan natuurlijk niet ontbreken.
Apache installeren is redelijk simpel. Enkel moet je er eventjes op letten dat je --enable-so ZEKER toevoegd aan je configuratie lijn. Dit is namelijk om nadien PHP te kunnen ondersteunen... Overigens heb ik zelf --enable-cgi en --enable-http ook toegevoegd, wat normaal standaard ook aanwezig zal zijn...
top6. PHP 5.1.2
PHP, een zeer bekende en populaire scriptingstaal -ook hier op sitemasters!- kan natuurlijk niet ontbreken! Natuurlijk kiezen we voor PHP5 omdat OOP in deze versie veel uitgebreider is (en andere dingen natuurlijk). De laatste versie is momenteel 5.1.2
Voor PHP is het vereist dat Apache, MySQL en PgSQL al geinstalleerd zijn. We moeten PHP namelijk vertellen waar deze geinstalleerd zijn. Mits je PgSQL/MySQL niet geïnstalleerd hebt (wat niet noodzakelijk is), dan laat je --with-mysql=/opt/gdxweb/mysql of --with-pgsql=/opt/gdxweb/pgsql uit het configuratie commando weg :)
Als je LibXML2 al had, moet je ook --with-libxml-dir=/opt/gdxweb/libxml2 aanpassen naar je eigen path!
We voegen --enable-mbstring=all toe om PHPMyAdmin goed te laten functioneren.
PHPMyAdmin willen we benaderen vanaf /phpmyadmin, maar we willen het path toch niet vrijgeven aan de buitenwereld. Het path dat we willen is /opt/gdxrox/phpMyAdmin-2.8.0.3. We zullen deze regel dus moeten toevoegen aan /opt/gdxweb/apache/conf/httpd.conf:
Alias /phpmyadmin "/opt/gdxrox/phpMyAdmin-2.8.0.3"
Nu moeten we het configuratiebestand klaarmaken voor gebruik. Eerst moeten we het copy'en naar een andere plaats.
#
cp libraries/config.default.php config.inc.php
Bewerk nu config.inc.php.
Gebruik volgende configuratiesettings:
$cfg['Servers'][$i]['host'] = '127.0.0.1'; // dus geen localhost
$cfg['Servers'][$i]['hide_db'] = 'mysql'; // Niemand moet deze database kunnen bekijken... Als de serverconsole dit kan is dat genoeg ;)
$cfg['Servers'][$i]['auth_type'] = 'http'; // of 'cookie'. Bij http sprint er een popup schermpje open, bij cookie een opgemaakte html pagina (html = veiliger).
8. PHPPgAdmin 4.0.1
Met phpPgAdmin heb ik zelf wat meer problemen gehad, en heb ik nog een eigen oplossing moetne zoeken. Ik kon namelijk niet inloggen.
Na de security practisch op 0 te zetten, kon ik inloggen, mijn wijzigingen aanbrengen (password instellen, nieuwe user aanmaken, ..) en nadien het beveiligingsniveau uiteraard terug verhogen.
We gaan nu het bestand conf/config.inc.php bewerken. Breng deze wijzigingen aan:
$conf['extra_login_security'] = false; // standaard is true
Dit zorgt ervoor dat we ook met de user pgsql kunnen inloggen, en dat we ook met een user zonder wachtwoord kunnen inloggen.
Surf naar je host met als 'map' phppgadmin:
http//192.168.x.x/phppgadmin
- Klik links bij servers op 'PostgreSQL'
- Login met user 'pgsql' (geen wachtwoord)
- Klik bovenaan op gebruikers (users)
- Voeg een nieuwe user toe welke alle rechten krijgt (MET password!)
- Stel een password in voor de user 'pgsql'.
Open terug het bestand conf/config.inc.php en zet $conf['extra_login_security'] terug op true:
$conf['extra_login_security'] = true; // standaard is true
phpPgAdmin zou nu moeten werken :)
top9. Pure-FTPD 1.0.21
Om pure-ftpd op de standaard locatie te installeren kan je ook dit scriptje gebruiken. (pure-ftpd 1.0.20 (!) wordt dan in /usr/local/pure-ftpd geinstalleerd).
Anders voer je deze commando's uit (A piece of cake :))
Deze tutorial kom je mogelijk op nog plaatsen tegen...
Greetz,
GDX^
top11. Mogelijke problemen (regelmatige update)
Bij het installeren van een 2de server ben ik zelf een aantal problemen tegengekomen. Ook deze server draaide op Debian Sarge (3.1).
Probleem 1: Configure error bij mysql: termcap/curses
Oplossing: installeer libncurses.
Voer onderstaand commando uit om deze te installeren: wget ftp://invisible-island.net/ncurses/ncurses-5.5.tar.gz ; tar xzvf ncurses-5.5.tar.gz ; cd ncurses-5.5 ; ./configure ; make ; make install
Probleem 2: Images werken niet bij apache
Oplossing: voeg onderstaande lijnen (2 lijntjes) toe aan je httpd.conf file: EnableSendfile Off
EnableMMAP Off
Hopelijk staat je probleem hier tussen, zoniet -> PM of reageer!
[b]kleine update @ 17/12/2006:[/b]
libxml2 gewijzigd van versie 2.6.23 naar 2.6.27, reden: de vorige mirror was down. Nieuwe mirror + nieuwere versie!