Na de zomervakantie, start in september het nieuwe schooljaar. De cursus Webdesign krijgt dan een volledig up to date virtuele webserver. Of dit een geschenk is moet nog blijken, want hoewel de hier beschreven webserver bij mij thuis werkt, kunnen er in klas een paar bugs tevoorschijn komen. Door de toegevoegde Sociale Netwerk onderdelen zijn de mogelijkheden enorm toegenomen. De Sociale Netwerk onderdelen zijn nog in een beta stadium, m.a.w. ze werken, maar werden nog niet ten gronde getest. Indien je bij het gebruik van deze Sociale Netwerk onderdelen of andere onderdelen bugs ontdekt, geef me dan via de reacties onderaan deze pagina een seintje of nog beter stuur met de knop Problemen melden op de webpagina van de webserver een bugrapport. De hier beschreven webserver wordt dus vanaf september in verschillende klaslokalen en bij de cursisten thuis (om te oefenen) grondig op verschillende systemen getest. Eventuele aanpassingen zullen op deze pagina gepubliceerd worden (hou dus de datum rechtsbovenaan in de gaten).
De Stedelijke Nijverheids- en Taalleergangen Brugge (hierna ook "SNT" genoemd) geeft u als gebruiker voor de door ons ontwikkelde software het recht deze software op meerdere computers te gebruiken.
Bovenstaande licentieregeling geldt uiteraard niet voor alle overige software zoals de GPL-software.
Voor de licentievoorwaarden van de software van derden verwijzen wij naar de desbetreffende softwarefabrikanten.
Dit pakket bevat een verzameling van verschillende programma's.
Vele daarvan kunnen alleen onder specifieke omstandigheden worden gebruikt.
Wij waarschuwen uitdrukkelijk tegen het gebruik van de programma's zonder grondige kennis van hun eigenschappen.
De SNT geeft geen enkele garantie betreffende het correct functioneren in willekeurig wat voor omgeving en aanvaardt ook geen enkele aansprakelijkheid voor schade ontstaan door het uitvallen van computers, gegevensverlies, beschadigingen of andere oorzaken, noch voor een uit een schadegeval voortvloeiende verdere schade van wat voor aard dan ook.
Het gebruik van de programma's gebeurt dus uitsluitend op eigen risico.
Copyright van de programma's berust bij de auteurs.
Alle overige programma's: copyright (c) 2013 Stedelijke Nijverheids- en Taalleergangen, Arsenaalstraat 4, 8000 Brugge (België).
Alle rechten voorbehouden.
Deze webserver gebruikt openSUSE 12.3 en VMware Player.
Juni 2013, Dany Pinoy voor SNT Brugge.
De webserver kun je installeren op zowel Linux, Windows als Mac OS X. Het Zip-archief met het Webserver pakket kun je hier downloaden (na het klikken op deze koppeling wordt het Webserver pakket klaargezet, en dit kan wat tijd in beslag nemen, wees dus geduldig). Het Zip-archief bevat drie bestanden (Webserver.mf, Webserver.ovf en Webserver-disk1.vmdk van ca. 700 MB). Voor je het Webserver pakket kunt gebruiken, moet je het gedownloade Zip-archief uitpakken (kan wat tijd in beslag nemen).
De virtuele webserver heeft naast het Webserver pakket het programma VMware Player nodig. De versies voor Linux en Windows kun je hier gratis downloaden en gebruiken. Linux gebruikers kunnen de website linux.pindanet.be raadplegen om de VMware Player te installeren.
Installeer de VMware Player door het installatieprogramma te starten. De dialoogvensters van het installatieprogramma kun je allemaal bevestigen met de standaard voorgestelde instellingen.
Na de installatie, start je de applicatie VMware Player. Accepteer de Licentie overeenkomst. Indien je een dialoogvenster krijgt met een Software Update naar VMware Workstation, klik je op de knop Skip this version (VMware Workstation is de betalende versie met extra mogelijkheden). Klik op de koppeling Open a Virtual Machine. Selecteer het uitgepakte Webserver OVF-bestand en klik op de knop Openen. Bevestig het importeren door op de knop Import te klikken.
Het importeren van dit bestand kan naargelang de snelheid van uw computer veel tijd in beslag nemen.
De drie uitgepakte bestanden en het Zip-archief heb je na het importeren in de VMware Player in principe niet meer nodig.
De virtuele webserver heeft naast het Webserver pakket het programma VirtualBox nodig. De versies voor Linux, Mac OS X en Windows kun je hier gratis downloaden en gebruiken.
Installeer VirtualBox door het installatieprogramma te starten. De dialoogvensters van het installatieprogramma kun je allemaal bevestigen met de standaard voorgestelde instellingen (ook de Windows-beveiligings waarschuwingen i.v.m. door Oracle Corporation ondertekende stuurprogramma's).
Na de installatie, start je de applicatie VirtualBox. Voer in het menu Bestand de opdracht Appliance importeren ... uit. Klik op de knop Open Appliance.... Selecteer het uitgepakte Webserver OVF-bestand en klik op de knop Openen. Bevestig het importeren door op de knop Volgende te klikken. Klik op de knop Importeren.
Het importeren van dit bestand kan naargelang de snelheid van uw computer veel tijd in beslag nemen.
De drie uitgepakte bestanden en het Zip-archief heb je na het importeren in VirtualBox in principe niet meer nodig.
Start de VMware Player. Klik in het linker deelvenster met de rechtermuisknop op Webserver en voer de opdracht Delete VM from Disk uit. Daar deze bewerking definitief is, vraagt VMware Player een bevestiging (op de knop Yes klikken).
Na het verwijderen van de webserver van de computer blijft het programma VMware Player op de computer staan. Dit programma kun je in het Configuratiescherm met de opdracht Een Programma verwijderen verwijderen.
Start VirtualBox. Klik in het linker deelvenster met de rechtermuisknop op vm en voer de opdracht Verwijderen uit. Klik op de knop Verwijder alle bestanden.
Na het verwijderen van de webserver van de computer blijft het programma Oracle VM VirtualBox op de computer staan. Dit programma kun je in het Configuratiescherm via de opdracht Een Programma verwijderen verwijderen.
Start de VMware Player.
Selecteer in het linker deelvenster de virtuele Webserver.
Klik in het linker deelvenster op de knop Play virtual machine.
Bij elke start verschijnt het venster Software Updates waarmee je de VMware Tools for Linux kunt downloaden.
Deze software heb je voor de webserver niet nodig en mag je negeren door op de knop Remind Me Later te klikken.
Indien er verwisselbare apparaten op uw computer aangesloten zijn, verschijnt het dialoogvenster Removable Devices.
Ook deze verwisselbare apparaten worden door de webserver niet gebruikt.
Om dit dialoogvenster bij de volgende start van de webserver niet meer te krijgen, plaats je een vinkje bij de optie Do not show this hint again en klik je op de knop OK.
Na het starten verschijnt een venster zoals in de afbeelding hieronder.
Let daarbij op de regel Voor meer informatie surf je naar http:// gevolgd door het IP adres van de webserver.
Dit venster mag je minimaliseren, de webserver blijft werken in geminimaliseerde weergave.
Mocht je toevallig op het zwarte vlak geklikt hebben, werkt het toetsenbord en de muis enkel nog in de virtuele webserver.
Om de muis en het toetsenbord terug in Windows te kunnen gebruiken, druk je de toetscombinatie Ctrl+Alt.
Start VirtualBox. Selecteer in het linker deelvenster de virtuele Webserver vm. Klik in de werkbalk op de knop Start. Bij elke start verschijnt het venster Informatie waarin VirtualBox de muis en het toetsenbord opeist. Je kunt de muis en het toetsenbord na het starten van de virtuele webserver terug in Windows gebruiken na het drukken op de rechter Control toets. Bevestig het informatievenster door op de knop OK te klikken. Een tweede Informatie venster meld dat de virtuele computer de muis en het toetsenbord pas na een klik in het venster van de virtuele webserver zal overnemen. Bevestig het informatievenster door op de knop OK te klikken. Om deze dialoogvensters bij de volgende start van de webserver niet meer te krijgen, plaats je een vinkje bij de optie Geef deze boodschap niet opnieuw en klik je op de knop OK. Na het starten verschijnt een venster gelijkend op de afbeelding hierboven. Let daarbij op de regel Voor meer informatie surf je naar http:// gevolgd door het IP adres van de webserver. Dit venster mag je minimaliseren, de webserver blijft werken in geminimaliseerde weergave.
Om de webserver af te sluiten, klik je bovenaan op deze webpagina in het Bedieningspaneel op de knop Webserver afsluiten. Daarna wacht je tot de virtuele computer afgesloten wordt en het venster zich automatisch sluit, bij VirtualBox moet je het hoofdvenster daarna nog afsluiten.
Je kan de Webserver ook afsluiten door op het zwarte scherm van de virtuele computer te klikken.
Daarna typ je de login root gevolgd door Enter in.
Als wachtwoord gebruik je snt+4567 gevolgd door Enter (bij het typen van het wachtwoord zie je niets verschijnen, zelfs geen bolletjes, je moet het wachtwoord dus blind typen).
Typ daarna de opdracht shutdown -h now
gevolgd door Enter.
Opgelet: Sluit de Webserver niet af via de sluitknop in de titelbalk van het VMware of VirtualBox venster. Daardoor wordt de Webserver niet afgesloten, maar gaat deze in een slaaptoestand. Bij de volgende start van de Webserver ontwaakt de Webserver terug uit zijn slaaptoestand. Een uit zijn slaap ontwakende computer krijgt geen nieuw IP-adres en zal dus niet correct werken (bereikbaar zijn). Daarvoor sluit je de ontwaakte virtuele computer correct af (tweede methode) en herstart je de Webserver.
De FTP server kun je gebruiken om bestanden te publiceren.
De FTP server heeft standaard 30 gebruikers (van pc01 tot en met pc30) die enkel toegang krijgen via het wachtwoord snt+4567 (hetzelfde wachtwoord voor alle gebruikers, eenvoudig voor de les).
Elke gebruiker heeft in de gedeelde map htdocs zijn eigen map (zie Bestandsbeheer).
De FTP server is bereikbaar via ftp://IPadres of in Dreamweaver via het dialoogvenster Site-instelling (zie afbeelding).
Let op het vinkje bij Passieve FTP gebruiken (standaard in Dreamweaver CS6).
De FTP server start automatisch bij het opstarten van de webserver.
De mailserver bestaat uit een SMTP Server (om mails te verzenden) en een IMAP Server (om mails te verzamelen en ter beschikking van een mail-client te stellen, dus om mails te ontvangen). De mailserver kent standaard 30 gebruikers (van pc01@webserver.snt tot en met pc30@webserver.snt). Al deze gebruikers hebben hetzelfde wachtwoord (namelijk: snt+4567). De mailserver start automatisch op bij het opstarten van de webserver. Elke gebruiker heeft in de gedeelde map htdocs zijn eigen map met daarin de map Mail met daarin de ontvangen, verstuurde en verwijderde mails (zie Bestandsbeheer). De map Mail wordt automatisch aangemaakt bij het eerste gebruik van de mailserver (verzenden of ontvangen van de eerste mail). Deze map wordt beheerd door de mailserver en kan dus niet door een FTP gebruiker verwijderd worden (kan dus ook niet verwijderd worden vanuit het publiceren venster van Dreamweaver).
Om tijdens de lessen webdesign op een eenvoudige manier de resultaten van een verzonden formulier te controleren, kun je de mailboxen ook raadplegen door te surfen naar de submap webmail (vb: http://IPadres/webmail.
Vul de volgende zaken in:
Gebruikersnaam: pc01 (welke mailbox wil je raadplegen)
Wachtwoord: snt+4567
En klik op de knop Inloggen om mails te lezen.
Als cgi-script om formulieren te verwerken werd gekozen voor het script FormMail 8.36 van Tectite.com.
Er kunnen enkel mails gestuurd worden naar mailadressen die eindigen op @webserver.snt (zoals pc01@webserver.snt).
Het formulier moet bij het verzenden het script /cgi-bin/formmail.php oproepen (Actie) en gebruikt de POST methode. Het script om het formulier om te zetten naar een e-mail werkt enkel indien het formulier op de webserver staat. M.a.w. publiceer het formulier op de webserver alvorens het te testen.
<input type="hidden" name="recipients" value="pc01@webserver.snt,pc02@webserver.snt" />
<select name="recipients[]" multiple="multiple">
<option value="pc01@webserver.snt">Jacob</option>
<option value="pc02@webserver.snt">Marie</option>
</select>
<input type=hidden name="subject" value="Resultaten van webformulier">
<input type="hidden" name="cc" value="pc03@webserver.snt" />
<input type="hidden" name="bcc" value="pc04@webserver.snt,pc05@webserver.snt" />
Voor deze velden mogen ook keuzelijsten of selectievakjes gebruikt worden.<input type="hidden" name="env_report" value="REMOTE_HOST,REMOTE_ADDR,HTTP_USER_AGENT,AUTH_TYPE,REMOTE_USER" />
<input type="hidden" name="autorespond" value="Subject=Bedank voor de informatie,HTMLTemplate=dankemail.html" />
Elke gebruiker (pc01 tot en met pc30 gebruiken als wachtwoord snt+4567) heeft zijn eigen database (database01 tot en met database30). De gebruikers kunnen hun eigen database naar believen manipuleren. De root gebruiker (wachtwoord snt+4567) kan alle databases manipuleren en beheren. De eenvoudigste manier om de databases te beheren is via phpMyAdmin, bereikbaar via de webinterface http://IPadres/phpMyAdmin.
Om de virtuele computer op andere systemen nieuwe netwerkverbindingen te laten aanmaken (meerdere virtuele webservers op één netwerk zijn daardoor mogelijk), moet bij de eerste start de virtuele computer als gekopieerd beschouwd worden.
Sluit daarvoor de VMware Player af.
Dit kun je als standaard instellen door de regel
uuid.action = "create"
toe te voegen aan het configuratiebestand vmware/Webserver/Webserver.vmx van de virtuele computer (bron: sanbarrow.com).
Linux opdracht: echo "uuid.action = \"create\"" >> vmware/Webserver/Webserver.vmx
Bij de eerste start van de virtuele computer klik je op het zwarte scherm van de virtuele computer om het toetsenbord en de muis aan de virtuele computer over te dragen. Daarna druk je bij het verschijnen van het VMware logo op de Esc toets om het opstartmenu te activeren. In het opstartmenu van de virtuele computer selecteer je met de pijl toetsen <Enter Setup>. Druk Return om de bios van de virtuele computer aan te passen. Bij de Keyboard Features kun je de NumLock optie met de spatiebalk instellen op On. Dit zorgt ervoor dat bij het opstarten van de virtuele computer de numerieke cijfertoetsen geactiveerd worden. Druk F10 om de instelling op te slaan en openSUSE 12.3 te installeren.
shutdown -h now
uit te voeren.zypper up
shutdown -r now
joe /lib/systemd/system/pinda.service
).[Unit]
Description=Login message
After=syslog.target network.target time-sync.target
[Service]
Type=simple
ExecStart=/bin/sh -c "/root/bin/pindaExecStart.sh"
[Install]
WantedBy=multi-user.target
joe /root/bin/pindaExecStart.sh
) met de volgende opdrachten aan:
# wacht tot netwerkverbinding klaar is
sleep 15
IPadres=`/sbin/ip a | /usr/bin/awk '/g/{print$2}' | /usr/bin/cut -d/ -f1`
# plaats het IP adres op het scherm
echo -ne "\n\nWelkom op de oefenwebserver\nVoor meer informatie surf je naar http://$IPadres\n2013 Dany Pinoy voor SNT Brugge\n\nusers login: " > /dev/tty1
chmod +x /root/bin/pindaExecStart.sh
systemctl enable pinda.service
plaatst het script in de opstartprocedure van de webserver.echo -ne "\033[9;0]" >> /etc/issue
uit.zypper install vsftpd
systemctl enable vsftpd.service
joe /etc/vsftpd.conf
) het configuratiebestand van de FTP server als volgt aan:
write_enable=NO
te vervangen door write_enable=YES
#local_enable=YES
te vervangen door local_enable=YES
(standaard in openSUSE 12.3).#local_umask=022
te vervangen door local_umask=022
#chroot_local_user=YES
te vervangen door chroot_local_user=YES
chroot_local_user=YES
de regel allow_writeable_chroot=YES
toe.yast2 firewall services add zone=EXT service=service:vsftpd
systemctl start vsftpd.service
(enkel nodig als je wilt testen zonder te herstarten).zypper install apache2 apache2-mod_fcgid php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
Probleem: apache2-mod_php5-5.3.17-3.1.1.i586 vereist php5 = 5.3.17, Maar aan deze eis kan niet voldaan worden niet-installeerbare aanbieders: php5-5.3.17-3.1.1.i586[openSUSE-12.3-1.7] Oplossing 1: De volgende acties zullen uitgevoerd worden: apache2-mod_php5-5.3.17-3.1.1.i586 niet installeren php5-bcmath-5.3.17-3.1.1.i586 niet installeren php5-bz2-5.3.17-3.1.1.i586 niet installeren php5-calendar-5.3.17-3.1.1.i586 niet installeren php5-ctype-5.3.17-3.1.1.i586 niet installeren php5-curl-5.3.17-3.1.1.i586 niet installeren php5-dom-5.3.17-3.1.1.i586 niet installeren php5-exif-5.3.17-3.1.1.i586 niet installeren php5-fastcgi-5.3.17-3.1.1.i586 niet installeren php5-ftp-5.3.17-3.1.1.i586 niet installeren php5-gd-5.3.17-3.1.1.i586 niet installeren php5-gettext-5.3.17-3.1.1.i586 niet installeren php5-gmp-5.3.17-3.1.1.i586 niet installeren php5-iconv-5.3.17-3.1.1.i586 niet installeren php5-imap-5.3.17-3.1.1.i586 niet installeren php5-ldap-5.3.17-3.1.1.i586 niet installeren php5-mbstring-5.3.17-3.1.1.i586 niet installeren php5-mcrypt-5.3.17-3.1.1.i586 niet installeren php5-mysql-5.3.17-3.1.1.i586 niet installeren php5-odbc-5.3.17-3.1.1.i586 niet installeren php5-openssl-5.3.17-3.1.1.i586 niet installeren php5-pcntl-5.3.17-3.1.1.i586 niet installeren php5-pgsql-5.3.17-3.1.1.i586 niet installeren php5-posix-5.3.17-3.1.1.i586 niet installeren php5-shmop-5.3.17-3.1.1.i586 niet installeren php5-snmp-5.3.17-3.1.1.i586 niet installeren php5-soap-5.3.17-3.1.1.i586 niet installeren php5-sockets-5.3.17-3.1.1.i586 niet installeren php5-sqlite-5.3.17-3.1.1.i586 niet installeren php5-sysvmsg-5.3.17-3.1.1.i586 niet installeren php5-sysvsem-5.3.17-3.1.1.i586 niet installeren php5-sysvshm-5.3.17-3.1.1.i586 niet installeren php5-tokenizer-5.3.17-3.1.1.i586 niet installeren php5-wddx-5.3.17-3.1.1.i586 niet installeren php5-xmlrpc-5.3.17-3.1.1.i586 niet installeren php5-xsl-5.3.17-3.1.1.i586 niet installeren php5-zlib-5.3.17-3.1.1.i586 niet installeren php5-pear-5.3.17-3.1.1.noarch niet installeren Oplossing 2: deïnstallatie van patterns-openSUSE-minimal_base-conflicts-12.3-7.10.1.i586 Oplossing 3: breek apache2-mod_php5-5.3.17-3.1.1.i586 door enige van zijn afhankelijkheden te negeren Kies uit de bovenstaande oplossingen door een nummer of annuleren [1/2/3/a] (a): 2koos ik voor oplossing 2 (bekend conflict in het patterns-openSUSE-minimal_base-conflicts-12.3-7.10.1.i586 pakket).
systemctl enable apache2.service
yast2 firewall services add zone=EXT service=service:apache2
systemctl start apache2.service
(enkel nodig als je wilt testen zonder te herstarten).echo "<?php phpinfo(); ?>" > /srv/www/htdocs/info.php
uit te voeren en daarna te surfen naar http://IPadres/info.phprm /srv/www/htdocs/info.php
for gebruiker in pc01 pc02 pc03 pc04 pc05 pc06 pc07 pc08 pc09 pc10 pc11 pc12 pc13 pc14 pc15 pc16 pc17 pc18 pc19 pc20 pc21 pc22 pc23 pc24 pc25 pc26 pc27 pc28 pc29 pc30; do
useradd $gebruiker -p snt+4567 -d /srv/www/htdocs/$gebruiker -s /bin/false;
passwd $gebruiker <<EOF
snt+4567
snt+4567
EOF
mkdir /srv/www/htdocs/$gebruiker
chown $gebruiker:users /srv/www/htdocs/$gebruiker
done
Bij het intypen van deze opdracht verschijnen vanaf de tweede regel >-tekens voor de regels.
zypper install exim
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...
Probleem: postfix-2.9.6-1.2.1.i586 is in conflict met exim die geleverd is door exim-4.80.1-3.1.1.i586
Oplossing 1: deïnstallatie van postfix-2.9.6-1.2.1.i586
Oplossing 2: exim-4.80.1-3.1.1.i586 niet installeren
Kies uit de bovenstaande oplossingen door een nummer of annuleren [1/2/a] (a): 1
Afhankelijkheden oplossen...
Afhankelijkheden tussen pakketten oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
exim
Het volgende pakket zal worden VERWIJDERD:
postfix
1 nieuw te installeren pakket, 1 te verwijderen.
Totale downloadgrootte: 1,2 MiB Na de operatie zal 1,1 KiB worden vrijgemaakt.
Doorgaan? [j/n/?] (j):
pakket exim-4.80.1-3.1.1.i586 wordt opgehaald (1/1), 1,2 MiB ( 2,5 MiB uitgepakt)
Ophalen: exim-4.80.1-3.1.1.i586.rpm ............................................[klaar (958,7 KiB/s)]
(1/2) Verwijderen van postfix-2.9.6-1.2.1 ....................................................[klaar]
Aanvullende rpm-uitvoer:
redirecting to systemctl stop postfix
warning: /etc/postfix/master.cf saved as /etc/postfix/master.cf.rpmsave
warning: /etc/postfix/main.cf saved as /etc/postfix/main.cf.rpmsave
(2/2) Installeert: exim-4.80.1-3.1.1 .........................................................[klaar]
Aanvullende rpm-uitvoer:
copying default config file to /etc/exim/exim.conf
Updating /etc/sysconfig/exim...
joe /etc/exim/exim.conf
)
# primary_hostname =
primary_hostname = webserver.snt
systemctl enable exim.service
systemctl start exim.service
(enkel nodig als je wilt testen zonder te herstarten).zypper install mailx
echo "Bericht van dany" | mail -s "Testbericht" pc01@webserver.snt
mail -u pc01
wget http://www.tectite.com/formmail.zip
unzip formmail.zip formmail.php -d /srv/www/cgi-bin/
rm formmail.zip
wget -O language_nl.zip http://www.tectite.com/vbforums/attachment.php?attachmentid=199&d=1179263333
unzip language_nl.zip language.inc -d /srv/www/cgi-bin/
rm language_nl.zip
joe /srv/www/cgi-bin/formmail.php
als volgt aan:
$TARGET_EMAIL = array(EMAIL_NAME."@yourhost\.com$");
$TARGET_EMAIL = array(EMAIL_NAME."@webserver\.snt$");
define("DEF_ALERT","");
define("DEF_ALERT","sntcursist@webserver.snt");
mail -u sntcursist
of de beheerder de testmail ontvangen heeft.zypper install dovecot21
joe /etc/dovecot/conf.d/10-auth.conf
) als volgt aan:
#disable_plaintext_auth = yes
disable_plaintext_auth = no
joe /etc/dovecot/conf.d/10-mail.conf
) als volgt aan:
#mail_location =
mail_location = mbox:~/Mail:INBOX=/var/spool/mail/%u
joe /etc/dovecot/conf.d/10-ssl.conf
) als volgt aan:
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem
systemctl enable dovecot.service
systemctl start dovecot.service
(enkel nodig als je wilt testen zonder te herstarten).telnet localhost 143
1 login pc01 snt+4567
1 select inbox
1 logout
joe /root/bin/pindaExecStart.sh
) aan het script /root/bin/pindaExecStart.sh toe te voegen:
# Herstart dovecot voor VirtualBox
if [ "`/sbin/lspci | /usr/bin/grep VirtualBox`" ]; then
/usr/bin/systemctl restart dovecot.service
fi
zypper install mariadb
systemctl enable mysql.service
shutdown -r now
mysql_secure_installation
uit te voeren.
Doorloop de assistent en bevestig daarbij alle aanbevolen beveiligingsinstellingen. Gebruik als root wachtwoord snt+4567.for gebruiker in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do
query="CREATE USER 'pc$gebruiker'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'pc$gebruiker'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`database$gebruiker\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`database$gebruiker\` . * TO 'pc$gebruiker'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
done
Bij het intypen van deze opdracht verschijnen vanaf de tweede regel >-tekens voor de regels.zypper install phpmyadmin
mysql --password=snt+4567 -e "DROP USER pc01@localhost;"
mysql --password=snt+4567 -e "DROP DATABASE database01;"
mysqldump --add-drop-table -u pc01 -p database01 > backup.sql
zypper install roundcubemail
systemctl restart apache2.service
query="CREATE USER 'roundcubemail'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'roundcubemail'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`roundcubemail\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`roundcubemail\` . * TO 'roundcubemail'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
joe /etc/roundcubemail/main.inc.php
) als volgt aan:
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['enable_installer'] = true;
joe /etc/roundcubemail/db.inc.php
) als volgt aan:
$rcmail_config['db_dsnw'] = 'mysql://roundcubemail:snt+4567@localhost/roundcubemail';
joe /etc/roundcubemail/main.inc.php
) als volgt aan:
$rcmail_config['enable_installer'] = false;
joe /etc/apache2/conf.d/roundcubemail.conf
) als volgt aan:
Alias /roundcube /srv/www/roundcubemail
Alias /webmail /srv/www/roundcubemail
zypper install samba
.sed -i.ori -e '/workgroup/a\\tsecurity = share' /etc/samba/smb.conf
echo -e '[htdocs]\n\tcomment = htdocs\n\tpath = /srv/www/htdocs\n\tread only = no\n\tpublic = yes\n\thide dot files = no\n\tforce user = root\n' >> /etc/samba/smb.conf
Daarbij krijgt de gedeelde map lees- en schrijfrechten, is deze voor iedereen toegankelijk, worden verborgen mappen en bestanden getoond en wordt de aangemelde gebruiker root (met alle systeembeheerrechten) (zie Beveiliging)systemctl enable smb.service
systemctl start smb.service
(enkel nodig als je wilt testen zonder te herstarten).yast2 firewall services add zone=EXT service=service:samba-server
zypper install bind
systemctl enable named.service
yast2 firewall services add zone=EXT service=service:bind
systemctl start named.service
(enkel nodig als je wilt testen zonder te herstarten).dig @IPadres linux.pindanet.be
, liefst vanaf een andere computer.
Voer deze opdracht tweemaal uit en vergelijk de zoektijd (Query time).
Met andere woorden de DNS server werkt als een proxy voor het opzoeken van ip adressen.zypper install squid
systemctl enable squid.service
uit.
Let op dit zorgt bij het afsluiten van de webserver voor een extra afsluittijd van enkele minuten (kan storend werken op het einde van de les).yast2 firewall services add zone=EXT tcpport=3128
systemctl start squid.service
(enkel nodig als je wilt testen zonder te herstarten).export http_proxy=http://IPadres:3128/;wget http://linux.pindanet.be
, liefst vanaf een andere computer.
Voer deze opdracht tweemaal uit en vergelijk de downloadsnelheid in MB/s.zypper install squidview
wget http://ftp.drupal.org/files/projects/drupal-7.22.tar.gz
tar -xzvf drupal-7.22.tar.gz -C /srv/www/htdocs/
.rm drupal-7.22.tar.gz
.mv /srv/www/htdocs/drupal-7.22 /srv/www/htdocs/drupal
naar drupal.wget http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.22.nl.po
mv drupal-7.22.nl.po /srv/www/htdocs/drupal/profiles/standard/translations/
cp /srv/www/htdocs/drupal/sites/default/default.settings.php /srv/www/htdocs/drupal/sites/default/settings.php
.chown -R wwwrun /srv/www/htdocs/drupal
.query="CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'drupal'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`drupal\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`drupal\` . * TO 'drupal'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
chmod u=rw,o=r,a=r /srv/www/htdocs/drupal/sites/default/settings.php
chmod go-w /srv/www/htdocs/drupal/sites/default
joe /etc/apache2/conf.d/drupal.conf
) met de volgende inhoud:<Directory /srv/www/htdocs/drupal>
AllowOverride All
</Directory>
wget http://nl.wordpress.org/wordpress-3.5.1-nl_NL.tar.gz
tar -xzvf wordpress-3.5.1-nl_NL.tar.gz -C /srv/www/htdocs/
.rm wordpress-3.5.1-nl_NL.tar.gz
.query="CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'wordpress'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`wordpress\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`wordpress\` . * TO 'wordpress'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
useradd wordpress -p snt+4567 -d /srv/www/htdocs/wordpress -s /bin/false
passwd wordpress
chown -R wordpress:users /srv/www/htdocs/wordpress/
.cp /srv/www/htdocs/wordpress/wp-config-sample.php /srv/www/htdocs/wordpress/wp-config.php
.joe /srv/www/htdocs/wordpress/wp-config.php
) als volgt aan:
define('DB_NAME', 'database_name_here');
define('DB_NAME', 'wordpress');
define('DB_USER', 'username_here');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'password_here');
define('DB_PASSWORD', 'snt+4567');
define('FTP_HOST', 'localhost');
define('FTP_USER', 'wordpress');
define('FTP_PASS', 'snt+4567');
joe /root/bin/pindaExecStart.sh
) aan het script /root/bin/pindaExecStart.sh toe:
# Vervang in WordPress het vorige IP adres door het nieuwe IP adres
oudIPadres=$(/usr/bin/mysql -u wordpress -p wordpress --password=snt+4567 -s -N -e "SELECT option_value FROM wp_options WHERE option_name = 'siteurl'" | /usr/bin/cut -d/ -f3)
/usr/bin/mysql -u wordpress -p wordpress --password=snt+4567 -e "UPDATE wp_options SET option_value = replace(option_value, 'http://$oudIPadres', 'http://$IPadres') WHERE option_name = 'home' OR option_name = 'siteurl';"
/usr/bin/mysql -u wordpress -p wordpress --password=snt+4567 -e "UPDATE wp_posts SET guid = replace(guid, 'http://$oudIPadres', 'http://$IPadres');"
/usr/bin/mysql -u wordpress -p wordpress --password=snt+4567 -e "UPDATE wp_posts SET post_content = replace(post_content, 'http://$oudIPadres', 'http://$IPadres');"
/usr/bin/mysql -u wordpress -p wordpress --password=snt+4567 -e "UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://$oudIPadres', 'http://$IPadres');"
wget -O elgg-1.8.13.zip http://elgg.org/getelgg.php?forward=elgg-1.8.13.zip
unzip elgg-1.8.13.zip -d /srv/www/htdocs/
rm elgg-1.8.13.zip
mv /srv/www/htdocs/elgg-1.8.13 /srv/www/htdocs/elgg
naar elgg.wget -O dutch_translation_v1.8.13.zip http://community.elgg.org/plugins/download/1198269
unzip dutch_translation_v1.8.13.zip -d /srv/www/htdocs/elgg/
cp -r /srv/www/htdocs/elgg/dutch_translation/* /srv/www/htdocs/elgg/
rm -r /srv/www/htdocs/elgg/dutch_translation
rm dutch_translation_v1.8.13.zip
mkdir /srv/www/htdocs/elggdata
chown -R wwwrun /srv/www/htdocs/elggdata
joe /etc/apache2/conf.d/elgg.conf
) met de volgende inhoud:<Directory /srv/www/htdocs/elgg>
AllowOverride All
</Directory>
systemctl restart apache2.service
query="CREATE USER 'elgg'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'elgg'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`elgg\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`elgg\` . * TO 'elgg'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
chmod go+w /srv/www/htdocs/elgg
.chmod go+w /srv/www/htdocs/elgg/engine
.chmod go-w /srv/www/htdocs/elgg
chmod go-w /srv/www/htdocs/elgg/engine
joe /root/bin/pindaExecStart.sh
) aan het script /root/bin/pindaExecStart.sh toe:
# Geef het IP adres door aan elgg
/usr/bin/mysql -u elgg -p elgg --password=snt+4567 -e "UPDATE elgg.elgg_sites_entity SET url = 'http://$IPadres/elgg/' WHERE elgg_sites_entity.guid = 1;"
wget http://status.net/statusnet-1.1.0.tar.gz
tar -xzvf statusnet-1.1.0.tar.gz -C /srv/www/htdocs/
rm statusnet-1.1.0.tar.gz
mv /srv/www/htdocs/statusnet-1.1.0 /srv/www/htdocs/statusnet
naar statusnet.chown -R wwwrun /srv/www/htdocs/statusnet
query="CREATE USER 'statusnet'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'statusnet'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`statusnet\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`statusnet\` . * TO 'statusnet'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
joe /root/bin/pindaExecStart.sh
) aan het script /root/bin/pindaExecStart.sh toe:
# Vervang in StatusNet het vorige IP adres door het nieuwe IP adres
oudIPadres=$(/usr/bin/mysql -u statusnet -p statusnet --password=snt+4567 -s -N -e "SELECT profileurl FROM profile WHERE id = '1'" | /usr/bin/cut -d/ -f3)
/usr/bin/mysql -u statusnet -p statusnet --password=snt+4567 -e "UPDATE conversation SET uri = replace(uri, 'http://$oudIPadres', 'http://$IPadres');"
/usr/bin/mysql -u statusnet -p statusnet --password=snt+4567 -e "UPDATE notice SET uri = replace(uri, 'http://$oudIPadres', 'http://$IPadres');"
/usr/bin/mysql -u statusnet -p statusnet --password=snt+4567 -e "UPDATE profile SET profileurl = replace(profileurl, 'http://$oudIPadres', 'http://$IPadres');"
/usr/bin/mysql -u statusnet -p statusnet --password=snt+4567 -e "UPDATE user SET uri = replace(uri, 'http://$oudIPadres', 'http://$IPadres');"
/bin/sed -i -e "s/$oudIPadres/$IPadres/g" /srv/www/htdocs/statusnet/config.php
wget http://cumulusclips.org/cumulusclips.tar.gz
tar -xzvf cumulusclips.tar.gz -C /srv/www/htdocs/
rm cumulusclips.tar.gz
query="CREATE USER 'cumulusclips'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT USAGE ON * . * TO 'cumulusclips'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="CREATE DATABASE IF NOT EXISTS \`cumulusclips\`;"
/usr/bin/mysql --password=snt+4567 -e "$query"
query="GRANT ALL PRIVILEGES ON \`cumulusclips\` . * TO 'cumulusclips'@'localhost';"
/usr/bin/mysql --password=snt+4567 -e "$query"
zypper addrepo http://download.opensuse.org/repositories/home:/Simmphonie/openSUSE_12.3/ ffmpeg
zypper install ffmpeg python
joe /etc/php5/apache2/php.ini
) en pas de volgende instellingen aan:
short_open_tag = Off
naar short_open_tag = On
post_max_size = 8M
naar post_max_size = 110M
upload_max_filesize = 2M
naar upload_max_filesize = 110M
max_execution_time = 30
naar max_execution_time = 1500
systemctl restart apache2.service
useradd cumulusclips -p snt+4567 -d /srv/www/htdocs/cumulusclips -s /bin/false
passwd cumulusclips
chown -R cumulusclips:users /srv/www/htdocs/cumulusclips/
.chmod -R 777 /srv/www/htdocs/cumulusclips/cc-core/logs
chmod -R 777 /srv/www/htdocs/cumulusclips/cc-content/uploads
joe /etc/apache2/conf.d/cumulusclips.conf
) met de volgende inhoud:
<Directory "/srv/www/htdocs/cumulusclips/">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Om de webserver op de hoogte te brengen van de aanpassingen, herstart je de webserver met de opdracht systemctl restart apache2.service
joe /root/bin/pindaExecStart.sh
) aan het script /root/bin/pindaExecStart.sh toe:
# Vervang in CumulusClips het vorige IP adres door het nieuwe IP adres
oudIPadres=$(/usr/bin/mysql -u cumulusclips -p cumulusclips --password=snt+4567 -s -N -e "SELECT value FROM cc_settings WHERE name = 'base_url'" | /usr/bin/cut -d/ -f3)
/usr/bin/mysql -u cumulusclips -p cumulusclips --password=snt+4567 -e "UPDATE cc_settings SET value = replace(value, 'http://$oudIPadres', 'http://$IPadres') WHERE name = 'base_url';"
zypper addrepo http://download.opensuse.org/repositories/isv:ownCloud:community/openSUSE_12.3_standard/isv:ownCloud:community.repo
zypper install owncloud
.chown -R wwwrun /srv/www/htdocs/owncloud
.joe /etc/apache2/conf.d/owncloud.conf
) de volgende ownCloud apache webserver instelling toe:Options Indexes FollowSymLinks ExecCGI Includes
systemctl restart apache2.service
wget -O /srv/www/htdocs/piwigo.zip http://piwigo.org/download/dlcounter.php?code=latest
joe /srv/www/cgi-bin/piwigo
):
#!/bin/bash
echo "Content-Type: text/html"
echo
echo "<html>"
echo "<head>"
echo "<base target=\"_top\">"
echo "</head>"
echo "<body onload=\"//document.install_form.submit();\">"
if [ $# -eq 0 ]; then
echo "<b>Gelieve een gebruiker op te geven.</b>"
echo "</body>"
echo "</html>"
exit
fi
if [ ${#1} -ne 4 ]; then
echo "<b>$1 is een ongeldige gebruiker.</b>"
echo "</body>"
echo "</html>"
exit
fi
if [ ! -d "/srv/www/htdocs/$1" ]; then
echo "<b>$1 is geen geldige gebruiker.</b>"
echo "</body>"
echo "</html>"
exit
fi
echo "<b>Piwigo wordt geïnstalleerd voor gebruiker $1, even geduld.</b>"
echo -n "<pre>"
echo "snt+4567" | su -c "unzip /srv/www/htdocs/piwigo.zip -d /srv/www/htdocs/$1/"
/usr/bin/mysql -u root --password=snt+4567 -e "CREATE USER 'piwigo_$1'@'localhost' IDENTIFIED BY 'snt+4567';"
/usr/bin/mysql -u root --password=snt+4567 -e "GRANT USAGE ON * . * TO 'piwigo_$1'@'localhost' IDENTIFIED BY 'snt+4567' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
/usr/bin/mysql -u root --password=snt+4567 -e "CREATE DATABASE IF NOT EXISTS \`piwigo_$1\`;"
/usr/bin/mysql -u root --password=snt+4567 -e "GRANT ALL PRIVILEGES ON \`piwigo_$1\` . * TO 'piwigo_$1'@'localhost';"
echo "</pre>"
echo "<form method=\"POST\" action=\"../$1/piwigo/install.php?language=nl_NL\" name=\"install_form\">"
echo "<input type=\"hidden\" name=\"dbuser\" value=\"piwigo_$1\">"
echo "<input type=\"hidden\" name=\"dbpasswd\" value=\"snt+4567\">"
echo "<input type=\"hidden\" name=\"dbname\" value=\"piwigo_$1\">"
echo "<input type=\"hidden\" name=\"prefix\" value=\"piwigo_\">"
echo "<input type=\"hidden\" name=\"admin_name\" value=\"$1\">"
echo "<input type=\"hidden\" name=\"admin_pass1\" value=\"snt+4567\">"
echo "<input type=\"hidden\" name=\"admin_pass2\" value=\"snt+4567\">"
echo "<input type=\"hidden\" name=\"admin_mail\" value=\"$1@webserver.snt\">"
echo "<input type=\"checkbox\" name=\"newsletter_subscribe\" style=\"display:none;\">"
echo "<input type=\"submit\" name=\"install\" value=\"Volgende\">"
echo "</form>"
echo "<a id=\"onderaan\"></a>"
echo "<script type=\"text/javascript\">document.location=\"#onderaan\";</script>"
echo "</body>"
echo "</html>"
chmod +x /srv/www/cgi-bin/piwigo
joe /srv/www/cgi-bin/bugrapport
):
#!/bin/bash
echo "Content-Type: text/html"
echo
echo "<html>"
echo "<body>"
echo "<p>Er wordt een databasedump voor onderzoek aangemaakt, even geduld.</p>"
echo -n "<pre>"
echo "snt+4567" | su -c "mysqldump --all-databases --password=snt+4567 --user=root | /usr/bin/gzip > /srv/www/htdocs/databasedump.sql.gz"
echo -n "</pre>"
echo "<p>Download de <a href=\"/databasedump.sql.gz\">databasedump</a> en stuur deze met een passende beschrijving naar <a href=\"mailto:dany.pinoy@pindanet.be\">dany.pinoy@pindanet.be</a>.</p>"
echo "<p>Na het vinden van de fout, wordt de webserver aangepast en de werkwijze op de <a href=\"http://linux.pindanet.be/faq/tips13/webserver.html\" target=\"_blank\">webserver site</a> gepubliceert.</p>"
echo "</body>"
echo "</html>"
chmod +x /srv/www/cgi-bin/bugrapport
joe /srv/www/cgi-bin/halt
):
#!/bin/bash
echo "Content-Type: text/html"
echo
echo "<html>"
echo "<body>"
echo "<b>De webserver wordt afgesloten, even geduld.</b>"
echo "snt+4567" | su -c "shutdown -h now"
echo "</body>"
echo "</html>"
chmod +x /srv/www/cgi-bin/halt
scp Documents/SNT/Dreamweaver\ CS6/Webserver/index.html root@IPadres:/srv/www/htdocs
zypper refresh
zypper up
zypper clean
rm .ssh/known_hosts
shutdown -h now
tar cvjf webserver.tar.bz2 vmware/Webserver/
In de map ~/vmware/Webserver staan de bestanden die samen de virtuele webserver vormen. Om deze virtuele computer naar een ovf pakket om te zetten, gebruik je de volgende opdracht om de VMware virtuele webserver in de map ~/vmware/Webserver om te zetten naar een ovf pakket:
ovftool vmware/Webserver/Webserver.vmx Webserver.ovf
Bij de aanmaak van een ovf pakket (drie bestanden) wordt standaard gebruik gemaakt van compressie, zo wordt de virtuele webserver met een omvang van 1,8 GB omgezet naar een ovf pakket met een grootte van 700 MB.