kleines script zum installieren eines webservers

Apache, Lighttpd, nginx, Cherokee
Post Reply
pyrogx
Posts: 20
Joined: 2004-01-24 03:47
Location: wuppertal
Contact:
 

kleines script zum installieren eines webservers

Post by pyrogx »

da ich sehrviel an meinem server rumbastel und rumprobiere und ihn dadurch recht oft neu installiere habe ich mir ein kleines script geschrieben das mit diverse sachen installiert

#########################
# ACHTUNG #
#########################
das script wurde für einen frisch instalierten debian woody server geschrieben

es sollte also nicht auf schon eingerichteten systemen benutzt werden




genauer gesagt werden erstmal einige grundprogramme auf den neusten stand gebracht:
nmap screen gcc bzip2 apt wget sed

danach werden apache2, libXML (wird für das kompilieren von PHP benötigt) und MySQL installiert
dann wird php 5.0.4 kompiliert und installiert

nun wird der proFTPd und ne java JRE installiert und mit meiner config eingerichtet

als kleine hilfe wird ein script installiert mit dem man einfach per /etc/neueruser.sh einen neuen user anlegen kann
das besondere an dem script ist das nach eingabe der domain automatisch das homeverzeichnis angelegt wird, die domain eingerichtet, die rechte gesetzt und der apache restartet

zu guter letzt wird ein defaulthost eingerichtet und phpmyadmin runtergeladen, entpackt und ne domain dafür eingerichtet





wäre nett wenn ihr euch das dingen mal anguckt und sagt was noch fehlt (bis auf den mailserver) oder was man verbessern könnte

einfach den folgenden code in eine datei kopieren und ausführbar machen sowie ausführen

Code: Select all

#!/bin/bash

echo "Herzlich willkommen bei der Installation eines Webservers."
echo "Dieses Installationsscript wurde von PyroGX entwickelt."
echo "Sie benutzen die Version 0.1 Beta 1"
echo "Start der installation ..."
echo -n "Bitte gib die Standarddomain ein (bsp. pyrogx.de): "
read domain
echo "Lege Stadardordner an..."
cd /etc/skel
mkdir html
mkdir log
mkdir temp
mkdir cgi
cd /usr
mkdir orginaldateien


echo "Ã?ndere die Sourcelisten ..."
cd /etc/apt/
mv /etc/apt/sources.list /usr/orginaldateien/sources.list
echo 'deb     http://security.debian.org/ testing/updates main contrib non-free
deb     ftp://ftp.uni-erlangen.de/pub/Linux/debian/ testing main non-free contrib

deb     http://security.debian.org/ stable/updates  main
deb-src http://security.debian.org/ stable/updates  main
deb     http://security.debian.org/ woody/updates   main contrib non-free

#deb     ftp://ftp.serverkompetenz.de/debian stable  main contrib non-free
#deb-src ftp://ftp.serverkompetenz.de/debian stable  main contrib non-free' >> /etc/apt/sources.list

################
#Update der Quellen
echo "Update der Quellen ..."
################

apt-get update


################
#Sonstige Programme Installieren / Upaten
echo "Sonstige Programme Installieren / Updaten ..."
################

apt-get install nmap screen gcc bzip2 apt wget sed


################
#Apache Installieren
echo "Apache2 Installieren ..."
################

apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-dev


################
#LibXML installieren
echo "LibXML installieren ..."
################

apt-get install libxml2-dev libxml2-utils


################
#MySQL Installieren
echo "MySQL Installieren ..."
echo -n "Bitte geben sie das Rootpasswort für MySQL ein: "
read sqlpasswort
################

apt-get install mysql-server mysql-client mysql-common libmysqlclient12-dev
/usr/bin/mysqladmin -u root password $sqlpasswort


################
#PHP 5.0.4 installieren
echo "PHP 5.0.4 installieren ..."
################

cd /usr/src
mkdir php
cd php
wget http://de.php.net/get/php-5.0.4.tar.bz2/from/this/mirror
tar xjvf php-5.0.4.tar.bz2
cd php-5.0.4
./configure --enable-memory-limit --enable-track-vars --with-pcre-regex --with-mysql --without-sqlite --without-mm --with-apxs2=/usr/bin/apxs2 --prefix=/etc/php
make && make install



################
#proFTPd installieren
echo "proFTPd installieren ..."
################

apt-get install proftpd
addgroup ftpuser
cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells
apt-get install openssl
openssl req -new -x509 -days 365 -nodes  -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

mv /etc/proftpd.conf /usr/orginaldateien/proftpd.conf
echo -n "Bitte gib einen Namen für den FTP-Server ein:"
read ftpserver

echo 'ServerName              	"'$ftpserver'"
   ServerType			standalone
   DeferWelcome		off
   ShowSymlinks		on
   MultilineRFC2228		on
   DefaultServer		on
   AllowOverwrite		on
   TimeoutNoTransfer	600
   TimeoutStalled		600
   TimeoutIdle			1200
   DisplayLogin			welcome.msg
   DisplayFirstChdir		.message
   DenyFilter *.*/
   Port 				21
   MaxInstances		30
   User				nobody
   Group				nogroup
   <Directory /*>
   Umask 				022 022
   AllowOverwrite on
   </Directory>
   DefaultRoot 			~ ftpuser
   <Limit LOGIN>
   DenyGroup 			!ftpuser
   </Limit>
   <Global>
   RootLogin 			off
   RequireValidShell 	on
   </Global>
   UseReverseDNS 	off
   IdentLookups 		off
   LogFormat 			default "%h %l %u %t "%r" %s %b"
   LogFormat 			auth "%v [%P] %h %t "%r" %s"
   LogFormat 			write "%h %l %u %t "%r" %s %b"
   ExtendedLog 		/var/log/ftp_auth.log AUTH auth
   ExtendedLog 		/var/log/ftp_access.log WRITE,READ write
   TLSEngine				on
   TLSLog 				/var/log/tls.log
   TLSProtocol				SSLv23
   TLSOptions				NoCertRequest
   TLSRSACertificateFile		/etc/ssl/certs/proftpd.cert.pem
   TLSRSACertificateKeyFile		/etc/ssl/certs/proftpd.key.pem
   TLSVerifyClient			off
   TLSRequired				on' >> /etc/proftpd.conf


################
# Java JRE Installieren
################
# DL link unter http://java.sun.com/j2se/1.4.2/download.html holen
################

echo -n "Bitte holen sie sich Downloadlink für Java unter http://java.sun.com/j2se/1.4.2/download.html und geben ihn hier ein:"
read javadllink

cd /etc/
mkdir java
cd /usr/src
mkdir java
cd java

wget $javadllink
mv -f j2re-1_4_2_08-linux-i586.bin?* j2re-1_4_2_08-linux-i586.bin
chmod 755 j2re-1_4_2_08-linux-i586.bin
./j2re-1_4_2_08-linux-i586.bin

################
#Ã?nderungen an der adduser.conf vornehmen
################

cd /etc

mv /etc/adduser.conf /usr/orginaldateien/adduser.conf

echo 'DSHELL=/bin/ftp
DHOME=/var/www
GROUPHOMES=no
LETTERHOMES=no
SKEL=/etc/skel
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999
FIRST_UID=1000
LAST_UID=29999
USERGROUPS=no
USERS_GID=1000
QUOTAUSER=""
DIR_MODE=0755
SETGID_HOME=no' >> adduser.conf


################
#Script zum anlegen von neuen Usern anlegen
################

echo '#!/bin/bash

echo -n "Bitte die Domain eingeben (gleichzeitig der Benutzernamen): "
read domain
echo "##  Erstelle Benutzer $username..."
useradd -d /var/www/$domain -g ftpuser -s /bin/ftp $domain
echo "##  Erstelle Heimatverzeichnis..."
mkdir /var/www/$domain
echo "##  Richte den Virtuellen Host ein..."
echo "<VirtualHost *>
	ServerName $domain
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/$domain/html
        php_admin_value open_basedir /var/www/$domain/html/
        php_admin_value upload_tmp_dir /var/www/$domain/temp
        php_admin_value session.save_path /var/www/$domain/temp/
        php_admin_value safe_mode on
	ErrorLog /var/www/$domain/log/error.log
	LogLevel warn
	CustomLog /var/www/$domain/log/access.log combined
	<Directory /var/www/$domain/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>" >> /etc/apache2/sites-available/default

echo "##  Kopiere verzeichnisse..."
cp -r /etc/skel/* /var/www/$domain/
echo "##  Lege Stadarddatei an..."
echo "<head><title>Neue Homepage auf '$domain' eingerichtet</title></head><body><center>Soeben wurde die domain <b>$domain</b> auf diesem Server eingerichtet.</center>" >> /var/www/$domain/html/index.html
echo "##  Setze Benutzerberechtigungen..."
chown $domain:ftpuser /var/www/$domain/*
chmod 1770 /var/www/$domain/*
chown $username:ftpuser /var/www/$domain/
chmod 1770 /var/www/$domain/
chown $username:ftpuser /var/www/$domain/html/*
chmod 1770 /var/www/$domain/html/*
passwd $username
echo "##  Starte den Apache neu..."
apache2 -k restart
echo "##  Fertig!!!"' >> /etc/neueruser.sh

chmod u+x neueruser.sh


################
#Webuser einrichten
echo "Webuser einrichten ..."
echo -n "Bitte geben Sie den Usernamen für den Default-Host ein: "
read webuser
echo -n "Bitte geben Sie das Passwort für den Default-Host ein: "
read webpass
echo -n "Es wird für phpMyAdmin ein eigener User angelegt, bitte geben Sie hier das Passwort für den User (phpmyadmin) ein: "
read phppass
################


useradd  -g ftpuser -d /var/www/www.$domain/ -s /bin/ftp -p $webpass $webuser
useradd  -g ftpuser -d /var/www/phpmyadmin.$domain/ -s /bin/ftp -p $phppass phpmyadmin

################
# einrichtung es default-hosts
################
usermod -G ftpuser www-data

mv /etc/apache2/sites-available/default /usr/orginaldateien/default

cd /var/www/
rm -r /var/www/*
mkdir www.$domain
cd www.$domain
cp -r /etc/skel/* /var/www/www.$domain/
echo "<head><title>Server fertig eingerichtet</title></head><body><center>Soeben wurde der Server mit der Domain:  <b>"$domain"</b> fertig eingerichtet.<br /><br />Der Server wurde mit dem Installscript von PyroGX installiert.</center>" >> /var/www/www.$domain/html/index.html
chown $webuser:ftpuser /var/www/www.$domain/*
chmod 1770 /var/www/www.$domain/*
chown $webuser:ftpuser /var/www/www.$domain/
chmod 1770 /var/www/www.$domain/
chown $webuser:ftpuser /var/www/www.$domain/html/*
chmod 1770 /var/www/www.$domain/html/*

useradd  -g group -d home -s shell -p passwd name

echo 'NameVirtualHost *
<VirtualHost *>
	ServerName '$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/www.'$domain'/html
	ErrorLog /var/www/www.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/www.'$domain'/log/access.log combined
	<Directory /var/www/www.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default


################
# phpMyAdmin installieren
################

cd /var/www/
mkdir phpmyadmin.$domain
cd phpmyadmin.$domain
cp -r /etc/skel/* /var/www/phpmyadmin.$domain/
cd /usr/src
mkdir phpmyadmin
cd phpmyadmin
wget http://mesh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.6.2.tar.bz2
tar xjvf phpMyAdmin-2.6.2.tar.bz2
cd phpMyAdmin-2.6.2
cp -r /usr/src/phpmyadmin/phpMyAdmin-2.6.2/* /var/www/phpmyadmin.$domain/html

echo '<VirtualHost *>
	ServerName phpmyadmin.'$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/phpmyadmin.'$domain'/html
	ErrorLog /var/www/phpmyadmin.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/phpmyadmin.'$domain'/log/access.log combined
	<Directory /var/www/phpmyadmin.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default
apache2 -k restart

echo "Bitte passen Sie die config von phpMyAdmin manuell unter /var/www/phpmyadmin.pyrogx.de/html/config.inc.php an Ihre bedürfnisse an!!!"
echo "FERTIG !!! Vielen dank das Sie mein Script zum installieren eines Webservers benutzen."

ich freue mich über jede konstruktive kritik
pyrogx
Posts: 20
Joined: 2004-01-24 03:47
Location: wuppertal
Contact:
 

Re: kleines script zum installieren eines webservers

Post by pyrogx »

v0.3 falls sie jemand braucht:

Code: Select all

#!/bin/bash

echo "Herzlich willkommen bei der Installation eines Webservers."
echo "Dieses Installationsscript wurde von PyroGX entwickelt."
echo "Sie benutzen die Version 0.3"
echo "Start der installation ..."
echo -n "Bitte gib die Standarddomain ein (bsp. pyrogx.de): "
read domain
echo "Lege Stadardordner an..."
cd /etc/skel
mkdir html
mkdir log
mkdir temp
cd html
mkdir cgi
cd /usr
mkdir orginaldateien


echo "Ã?ndere die Sourcelisten ..."
cd /etc/apt/
mv /etc/apt/sources.list /usr/orginaldateien/sources.list
echo 'deb ftp://ftp.de.debian.org/debian/ sarge main contrib
deb-src ftp://ftp.de.debian.org/debian/ sarge main contrib
deb http://non-us.debian.org/debian-non-US sarge/non-US main contrib
deb-src http://non-us.debian.org/debian-non-US sarge/non-US main contrib' >> /etc/apt/sources.list

################
#Update der Quellen
echo "Update der Quellen ..."
################

apt-get update


################
#Sonstige Programme Installieren / Upaten
echo "Sonstige Programme Installieren / Updaten ..."
################

apt-get install nmap screen gcc bzip2 apt wget sed sendmail


################
#Apache Installieren
echo "Apache2 Installieren ..."
################

apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-dev


################
#LibXML installieren
echo "LibXML installieren ..."
################

apt-get install libxml2-dev libxml2-utils


################
#MySQL Installieren
echo "MySQL Installieren ..."
echo -n "Bitte geben sie das Rootpasswort für MySQL ein: "
read sqlpasswort
################

apt-get install mysql-server mysql-client mysql-common libmysqlclient12-dev
/usr/bin/mysqladmin -u root password $sqlpasswort


################
#PHP 5.0.4 installieren
echo "PHP 5.0.4 installieren ..."
################

cd /usr/src
mkdir php
cd php
wget http://de.php.net/get/php-5.0.4.tar.bz2/from/this/mirror
tar xjvf php-5.0.4.tar.bz2
cd php-5.0.4
./configure --enable-memory-limit --enable-safe-mode  --disable-register-globals --enable-track-vars --with-pcre-regex --with-mysql --without-sqlite --without-mm --with-config-file-path=/etc/php --with-apxs2=/usr/bin/apxs2 --prefix=/etc/php
make && make install



################
#proFTPd installieren
echo "proFTPd installieren ..."
################

apt-get install proftpd
addgroup ftpuser
cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells
apt-get install openssl
openssl req -new -x509 -days 365 -nodes  -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

mv /etc/proftpd.conf /usr/orginaldateien/proftpd.conf
echo -n "Bitte gib einen Namen für den FTP-Server ein:"
read ftpserver

echo '   ServerName              	"'$ftpserver'"
   ServerType			standalone
   DeferWelcome		off
   ShowSymlinks		on
   MultilineRFC2228		on
   DefaultServer		on
   AllowOverwrite		on
   TimeoutNoTransfer	600
   TimeoutStalled		600
   TimeoutIdle			1200
   DisplayLogin			welcome.msg
   DisplayFirstChdir		.message
   DenyFilter *.*/
   Port 				21
   MaxInstances		30
   User				nobody
   Group				nogroup
   <Directory /*>
   Umask 				022 022
   AllowOverwrite on
   </Directory>
   DefaultRoot 			~
   <Limit LOGIN>
   DenyGroup 			!ftpuser
   </Limit>
   <Global>
   RootLogin 			off
   RequireValidShell 	on
   </Global>
   UseReverseDNS 	off
   IdentLookups 		off
   LogFormat 			default "%h %l %u %t "%r" %s %b"
   LogFormat 			auth "%v [%P] %h %t "%r" %s"
   LogFormat 			write "%h %l %u %t "%r" %s %b"
   ExtendedLog 		/var/log/ftp_auth.log AUTH auth
   ExtendedLog 		/var/log/ftp_access.log WRITE,READ write
   TLSEngine				on
   TLSLog 				/var/log/tls.log
   TLSProtocol				SSLv23
   TLSOptions				NoCertRequest
   TLSRSACertificateFile		/etc/ssl/certs/proftpd.cert.pem
   TLSRSACertificateKeyFile		/etc/ssl/certs/proftpd.key.pem
   TLSVerifyClient			off
   TLSRequired				off' >> /etc/proftpd.conf


################
# Java JRE Installieren
################
# DL link unter http://java.sun.com/j2se/1.4.2/download.html holen
################

echo -n "Bitte holen sie sich Downloadlink für Java unter http://java.sun.com/j2se/1.4.2/download.html und geben ihn hier ein:"
read javadllink

cd /etc/
mkdir java
cd /usr/src
mkdir java
cd java

wget $javadllink
mv -f j2re-1_4_2_08-linux-i586.bin?* j2re-1_4_2_08-linux-i586.bin
chmod 755 j2re-1_4_2_08-linux-i586.bin
./j2re-1_4_2_08-linux-i586.bin

cp /usr/src/java/j2re1.4.2_08/* /etc/java

################
#Script zum anlegen von neuen Usern anlegen
################

echo '#!/bin/bash

echo -n "Bitte die Domain eingeben (gleichzeitig der Benutzernamen): "
read domain
echo "##  Erstelle Benutzer $domain..."
useradd -d /var/www/$domain -g ftpuser -s /bin/ftp $domain
echo "##  Erstelle Heimatverzeichnis..."
mkdir /var/www/$domain
echo "##  Richte den Virtuellen Host ein..."
echo "<VirtualHost *>
	ServerName $domain
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/$domain/html
	php_admin_value open_basedir /var/www/$domain/html/
	php_admin_value upload_tmp_dir /var/www/$domain/temp
	php_admin_value session.save_path /var/www/$domain/temp/
	php_admin_value safe_mode on
	php_admin_value memory_limit 16M
	php_admin_value upload_max_filesize 16M

	ScriptAlias /cgi/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/www/$domain/log/error.log
	LogLevel warn
	CustomLog /var/www/$domain/log/access.log combined
	<Directory /var/www/$domain/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>" >> /etc/apache2/sites-available/default

echo "##  Kopiere verzeichnisse..."
cp -r /etc/skel/* /var/www/$domain/
echo "##  Lege Stadarddatei an..."
echo "<head><title>Neue Homepage auf '$domain' eingerichtet</title></head><body><center>Soeben wurde die domain <b>$domain</b> auf diesem Server eingerichtet.</center>" >> /var/www/$domain/html/index.html
echo "##  Setze Benutzerberechtigungen..."
chown $domain:ftpuser /var/www/$domain
chown $domain:ftpuser /var/www/$domain/*
chmod 1770 /var/www/$domain/*
chown $domain:ftpuser /var/www/$domain/
chmod 1770 /var/www/$domain/
chown $domain:ftpuser /var/www/$domain/html/*
chmod 1770 /var/www/$domain/html/*
passwd $domain
echo "##  Starte den Apache neu..."
apache2 -k restart
echo "##  Fertig!!!"' >> /etc/neueruser.sh

chmod u+x neueruser.sh


################
#Script zum neustarten der Wichtigsten Services anlegen
################

echo '#!/bin/bash

apache2 -k restart
echo "##  Apache 2 wurde neu gestartet..."
proftpd restart
echo "##  proFTPd wurde neu gestatet..."
/etc/init.d/spamassassin restart
echo "##  Spamassassin wurde neu gestatet..."
/etc/init.d/clamav-daemon restart
echo "##  Clamav wurde neu gestatet..."
/etc/init.d/exim4 restart
echo "##  Exim4 wurde neu gestatet..."' >> /etc/restart.sh

chmod u+x restart.sh


################
#Webuser einrichten
echo "Webuser einrichten ..."
echo -n "Bitte geben Sie den Usernamen für den Default-Host ein: "
read webuser
echo -n "Bitte geben Sie das Passwort für den Default-Host ein: "
read webpass
echo -n "Es wird für phpMyAdmin ein eigener User angelegt, bitte geben Sie hier das Passwort für den User (phpmyadmin) ein: "
read phppass
################


useradd  -g ftpuser -d /var/www/www.$domain/ -s /bin/ftp -p $webpass $webuser
useradd  -g ftpuser -d /var/www/phpmyadmin.$domain/ -s /bin/ftp -p $phppass phpmyadmin

################
# einrichtung es default-hosts
################
usermod -G ftpuser www-data

mv /etc/apache2/sites-available/default /usr/orginaldateien/default

cd /var/www/
rm -r /var/www/*
mkdir www.$domain
cd www.$domain
cp -r /etc/skel/* /var/www/www.$domain/
echo "<head><title>Server fertig eingerichtet</title></head><body><center>Soeben wurde der Server mit der Domain:  <b>"$domain"</b> fertig eingerichtet.<br /><br />Der Server wurde mit dem Installscript von PyroGX installiert.</center>" >> /var/www/www.$domain/html/index.html
echo "<?php
phpinfo();
?>" >> /var/www/www.$domain/html/info.php
chown $webuser:ftpuser /var/www/www.$domain/*
chmod 1770 /var/www/www.$domain/*
chown $webuser:ftpuser /var/www/www.$domain/
chmod 1770 /var/www/www.$domain/
chown $webuser:ftpuser /var/www/www.$domain/html/*
chmod 1770 /var/www/www.$domain/html/*

echo 'NameVirtualHost *
<VirtualHost *>
	ServerName '$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/www.'$domain'/html
	php_admin_value open_basedir /var/www/www.'$domain'/html
	php_admin_value upload_tmp_dir /var/www/www.'$domain'/html
	php_admin_value session.save_path /var/www/www.'$domain'/html
	php_admin_value safe_mode on
	php_admin_value memory_limit 16M
	php_admin_value upload_max_filesize 16M
	ErrorLog /var/www/www.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/www.'$domain'/log/access.log combined
	<Directory /var/www/www.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default


################
# phpMyAdmin installieren
################

cd /var/www/
mkdir phpmyadmin.$domain
cd phpmyadmin.$domain
cp -r /etc/skel/* /var/www/phpmyadmin.$domain/
cd /usr/src
mkdir phpmyadmin
cd phpmyadmin
wget http://dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.6.2-pl1.tar.bz2
mv -f phpMyAdmin-2.6.2-pl1.tar.bz2* phpMyAdmin-2.6.2-pl1.tar.bz2
tar xjvf phpMyAdmin-2.6.2-pl1.tar.bz2
cd phpMyAdmin-2.6.2-pl1
cp -r /usr/src/phpmyadmin/phpMyAdmin-2.6.2-pl1/* /var/www/phpmyadmin.$domain/html

echo '<VirtualHost *>
	ServerName phpmyadmin.'$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/phpmyadmin.'$domain'/html
	php_admin_value open_basedir /var/www/phpmyadmin.'$domain'/html
	php_admin_value upload_tmp_dir /var/www/phpmyadmin.'$domain'/html
	php_admin_value session.save_path /var/www/phpmyadmin.'$domain'/html
	php_admin_value safe_mode on
	php_admin_value memory_limit 64M
	php_admin_value upload_max_filesize 32M
	ErrorLog /var/www/phpmyadmin.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/phpmyadmin.'$domain'/log/access.log combined
	<Directory /var/www/phpmyadmin.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default
apache2 -k restart

echo "Bitte passen Sie die config von phpMyAdmin manuell unter /var/www/phpmyadmin.pyrogx.de/html/config.inc.php an Ihre bedürfnisse an!!!"
echo "FERTIG !!! Vielen dank das Sie mein Script zum installieren eines Webservers benutzen."
mc5000
Posts: 308
Joined: 2004-06-17 11:56
Location: Köln
 

Lob für Einsatz

Post by mc5000 »

Ich selbst brauche das nicht wirklich, doch ich werd es nächste Woche mal ausprobieren und meine Erfahrungen posten.

Doch ich find es Klasse, dass Du Deine Arbeit hier mit uns teilst!
:arrow: Weiter so :!: :-D


CU
MC
pyrogx
Posts: 20
Joined: 2004-01-24 03:47
Location: wuppertal
Contact:
 

Re: kleines script zum installieren eines webservers

Post by pyrogx »

hey ein interessent

hier auf jedenfall die neuste version die noch kleinere fehler behebt
bald wird das script auch für sarge verfügbar sein bzw nurnoch da ich dann meinen server auf sarge umstelle/ neuen server bekomme

Code: Select all

#!/bin/bash

echo "Herzlich willkommen bei der Installation eines Webservers."
echo "Dieses Installationsscript wurde von PyroGX entwickelt."
echo "Sie benutzen die Version 0.4"
echo "Start der installation ..."
echo -n "Bitte gib die Standarddomain ein (bsp. pyrogx.de): "
read domain
echo "Lege Stadardordner an..."
cd /etc/skel
mkdir html
mkdir log
mkdir temp
cd html
mkdir cgi
cd /usr
mkdir orginaldateien


echo "Ã?ndere die Sourcelisten ..."
cd /etc/apt/
mv /etc/apt/sources.list /usr/orginaldateien/sources.list
echo 'deb ftp://ftp.de.debian.org/debian/ sarge main contrib
deb-src ftp://ftp.de.debian.org/debian/ sarge main contrib
deb http://non-us.debian.org/debian-non-US sarge/non-US main contrib
deb-src http://non-us.debian.org/debian-non-US sarge/non-US main contrib' >> /etc/apt/sources.list

################
#Update der Quellen
echo "Update der Quellen ..."
################

apt-get update


################
#Sonstige Programme Installieren / Upaten
echo "Sonstige Programme Installieren / Updaten ..."
################

apt-get install nmap screen gcc bzip2 apt wget sed sendmail


################
#Apache Installieren
echo "Apache2 Installieren ..."
################

apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-dev


################
#LibXML installieren
echo "LibXML installieren ..."
################

apt-get install libxml2-dev libxml2-utils


################
#MySQL Installieren
echo "MySQL Installieren ..."
echo -n "Bitte geben sie das Rootpasswort für MySQL ein: "
read sqlpasswort
################

apt-get install mysql-server mysql-client mysql-common libmysqlclient12-dev
/usr/bin/mysqladmin -u root password $sqlpasswort


################
#PHP 5.0.4 installieren
echo "PHP 5.0.4 installieren ..."
################

cd /usr/src
mkdir php
cd php
wget http://de.php.net/get/php-5.0.4.tar.bz2/from/this/mirror
tar xjvf php-5.0.4.tar.bz2
cd php-5.0.4
./configure --enable-memory-limit --enable-safe-mode  --disable-register-globals --enable-track-vars --with-pcre-regex --with-mysql --without-sqlite --without-mm --with-config-file-path=/etc/php --with-apxs2=/usr/bin/apxs2 --prefix=/etc/php
make && make install



################
#proFTPd installieren
echo "proFTPd installieren ..."
################

apt-get install proftpd
addgroup ftpuser
cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells
apt-get install openssl
openssl req -new -x509 -days 365 -nodes  -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

mv /etc/proftpd.conf /usr/orginaldateien/proftpd.conf
echo -n "Bitte gib einen Namen für den FTP-Server ein:"
read ftpserver

echo '   ServerName              	"'$ftpserver'"
   ServerType			standalone
   DeferWelcome		off
   ShowSymlinks		on
   MultilineRFC2228		on
   DefaultServer		on
   AllowOverwrite		on
   TimeoutNoTransfer	600
   TimeoutStalled		600
   TimeoutIdle			1200
   DisplayLogin			welcome.msg
   DisplayFirstChdir		.message
   DenyFilter *.*/
   Port 				21
   MaxInstances		30
   User				nobody
   Group				nogroup
   <Directory /*>
   Umask 				022 022
   AllowOverwrite on
   </Directory>
   DefaultRoot 			~
   <Limit LOGIN>
   DenyGroup 			!ftpuser
   </Limit>
   <Global>
   RootLogin 			off
   RequireValidShell 	on
   </Global>
   UseReverseDNS 	off
   IdentLookups 		off
   LogFormat 			default "%h %l %u %t "%r" %s %b"
   LogFormat 			auth "%v [%P] %h %t "%r" %s"
   LogFormat 			write "%h %l %u %t "%r" %s %b"
   ExtendedLog 		/var/log/ftp_auth.log AUTH auth
   ExtendedLog 		/var/log/ftp_access.log WRITE,READ write
   TLSEngine				on
   TLSLog 				/var/log/tls.log
   TLSProtocol				SSLv23
   TLSOptions				NoCertRequest
   TLSRSACertificateFile		/etc/ssl/certs/proftpd.cert.pem
   TLSRSACertificateKeyFile		/etc/ssl/certs/proftpd.key.pem
   TLSVerifyClient			off
   TLSRequired				off' >> /etc/proftpd.conf

proftpd restart

################
# Java JRE Installieren
################
# DL link unter http://java.sun.com/j2se/1.4.2/download.html holen
################

echo -n "Bitte holen sie sich Downloadlink für Java unter http://java.sun.com/j2se/1.4.2/download.html und geben ihn hier ein:"
read javadllink

cd /etc/
mkdir java
cd /usr/src
mkdir java
cd java

wget $javadllink
mv -f j2re-1_4_2_08-linux-i586.bin?* j2re-1_4_2_08-linux-i586.bin
chmod 755 j2re-1_4_2_08-linux-i586.bin
./j2re-1_4_2_08-linux-i586.bin

cp -R /usr/src/java/j2re1.4.2_08/* /etc/java

################
#Script zum anlegen von neuen Usern anlegen
################

echo '#!/bin/bash

echo -n "Bitte die Domain eingeben (gleichzeitig der Benutzernamen): "
read domain
echo "##  Erstelle Benutzer $domain..."
useradd -d /var/www/$domain -g ftpuser -s /bin/ftp $domain
echo "##  Erstelle Heimatverzeichnis..."
mkdir /var/www/$domain
echo "##  Richte den Virtuellen Host ein..."
echo "<VirtualHost *>
	ServerName $domain
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/$domain/html
	php_admin_value open_basedir /var/www/$domain/html/
	php_admin_value upload_tmp_dir /var/www/$domain/temp
	php_admin_value session.save_path /var/www/$domain/temp/
	php_admin_value safe_mode on
	php_admin_value memory_limit 16M
	php_admin_value upload_max_filesize 16M

	ScriptAlias /cgi/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/www/$domain/log/error.log
	LogLevel warn
	CustomLog /var/www/$domain/log/access.log combined
	<Directory /var/www/$domain/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>" >> /etc/apache2/sites-available/default

echo "##  Kopiere verzeichnisse..."
cp -R /etc/skel/* /var/www/$domain/
echo "##  Lege Stadarddatei an..."
echo "<head><title>Neue Homepage auf '$domain' eingerichtet</title></head><body><center>Soeben wurde die domain <b>$domain</b> auf diesem Server eingerichtet.</center>" >> /var/www/$domain/html/index.html
echo "##  Setze Benutzerberechtigungen..."
chown -R $domain:ftpuser /var/www/$domain
chmod 1770 /var/www/$domain/*
chmod 1770 /var/www/$domain/
chmod 1770 /var/www/$domain/html/*
passwd $domain
echo "##  Starte den Apache neu..."
apache2 -k restart
echo "##  Fertig!!!"' >> /etc/neueruser.sh

chmod u+x /etc/neueruser.sh


################
#Script zum neustarten der Wichtigsten Services anlegen
################

echo '#!/bin/bash

apache2 -k restart
echo "##  Apache 2 wurde neu gestartet..."
proftpd restart
echo "##  proFTPd wurde neu gestatet..."
/etc/init.d/spamassassin restart
echo "##  Spamassassin wurde neu gestatet..."
/etc/init.d/clamav-daemon restart
echo "##  Clamav wurde neu gestatet..."
/etc/init.d/exim4 restart
echo "##  Exim4 wurde neu gestatet..."' >> /etc/restart.sh

chmod u+x /etc/restart.sh


################
#Webuser einrichten
echo "Webuser einrichten ..."
echo -n "Bitte geben Sie den Usernamen für den Default-Host ein: "
read webuser
echo -n "Bitte geben Sie das Passwort für den Default-Host ein: "
read webpass
echo -n "Es wird für phpMyAdmin ein eigener User angelegt, bitte geben Sie hier das Passwort für den User (phpmyadmin) ein: "
read phppass
################


useradd  -g ftpuser -d /var/www/www.$domain/ -s /bin/ftp -p $webpass $webuser
useradd  -g ftpuser -d /var/www/phpmyadmin.$domain/ -s /bin/ftp -p $phppass phpmyadmin

################
# einrichtung es default-hosts
################
usermod -G ftpuser www-data

mv /etc/apache2/sites-available/default /usr/orginaldateien/default

cd /var/www/
rm -r /var/www/*
mkdir www.$domain
cd www.$domain
cp -r /etc/skel/* /var/www/www.$domain/
echo "<head><title>Server fertig eingerichtet</title></head><body><center>Soeben wurde der Server mit der Domain:  <b>"$domain"</b> fertig eingerichtet.<br /><br />Der Server wurde mit dem Installscript von PyroGX installiert.</center>" >> /var/www/www.$domain/html/index.html
echo "<?php
phpinfo();
?>" >> /var/www/www.$domain/html/info.php
chown $webuser:ftpuser /var/www/www.$domain/
chown -R $webuser:ftpuser /var/www/www.$domain/*
chmod 1770 /var/www/www.$domain/*
chmod 1770 /var/www/www.$domain/
chmod 1770 /var/www/www.$domain/html/*

echo 'NameVirtualHost *
<VirtualHost *>
	ServerName '$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/www.'$domain'/html
	php_admin_value open_basedir /var/www/www.'$domain'/html
	php_admin_value upload_tmp_dir /var/www/www.'$domain'/html
	php_admin_value session.save_path /var/www/www.'$domain'/html
	php_admin_value safe_mode on
	php_admin_value memory_limit 16M
	php_admin_value upload_max_filesize 16M
	ErrorLog /var/www/www.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/www.'$domain'/log/access.log combined
	<Directory /var/www/www.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default


################
# phpMyAdmin installieren
################

cd /var/www/
mkdir phpmyadmin.$domain
cd phpmyadmin.$domain
cp -r /etc/skel/* /var/www/phpmyadmin.$domain/
cd /usr/src
mkdir phpmyadmin
cd phpmyadmin
wget http://ovh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.6.2-pl1.tar.bz2
tar xjvf phpMyAdmin-2.6.2-pl1.tar.bz2
cd phpMyAdmin-2.6.2-pl1
cp -r /usr/src/phpmyadmin/phpMyAdmin-2.6.2-pl1/* /var/www/phpmyadmin.$domain/html

chown -R phpmyadmin:ftpuser /var/www/phpmyadmin.$domain/*
chown phpmyadmin:ftpuser /var/www/phpmyadmin.$domain/
chmod 1770 /var/www/phpmyadmin.$domain/*
chmod 1770 /var/www/phpmyadmin.$domain/
chmod 1770 /var/www/phpmyadmin.$domain/html/*

echo '<VirtualHost *>
	ServerName phpmyadmin.'$domain'
	ServerAdmin webmaster@'$domain'
	DocumentRoot /var/www/phpmyadmin.'$domain'/html
	php_admin_value open_basedir /var/www/phpmyadmin.'$domain'/html
	php_admin_value upload_tmp_dir /var/www/phpmyadmin.'$domain'/html
	php_admin_value session.save_path /var/www/phpmyadmin.'$domain'/html
	php_admin_value safe_mode on
	php_admin_value memory_limit 64M
	php_admin_value upload_max_filesize 32M
	php_admin_value max_execution_time 600
	ErrorLog /var/www/phpmyadmin.'$domain'/log/error.log
	LogLevel warn
	CustomLog /var/www/phpmyadmin.'$domain'/log/access.log combined
	<Directory /var/www/phpmyadmin.'$domain'/html>
	   Order allow,deny
	   Allow from all
	   AllowOverride All
	</Directory>
	ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default
apache2 -k restart

echo "Bitte passen Sie die config von phpMyAdmin manuell unter /var/www/phpmyadmin.pyrogx.de/html/config.inc.php an Ihre bedürfnisse an!!!"
echo "FERTIG !!! Vielen dank das Sie mein Script zum installieren eines Webservers benutzen."
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: kleines script zum installieren eines webservers

Post by ffl »

Vielleicht wäre es hilfreich wenn du nicht in jedem Beitrag dein neues Skript postest sondern vielleicht einen Diff zum vorhergehenden bzw. das Skript gar nicht postest sondern einen Downloadlink angibst.
Vielleicht wäre das auch im Forum "Userprojekte" besser aufgehoben!
zwerg1st
Posts: 12
Joined: 2005-05-15 15:34
 

Re: kleines script zum installieren eines webservers

Post by zwerg1st »

Nice!
Ich mache zwar lieber alles manuel, aber eine wirklich nette Idee!
Solange es nicht darin endet das jeder noob nur noch ein Script ausführen muss um einen Server zu installieren... :)
bungeebug
Posts: 187
Joined: 2004-04-14 10:08
 

Re: kleines script zum installieren eines webservers

Post by bungeebug »

btw. sowas gibts und nennt sich Apachetoolbox. Einfach mal googlen!
pyrogx
Posts: 20
Joined: 2004-01-24 03:47
Location: wuppertal
Contact:
 

Re: kleines script zum installieren eines webservers

Post by pyrogx »

was hat mein script mit der Apachetoolbox zu tuhen?
das sind zwei verschiedene sachen wie tag und nacht

kann man dasschon als userprojekt sehen?

nen DL link will ich deshalb nicht setzen da mein server halt oft neu gemacht wird und ich deshalb direkt mehrer mirrors bräuchte
aber ich guck mich mal um (2 hätte ich fast sicher)
das dingen auf SF zu posten is sicher etwas übertrieben


@zwerg1st
das dingen is von noobs für noobs :)
bin selbst noch ein anfänger in sachen linux/webserver

da ich heute nen neuen server bekomme mit sarge drauf wird es das dingen bald nurnoch für sarge geben da mein woody server ausläuft
(wechsel von strato zu hetzner)
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: kleines script zum installieren eines webservers

Post by Joe User »

Wenn Du das Script als Userprojekt bei olfi einreichst, würde ich das Script für Dich hosten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
zwerg1st
Posts: 12
Joined: 2005-05-15 15:34
 

Re: kleines script zum installieren eines webservers

Post by zwerg1st »

pyrogx wrote: @zwerg1st
das dingen is von noobs für noobs :)
bin selbst noch ein anfänger in sachen linux/webserver
Mit "noob" bist du in meiner definition von "noob" nicht gemeint. Was ich meine sind leute alla "Ahh ein Server für 29,99 â?¬/mon, ich hab zwar noch nie was mit linux gemacht, aber das wird schon nicht so schwer sein!".

Solche Leute sollen mal schön auf die Fresse fallen.

Ich behaupte nicht das ich mit Linux genauso gut umgehen kann wie mit Windows, oder geschweige denn besser. Aber ich kann vernümpftig mit der Konsole umgehen und bin jederzeit fähig an Wissen in dieser Richtung ran zu kommen. Ich weis wie webserver etc. funktionieren. Ich verstehe auch soweit noch was zum thema security, das ich nen Server dicht bekomme.

Aber das sich Leute (verstärkt) die null, und ich meine wirklich 0 Ahnung haben, einen Server mieten und nicht einmal wissen wie sie via SSH auf ihn zugreifen, das ist in meinen Augen erschreckend, und sollte auf keinen Fall unterstützt werden. Man sollte die Grund-linuxkenntnisse auf jedenfall bereits haben. (Ist jetzt ne Grundsatz Diskusion ich weis, es hat auch nichts mit deinen Skript zu tun :-) )

Lange Rede ohne Sinn, solche Skripts sind wirklich hilfreich, aber man sollte sie nur einsetzen wenn man meint das nötige knowhow zu haben, es auch ohne hinzukriegen :)
pyrogx
Posts: 20
Joined: 2004-01-24 03:47
Location: wuppertal
Contact:
 

Re: kleines script zum installieren eines webservers

Post by pyrogx »

bis vor wenigen wochen hatte ich eigentlich garkeine ahnung von linux
ich wuste zwar was die shell ist aber bis dato habe ich immer nur confixx/visas benutzt

ich persönlich bezeichne mich in sachen linux noch als noob
benutzefür mein desktop systemhalt auschließlich windows :) (steinigt mich)


allerdings war ich es dann irgendwann leid diese tools zu benutzen
daraus is dann dieses script entstanden
das is eigentlich nur ne sammlung diverser tutorials die "automatisiert" wurden :)

habe noch kleinereänderungen eingebaut ;)
in zukunft werde ich allerdings nichtmehr soviel testen könne wie momentan (bisher wurde mein server eigentlich garnicht benutzt)

soltle also jemand seinen server neu machen wollen und könnte 1-2 tage damit warten wäre es super wenn diese person dann meine neusten versionen mal kurz antesten könnten ob alles geht
andy25
Posts: 33
Joined: 2005-03-17 12:45
 

Re: kleines script zum installieren eines webservers

Post by andy25 »

Hallo,

was ist mit der Version für Sarge?

Gruß

andy
Post Reply