Darüber hinaus wird erklärt, wie man einen ftp-Server aufsetzt.
OpenSSL sowie msmtp, webalizer und phpmyadmin gehören ebenso dazu.
Inhaltsverzeichnis:
Installation (up)
Ein paar Dinge, die ich hier einfach angenommen habe, die dann auf die individuellen Bedürfnisse angepasst werden müssen:
Passwort für mysql-user root:
deinwunschpasstwortfuermysql
Passwort für mysql-user pureftpd:
deinftppasswort
Verzeichnis für htdocs:
/htdocs
Verzeichnis für phpmyadmin:
/htdocs/phpmyadmin
port für apache:
80
port für ftp:
21
port für mysql:
3306
Zu den verwendeten Versionen. Im Laufe der Zeit wird es von jeder Software wohl eine neue Version geben, bei der dann jeweils zu schauen, in wieweit sich etwas gegenüber den hier benutzten Versionen getan haben wird. Ratsam ist es, stets die aktuellen Versionen zu benutzen!
buildchroot
3.0
apache
2.2.6
cband
0.9.7.5
mysql
5.0.45
openssl
0.9.8e
php
5.2.4
phpMyAdmin
2.11.0
pure-ftpd
1.0.22
ioncube loader
5.1
msmtp
1.4.13
webalizer
2.01-10
Vorbereitungen (up)
Begonnen wird mit der buildchroot von sven:
cd /src/ wget http://download.berlios.de/buildroot/buildrootv31.tar.bz2
tar -xvjf buildrootv31.tar.bz2
mv Buildrootv3 /chroots/LAMPPBuildroot
cat /etc/resolv.conf > /chroots/LAMPPBuildroot/etc/resolv.conf
proc mounten
Darüber hinaus wird außerhalb der chroot noch proc gemountet:
mount -tproc proc /chroots/LAMPPBuildroot/proc
Um die korrekte Zeit und die korrekte Zeitzone vom Hauptlinux in eine chroot zu übernehmen:
Sofern das Verzeichnis noch nicht existieren sollte, erstellen:
mkdir /chroots/LAMPPBuildroot/usr/share
cp /etc/localtime /chroots/LAMPPBuildroot/etc/ cp -a /usr/share/zoneinfo /chroots/LAMPPBuildroot/usr/share/
Nun in die neue chroot wechseln:
chroot /chroots/LAMPPBuildroot /bin/sh
cd src
apt-get update apt-get dist-upgrade apt-get upgrade apt-get install gcc g++ binutils make libc6-dev bin86 \ libncurses5-dev libfreetype6 libfreetype6-dev libjpeg62 \ libjpeg62-dev libungif4g libungif4-dev flex bison \ libgdbm-dev libpng12-dev libttf2 libttf-dev wget \ libxml2-dev bzip2 libbz2-dev libxslt1-dev \ libcurl3 curl libcurl3-dev libmcrypt4 libmcrypt-dev \ libmhash-dev libmhash2 libreadline5 libreadline5-dev \ libc-client-dev libmm14 libmm-dev libtidy-dev libtidy-0.99-0 \ libgdbmg1 libgd-dev perl-modules perl-modules
Die Installation von Programmen, die selbst kompiliert werden beginnt immer im Verzeichnis /src/
cd /src/
wget http://netmirror.org/mirror/apache.org/httpd/httpd-2.2.6.tar.bz2
tar -xvjf httpd-2.2.6.tar.bz2
cd /src/httpd-2.2.6
./configure --prefix=/srv/apache2 --enable-cgi --enable-vhost-alias \ --enable-rewrite --enable-so --enable-info --enable-ssl make && make install
Nun wird es noch ein wenig modifiziert.
user für apache hinzufügen:
adduser lampp-apache2
chown -R lampp-apache2:lampp-apache2 /srv/apache2
su lampp-apache2 rm -R /srv/apache2/htdocs mkdir /srv/apache2/htdocs
vi /srv/apache2/conf/httpd.conf
- Listenport ändern auf den gewünschten port (Standard ist 80) (Zeile 39)
- daemon ändern in lampp-apache2 (Zeilen 64+65)
- ServerAdmin root@domain.tld (Zeile 85) (hier natürlich eine existierende Adresse eintragen)
- ServerName sollte folgenden Wert bekommen: ServerName? localhost:80
- DocumentRoot anpassen: /htdocs (Zeile 101)
- Directory anpassen (Zeile 127)
- aus Options Indexes FollowSymLinks folgendes machen: Options -Indexes FollowSymLinks (Zeile 141)
- aus AllowOverride None folgendes machen: AllowOverride All (Zeile 150)
[ESC]:wq[Enter]
127.0.0.1 localhost 127.0.0.1 debian
Ich habe mich dazu entschieden die htdocs in /htdocs zu haben.
Dieses Verzeichnis muss dann noch erstellt werden:
Daher zu erst den user zu root wechseln
exit
cd / mkdir htdocs
chown -R lampp-apache2:lampp-apache2 /htdocs/
su lampp-apache2 cp /srv/apache2/bin/httpd /srv/apache2/bin/lampp-apache2 /srv/apache2/bin/lampp-apache2 exit
echo "<h1>Baustelle</h1>Bitte später wiederkommen." > /htdocs/index.html
Dann den apachen wieder stoppen:
killall lampp-apache2
cd /src wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz tar -xzvf mod-cband-0.9.7.5.tgz cd mod-cband-0.9.7.5 ./configure --prefix=/srv/mod_cban --with-apxs=/srv/apache2/bin/apxs make && make install
rm /srv/apache2/cgi-bin/printenv rm /srv/apache2/cgi-bin/test-cgi
Nun ist mysql an der Reihe.
herunterladen und entpacken:
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/ftp://ftp.fu-berlin.de/unix/databases/mysql/ tar -xvzf mysql-5.0.45.tar.gz
cd /src/mysql-5.0.45
./configure \ --prefix=/srv/mysql \ --localstatedir=/srv/mysql/mysqldata \ --enable-thread-safe-client \ --enable-local-infile \ --enable-assembler \ --with-comment \ --with-vio \ --with-extra-charsets=all \ --with-gnu-ld \ --with-isam \ --with-unix-socket-path=/tmp/mysql.5.0.sock \ --without-bench \ --without-debug \ --without-docs \ --without-man \ --without-innodb \ --with-charset=utf8 \ --with-collation=utf8_general_ci \ --with-mysqld-user=lampp-mysql \ --with-tcp-port=3306
make && make install
adduser lampp-mysql
chown -R lampp-mysql:lampp-mysql /srv/mysql
cp /srv/mysql/libexec/mysqld /srv/mysql/libexec/lampp-mysql
cd /lib ln -s /srv/mysql/lib/mysql/libmysqlclient.so.15 ln -s /srv/mysql/lib/mysql/libmysqlclient.so.15.0.0
ldconfig
su lampp-mysql /srv/mysql/bin/mysql_install_db
cd /srv/mysql mkdir logs
/srv/mysql/libexec/lampp-mysql \ --log-error=/srv/mysql/logs/error.log \ -u lampp-mysql \ --port=3306 \ --socket=/tmp/mysql.sock &
cd /tmp ln -s mysql.sock mysql.5.0.sock
/srv/mysql/bin/mysqladmin -u root password 'deinwunschpasstwortfuermysql'
/srv/mysql/bin/mysql -u root -pdeinwunschpasstwortfuermysql
connect mysql
update user SET Password=PASSWORD('deinwunschpasstwortfuermysql');
exit
mysql beenden:
killall lampp-mysql
/srv/mysql/libexec/lampp-mysql \ --log-error=/srv/mysql/logs/error.log \ -u lampp-mysql \ --port=3306 \ --socket=/tmp/mysql.sock &
exit
Zu erst herunterladen und entpacken:
cd /src wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz tar -xzvf openssl-0.9.8e.tar.gz
cd openssl-0.9.8e ./config make && make test && make install
mkdir -p /etc/ssl/private /usr/local/ssl/bin/openssl req -x509 -nodes -newkey rsa:1024 -keyout \ /etc/ssl/private/pure-ftpd.pem \ -out /etc/ssl/private/pure-ftpd.pem chmod 600 /etc/ssl/private/*.pem
/usr/local/ssl/bin/openssl dsaparam -rand -genkey -out myRSA.key 1024 /usr/local/ssl/bin/openssl gendsa -des3 -out myca.key myRSA.key /usr/local/ssl/bin/openssl req -new -x509 -days 365 -key myca.key -out new.crt cd /srv mkdir openssl mv myca.key /srv/openssl/server.key mv new.crt /srv/openssl/server.crt
Dann wird in der /srv/apache2/conf/extra/httpd-ssl.conf der vhost auskommentiert. Das betrifft die Zeilen 74 bis 231.
Wichtig ist, dass entweder in der httpd-ssl.conf (standardmäßig) oder in der httpd.conf folgendes steht:
Listen 443
Dann sollte in der Datei, in welcher auch die vhosts definiert werden (/srv/apache2/conf/extra/httpd-vhosts.conf) ein Eintrag wie dieser vorhanden sein:
<VirtualHost _default_:443>
DocumentRoot /htdocs/errorssl
ServerName domain.tld
ServerAdmin root@domain.tld
ErrorLog /htdocs/logs/defaultssl-error_log
CustomLog /htdocs/logs/efaultssl_log common
TransferLog logs/defaultssl-access.log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /srv/openssl/server.crt
SSLCertificateKeyFile /srv/openssl/server.key
<FilesMatch "\.(cgi|shtml|phtml|php|php5|phps)$">
SSLOptions +StdEnvVars
</FilesMatch> <Directory "/srv/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
NameVirtualHost *:80 NameVirtualHost *:443
Natürlich muss das Verzeichnis /htdocs/errorssl dann noch erstellt werden - und eine Datei mit Inhalt bekommen!
Anschließend muss der apache einmal neugestartet werden.
php (up)
php-source herunterladen und installieren
cd /src wget http://www.php.net/get/php-5.2.5.tar.bz2/from/de3.php.net/mirror tar -xvjf php-5.2.5.tar.bz2 cd php-5.2.5 ./configure \ --prefix=/srv/php \ --with-mysql=/srv/mysql \ --with-mysqli=/srv/mysql/bin/mysql_config \ --with-config-file-path=/srv/php \ --with-exec-dir=/htdocs \ --with-pear=/srv/php/pear \ --with-xmlrpc \ --with-xsl \ --with-zlib \ --with-zlib-dir=/usr/include/ \ --with-apxs2=/srv/apache2/bin/apxs \ --with-bz2 \ --with-curl \ --enable-bcmath \ --enable-calendar \ --enable-ctype \ --enable-dbase \ --enable-discard-path \ --enable-exif \ --enable-force-cgi-redirect \ --enable-ftp \ --enable-gd-native-ttf \ --enable-inline-optimization \ --enable-mbstring=all \ --enable-shmop \ --enable-sigchild \ --enable-simplexml \ --enable-soap \ --enable-sqlite-utf8 \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --enable-wddx \ --with-gd \ --with-gdbm \ --with-gettext \ --with-kerberos \ --with-jpeg-dir=/usr \ --with-mcrypt \ --with-mhash \ --with-mm \ --with-png-dir=/usr \ --with-readline \ --with-iconv \ --with-ttf \ --with-pdo-sqlite \ --with-pdo-mysql=/srv/mysql \ --with-tidy \ --with-kerberos \ --with-imap \ --with-imap-ssl \ --with-openssl
make make test killall lampp-apache2 make install
su lampp-apache2
vi /srv/apache2/conf/httpd.conf
(Zeile 308+309)
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
DirectoryIndex index.html
DirectoryIndex index.html index.php index.htm
Dann die Zeile 388 auskommentieren.
vhost werden dann in der Datei /chroots/MAILBuildroot/srv/apache2/conf/extra/httpd-vhosts.conf angelegt.
Nun muss vor einem start mind. ein vhost definiert sein:
vi /srv/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin root@domain.tld
DocumentRoot "/htdocs"
ServerName domain.tld
ServerAlias www.domain.tld
ErrorLog "logs/domain.tld-error_log"
CustomLog logs/domain.tld_log common"
</VirtualHost>
Apachen starten:
/srv/apache2/bin/lampp-apache2
exit
cd /htdocs su lampp-apache2 wget http://belnet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.2.1-all-languages.tar.bz2 tar -xvjf phpMyAdmin-2.11.2.1-all-languages.tar.bz2 exit mv phpMyAdmin-2.11.2.1-all-languages.tar.bz2 /src/phpMyAdmin-2.11.2.1-all-languages.tar.bz2 su lampp-apache2 mv phpMyAdmin-2.11.2.1-all-languages/ phpmyadmin cd phpmyadmin/
cp config.sample.inc.php config.inc.php
Mein Inhalt lautet:
$cfg['Servers'][$i]['port'] = '3306'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['compress'] = FALSE; $cfg['Servers'][$i]['controluser'] = 'root'; $cfg['Servers'][$i]['controlpass'] = 'PASSWORT'; $cfg['Servers'][$i]['auth_type'] = 'http'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'PASSWORT'; $cfg['Servers'][$i]['only_db'] = ''; $cfg['Servers'][$i]['verbose'] = ''; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; $cfg['Servers'][$i]['relation'] = 'pma_relation'; $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['verbose_check'] = TRUE; $cfg['Servers'][$i]['AllowRoot'] = TRUE; $cfg['Servers'][$i]['AllowDeny']['order'] = ''; $cfg['Servers'][$i]['AllowDeny']['rules'] = array();
pureftp (up)
Herunterladen und entpacken:
wget http://download.pureftpd.org/pub/pure-ftpd/releases/snapshots/pure-ftpd-1.0.22.tar.gz tar -xzvf pure-ftpd-1.0.22.tar.gz
cd pure-ftpd-1.0.22
./configure \ --prefix=/srv/pureftpd/ \ --without-inetd \ --with-largefile \ --with-ratios \ --with-quotas \ --with-ftpwho \ --with-peruserlimits \ --with-tls \ --with-certfile=/etc/ssl/private/pure-ftpd.pem \ --with-mysql=/srv/mysql/ make install-strip
cat /etc/passwd | grep lampp-apache2
dann wird eine ftp-user-Gruppe erzeugt. Der Vorteil ist der, dass der ftp-user und der apache-user dann in der gleichen Gruppe sind und somit weitere Probleme beim späteren Betrieb reduziert werden.
groupadd -g 1000 ftpgroup useradd -u 1000 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
mkdir /etc/pure_ftpd/ mkdir /etc/pure_ftpd/conf
echo "YES" > /etc/pure_ftpd/conf/CreateHomeDir echo "YES" > /etc/pure_ftpd/conf/ChrootEveryone
vi /etc/pure_ftpd/mysql.conf
MYSQLSocket /tmp/mysql.sock #MYSQLServer localhost #MYSQLPort 3306 MYSQLUser pureftpd MYSQLPassword deinftppasswort MYSQLDatabase pureftpd #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext MYSQLCrypt md5 MYSQLDefaultUID 1000 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
CREATE DATABASE pureftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'deinftppasswort'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'deinftppasswort'; FLUSH PRIVILEGES;
CREATE TABLE `ftpd` (
`User` varchar(16) NOT NULL default '',
`status` enum('0','1') NOT NULL default '1',
`Password` varchar(64) NOT NULL default '',
`Uid` varchar(11) NOT NULL default '1000',
`Gid` varchar(11) NOT NULL default '1000',
`Dir` varchar(128) NOT NULL default '/htdocs/',
`ULBandwidth` smallint(5) NOT NULL default '0',
`DLBandwidth` smallint(5) NOT NULL default '0',
`comment` tinytext NOT NULL,
`ipaccess` varchar(15) NOT NULL default '*',
`QuotaSize` smallint(5) NOT NULL default '0',
`QuotaFiles` int(11) NOT NULL default '0',
UNIQUE KEY `User` (`User`)
);
INSERT INTO `pureftpd`.`ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`)
VALUES ('user', '1', MD5('password'), '1000', '1000', '/htdocs/', '0', '0', '', '*', '0', '0');
cp /srv/pureftpd/sbin/pure-ftpd /srv/pureftpd/sbin/lampp-ftp
/srv/pureftpd/sbin/pure-ftpd2 --tls=2 -0 stats:/srv/pureftpd/logs/pureftpd.log -S21 -l mysql:/etc/pure_ftpd/mysql.conf -A -E -D -c50 -C5 &
Hier nach der aktuellen Version schauen. Die Linux (x86) als tar.bz2 ist die Ggesuchte!
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.bz2 tar -xvjf ioncube_loaders_lin_x86.tar.bz2 cd ioncube mkdir /srv/apache2/modules cp ioncube_loader_lin_5.1.so /srv/apache2/modules
[Zend] zend_extension = /etc/php5/apache2/ioncube_loader_lin_5.1.so
(in der chroot)
killall lampp-apache2 /srv/apache2/bin/apachectl start
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with the ionCube PHP Loader v3.1.23, Copyright (c) 2002-2006, by ionCube Ltd.
und unter Additional Modules ist der ioncube Loader gelistet.
msmtp (up)
Das ganze beschreibt wie man msmtp im Hauptlinux installiert. Wenn das erfolgreich geklappt hat, kann man in crontab -e oben einfach anstatt root, die emailadresse eintragen an die man alle meldungen von crons geschickt haben will. Wenn man gewisse crons keinerlei ausgaben machen lassen will, einfach ein > /dev/null hintendran, das sollte reichen.
Installation von msmtprc
cd /src/ wget -dv http://surfnet.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.13.tar.bz2 tar -xjvf msmtp-1.4.13.tar.bz2 cd msmtp-1.4.13 ./configure --prefix=/srv/msmtp make make install cd /srv/msmtp mkdir etc cd etc touch msmtprc vi msmtprc
# Set default values for all following accounts. defaults tls off logfile /var/log/msmtp.log syslog LOG_MAIL # A freemail service account rootMailAccount host localhost from email@domain.tld auth on user email@domain.tld password pwDerEmailAdresse # Set a default account account default : rootMailAccount
Jetzt noch das alte sendmail sichern und mittels einem symlink das neue benutzen:
cd /usr/sbin/ mv sendmail sendmail.bak ln -s /srv/msmtp/bin/msmtp /usr/bin/sendmail ln -s /srv/msmtp/bin/msmtp /usr/sbin/sendmail ln -s /srv/msmtp/lib/msmtp /usr/lib/sendmail
ein .sh-script erstellen (chmod nicht vergessen) und folgendes reinschreiben:
echo -e "Subject: Test" > /mail.txt echo -e "\n" >> /mail.txt echo "Das ist ein Test" >> /mail.txt cat /mail.txt | /usr/sbin/sendmail -v empfänger@domain.tld rm /mail.txt
In der crontab
crontab -e
MAILTO=empfänger@domain.tld
dann php configure nochmal neu ausführen und apache neustarten!
cd /src/php-5.2.4 make clean make distclean ./configure --prefix=/srv/php --with-mysql=/srv/mysql --with-mysqli=/srv/mysql/bin/mysql_config \ --with-_lib=lib --with-config-file-path=/srv/php --with-exec-dir=/htdocs --with-pear=/srv/php/pear \ --with-xml --with-xmlrpc --with-xsl --with-zip --with-zlib --with-zlib-dir=/usr/include/ \ --with-apxs2=/srv/apache2/bin/apxs --with-bz2 --with-curl --with-freetype --with-ftp \ --enable-bcmath --enable-calendar --enable-ctype --enable-dbase --enable-discard-path \ --enable-exif --enable-filepro --enable-force-cgi-redirect --enable-ftp --enable-gd-imgstrttf \ --enable-gd-native-ttf --enable-inline-optimization --enable-mbstr-enc-trans --enable-mbstring=all \ --enable-memory-limit --enable-shmop --enable-sigchild --enable-simplexml --enable-soap --enable-sqlite-utf8 \ --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --enable-track-vars --enable-trans-sid \ --enable-wddx --with-gd --with-gdbm --with-gif-dir=/usr --with-gettext --with-kerberos --with-jpeg-dir=/usr \ --with-mcrypt --with-mhash --with-mm --with-png-dir=/usr --with-readline --with-iconv --with-ttf \ --with-pdo-sqlite --with-pdo-mysql=/srv/mysql --with-tidy --with-imap --with-imap-ssl --with-openssl killall lampp-apache2 make && make test && make install su lampp-apache2 /srv/apache2/bin/lampp-apache2 exit
webalizer wird zwar nicht mehr weiterentwickelt, stellt aber noch immer ein sehr angenehmes tool dar, um die Besucherzahlen grafisch darzustellen.
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tar.bz2 tar -xjvf webalizer-2.01-10-src.tar.bz2 cd webalizer-2.01-10 ./configure --prefix=/srv/webalizer --with-language=german make make install
Um den cron-Dienst in der chroot nutzen zu können, muss dieser seperat gestartet werden.
kopieren:
cd /usr/sbin
cp cron lampp-cron
./lampp-cron
Im zweiten Teil des Tutorials gehe ich davon aus, dass die Installation geklappt hat. Fertig ist man damit jedoch nicht! Es kommen immer wieder einige Punkte Arbeit auf einen zu. Einige sollen hier angerissen werden.
Dienste starten (up)
Um einzelne Dienste zu starten hier eine kleine Übersicht:
apache:
/srv/apache2/bin/lampp-apache2
su lampp-mysql /srv/mysql/libexec/lampp-mysql \ --log-error=/srv/mysql/logs/error.log \ -u lampp-mysql \ --port=3306 \ --socket=/tmp/mysql.sock & exit
/srv/pureftpd/sbin/lampp-ftp --tls=2 -0 stats:/srv/pureftpd/logs/pureftpd.log -S21 -l mysql:/etc/pure_ftpd/mysql.conf -A -E -D -c50 -C5 &
/usr/sbin/lampp-cron
proc:
mount -tproc proc /proc/
Um gewisse Dienste zu stoppen:
apache:
killall lampp-apache2
killall lampp-mysql
pureftp:
killall pure-ftpd2
killall lampp-cron
killall lampp-lighttpd
umount /chroots/LAMPPBuildroot/proc/
Subdomains und Domains werden als vHost in der Datei /chroots/LAMPPBuildroot/srv/apache2/conf/extra/httpd-vhosts.conf eingetragen.
php.ini und httpd.conf (up)
Die Datei php.ini befindet sich unter diesem Pfad /chroots/LAMPPBuildroot/srv/php/php.ini
Die Datei httpd.conf befindet sich unter diesem Pfad
/srv/apache2/conf/httpd.conf
ftp-Verbindung (up)
dazu muss als Servertyp 'FTP über TLS (Explizite Verschlüsselung)' eingestellt werden, sowie als Transfermodus, der 'passive Modus' aktiviert werden.
apache-Tricks (up)
mittels dem apachectl script, kann man folgendes beim apache machen:
startet den apache
/srv/apache2/bin/apachectl start
/srv/apache2/bin/apachectl stop
/srv/apache2/bin/apachectl restart
/srv/apache2/bin/apachectl configtest
/srv/apache2/bin/apachectl graceful
um die webalizer-Statistiken zu aktualsisieren empfiehlt sich folgendes in ein Skript zu schreiben und per cronjob aufzurufen:
cd /htdocs/webalizer/ /srv/webalizer/bin/webalizer -n "www.domain.tld" /srv/apache2/logs/access_log >> /scripts/logs/webalizer.log
Wie man mit der shell ein db-Backup machen kann wird in diesem Tutorial ausführlich beschrieben:
-> [shell] datenbank backup per konsole
shell-Skript zum starten (up)
Ein solches Shell-Skript könnte zB so aussehen:
#!/bin/sh # proc mount -tproc proc /proc/ # apache /srv/apache2/bin/lampp-apache2 # cron /usr/sbin/lampp-cron # ftp /srv/pureftpd/sbin/lampp-ftp --tls=2 -0 stats:/srv/pureftpd/logs/pureftpd.log -S21 -l mysql:/etc/pure_ftpd/mysql.conf -A -E -D -c50 -C5 & # mysql /srv/mysql/libexec/lampp-mysql --log-error=/srv/mysql/logs/error.log -u lampp-mysql --port=3306 --socket=/tmp/mysql.sock &
Das Skript um die komplette chroot zu beenden sieht so aus:
#!/bin/sh # proc umount /proc/ # apache killall lampp-apache2 # cron killall lampp-cron # ftp killall lampp-ftp # mysql killall lampp-mysql
Danke.
Natürlich habe ich mir beim Erstellen dieses Tutorials große Mühe gegeben. Kleine Fehler lassen sich aber bei dem Umfang nicht immer vermeiden, auch wenn es schon vor der Veröffentlichung mehrfach von verschiedenen Personen getestet wurde.
Weiterhin gibt es - auch für Kleinigkeiten - von euch möglicherweise gute Ideen, wie man das eine oder andere besser umsetzen oder vereinfachen könnte.
Über Mitteilungen dieser Art bin ich dankbar.
Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte.
Grüße Jann Hendrik
Nachtrag:
Es gibt inzwischen eine neuere Version der buildchroot:
http://developer.berlios.de/project/...ease_id=135350

Bereiche
Kategorien (Alle Bereiche)
Neue Artikel
Neue Blog-Einträge
Neue Beiträge
STDIN-Daten auslesen, falls vorhanden
Moin moin!
Server-Administratoren arbeiten ja zumeist auf der Console und nutzen kleine oder große Shell-Scripte, um ihre Arbeitsabläufe zu vereinfachen oder Funktionen bereit zu stellen, für die es noch keine Komplett-Lösung gibt. Hierbei sind die Möglichkeiten nahezu grenzenlos.