\subsection{Apache - Konfiguration}
\label{apache_config}
In der Konfigurationsdatei \emph{httpd.conf} sind folgende Eigenschaften auf folgende Werte einzustellen. 

\begin{center}\begin{table}[h]
\begin{center}\begin{tabular}{|l|l|}
	\hline
	\textbf{Eigenschaft} & \textbf{Wert} \\
	\hline
	ServerRoot & C:/wp/Apache2.2 \\
	\hline
	ServerAdmin & admin@jena-optronik.de \\
	\hline
	ServerName & vm-webportal.jena-optronik.de:80 \\
	\hline
	DocumentRoot & "C:/wp/Apache2.2/htdocs" \\
	\hline
\end{tabular}\end{center}
	\captionsetup{font=small}
	\caption{Apache - Abweichungen von der Standardkonfiguration}
\end{table}\end{center}

Innerhalb des Abschnitts \emph{\textless \ Directory "C:/wp/Apache2.2/htdocs"\textgreater \ } sind folgende Eigenschafte wie folgt abzuändern.

\begin{center}\begin{table}[h]
\begin{center}\begin{tabular}{|l|l|}
	\hline
	\textbf{Eigenschaft} & \textbf{Wert} \\
	\hline
	Options & Indexes FollowSymLinks \\
	\hline
	AllowOverride & all \\
	\hline
    Order & allow,deny \\
    \hline
    Allow from & all \\
    \hline
\end{tabular}\end{center}
	\captionsetup{font=small}
	\caption{Apache - Konfiguration des Directory}
\end{table}\end{center}

Vor allem die ersten beiden Änderungen sind wichtig, da sie die Funktionalität des \emph{Rewrites} auf die Adresse \emph{http://webspace.jena-optronik.de} gewährleisten.

Damit php-Dateien ausgeführt werden, wenn diese über einen Browser aufgerufen werden, sind folgende Zeilen in der Datei \emph{httpd.conf} zu ändern oder zu ergänzen.
\begin{quotation}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
LoadModule php5_module "c:/wp/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/wp/php"
\end{lstlisting}\end{quotation}

\newpage

Damit nach der Installation und Konfiguration von phpMyAdmin dieses auch funktioniert, sind der Datei \emph{httpd.conf} folgende Zeilen hinzuzufügen.
\begin{quotation}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
Alias /phpMyAdmin "C:/wp/phpMyAdmin/"
<Directory "C:/wp/phpMyAdmin">
  Options none
  AllowOverride Limit
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
</Directory>
\end{lstlisting}\end{quotation}
Weitere Zeilen sind für das \emph{Rewrite} auf die Adresse \emph{webspace.jena-optronik.de} hinzuzufügen.
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
AccessFileName .htaccess
<IfModule rewrite_module>
    RewriteLog "C:/wp/Apache2.2/logs/rewrite.log"
    RewriteLogLevel 3
</IfModule>
\end{lstlisting}\end{quote}
Die erste Zeile weist den Apache an, weitere Konfigurationsanweisungen aus den Dateien \emph{.htaccess} auszulesen und anzuwenden. Die anderen Zeilen weisen den Apache an, ein Protokoll über die \emph{Rewrites} zu führen. Die eigentliche Anweisung für den \emph{rewrite} steht in der Datei \emph{.htaccess} im Verzeichnis \emph{c:\textbackslash wp\textbackslash Apache2.2\textbackslash htdocs\textbackslash }. Hier sind folgende Zeilen einzutragen:
\begin{quotation}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^go$ [OR]
RewriteCond %{HTTP_HOST} ^webspace$ [NC]
RewriteRule ^/?(.*) http://webspace.jena-optronik.de/$1 [L,R,NE]
\end{lstlisting}\end{quotation}
Diese Zeilen sorgen dafür, dass Anfragen mit der Adresse \emph{go} und \emph{webspace} auf die Adresse \emph{webspace.jena-optronik.de} umgeschrieben werden.



\newpage
\subsection{PHP - Konfiguration}
\label{php_config}
In der Datei \emph{php.ini} sind folgende Zeilen entsprechend abzuändern oder zu ergänzen:
\begin{quotation}
\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
[Session]
session.save_handler = files
session.save_path = "c:/wp/sessions"
session.use_cookies = 1
session.name = jop_sess
session.auto_start = 0
session.cookie_lifetime = 604800
session.cookie_path = /
session.cookie_domain = 
session.cookie_httponly = 
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 1000
session.gc_maxlifetime = 604800
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 604800
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
\end{lstlisting}\end{quotation}



\newpage
\subsection{MySQL - Konfiguration}
\label{mysql_config}
Im MySQL-Datenbanksystem ist eine Datenbank mit folgender Konfiguration anzulegen: 
\begin{center}\begin{table}[h]
\begin{center}\begin{tabular}{|l|l|}
	\hline
	\textbf{Eigenschaft} & \textbf{Wert} \\
	\hline
	Bezeichnung & jop\_intern \\
	\hline
	Kollektion & utf8\_general\_ci \\
	\hline
\end{tabular}\end{center}
	\captionsetup{font=small}
	\caption{MySQL - Konfiguration - Datenbank jop\_intern}
\end{table}\end{center}

Der Datenbank ist ein Benutzer zuzuweisen, über dem die Website Zugang zu den Tabellen der Datenbank erhält. Dieser kann auf \emph{localhost} beschränkt bleiben.

Des Weiteren sind folgende Tabellen mit folgenden Eigenschaften bzw. Strukturen anzulegen.
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/departments.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{departments} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/links.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{links} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/news.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{news} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/rooms.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{rooms} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/termine.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{termine} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.4]{images/banned.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{banned} - Konfiguration}
\end{figure} 
\begin{figure} [!ht] 
	\includegraphics[scale=0.30]{images/whoiswho.png}
	\captionsetup{font=small}
	\caption{Tabelle \emph{whoiswho} - Konfiguration}
\end{figure} 
\clearpage



\subsection{phpMyAdmin - Konfiguration}
\label{phpmyadmin_config}
In der Datei \emph{config.inc.php} sind folgende Zeilen wie folgt abzuändern oder zu ergänzen.
\begin{quotation}\begin{lstlisting}[language=PHP, breaklines=true, basicstyle=\scriptsize]
<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 3.5.1 setup script
 * Date: Tue, 18 Sep 2012 16:55:49 +0200
 */

/* Servers configuration */
$i = 0;

/* Server: WAMP-Server [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'WAMP-Server';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

/* End of servers configuration */

$cfg['DefaultLang'] = 'de';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>
\end{lstlisting}\end{quotation}



\subsection{Templates}
\label{templates}
Im folgenden finden Sie die Listings zum Haupttemplate und den extension Templates.



\subsubsection{Haupttemplate (Startseite)}
Das Haupttemplate ist das Template der Startseite. Da die Startseite die Wurzel ist, ist das Template auch in allen Unterseiten enthalten. 
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
# Jena Optronik GmbH
# Main Template
# Juergen Doeffinger
# Version 1.0.0

# Konfiguration der Seite festlegen
config {
  defaultGetVars {
    L = 0
  }
  disablePrefixComment = 1
  doctype = xhtml_11
  doctypeSwitch = 1
  htmlTag_dir = ltr
  htmlTag_langKey = de
  inlineStyle2TempFile = 1
  language = de
  linkVars = L  
  locale_all = de_DE
  metaCharset = UTF-8
  no_cache = 1
  noScaleUp = 1
  notification_email_charset = utf-8
  removeDefaultJS = external
  renderCharset = UTF-8
  sys_language_uid = 0
  xhtml_cleaning = output
  htmlSpecialChars = 2
}

# Setup
setup {
  config.sys_language_mode = content_fallback
  config.sys_language_overlay = 1
}


# Angaben fuer die deutsche Sprache
[globalVar = GP:L = 1]
  config.sys_language_uid = 1
  config.language = de
  config.htmlTag_langKey = de
  config.locale_all = de_DE
[global]

# Angaben zur englischen Sprache
[globalVar = GP:L = 2]
  config.sys_language_uid = 2
  config.language = en
  config.htmlTag_langKey = en
  config.locale_all = en_GB
[global]


# CSS Dateien einbinden entsprechend des verwendeten Browsers
[browser = msie]
page.includeCSS {
  file1 = fileadmin/css/main.css
  file2 = fileadmin/css/ie.css

[else]
page.includeCSS {
  file1 = fileadmin/css/main.css
  file2 = fileadmin/css/noie.css
}
[global]

# Weitere CSS-Datei für Startseite einbinden
[globalVar = TSFE:id = 1]
page.includeCSS {
  file3 = fileadmin/css/whoiswho.css
}
[global]

# Javascript - Dateien einbinden
page.includeJS {
  file1 = fileadmin/js/main.js
}

  

# Logo
Logo = IMAGE
Logo {
  file = fileadmin/images/logo.jpg
  altText = Logo
  imageLinkWrap = 1
  imageLinkWrap.enable = 1
  imageLinkWrap.typolink.parameter = 1
}

# Hauptmenue
mainmenu = HMENU
mainmenu {
  entryLevel = 0
  1 = TMENU
  1 {
    expAll = 0
    wrap = <ul id="nav_list">|</ul>
    NO = 1
    NO {
      allWrap = <li class="nav_first">|</li>|*|<li class="nav_border">|</li>|*|<li class="nav_border">|</li>
      ATagTitle.field = abstract // description // subtitle // title // nav_title
    }
  }
}

# Fusszeile
footer = HTML
footer.value = <br />

# Template Datei festlegen
main_template_file = TEXT
main_template_file = fileadmin/html/main.html


main_template = TEMPLATE
main_template {
  
  # Templatevorlage einbinden
  template = FILE
  template.file <  main_template_file
  
  # Arbeitsbereich zuweisen
  workOnSubpart = CONTAINER
  
  # subparts und marks Inhalt zuweisen
  subparts.LOGO < Logo
  subparts.LANGUAGE < plugin.tx_sprachmenu_pi1
  subparts.NAV < mainmenu
  subparts.SUFU < plugin.tx_sufu_pi1
  subparts.KEY_VISUAL < plugin.tx_keyvisual_pi1
  subparts.CONTENT_LEFT < plugin.tx_leftcontent_pi1
  subparts.CONTENT_CENTER < styles.content.get
  subparts.CONTENT_RIGHT < plugin.tx_rightcontent_pi1
  subparts.FOOTER < footer  
}

# Seite aufbauen
page = PAGE
page.10 < main_template
page.meta.author = Juergen Doeffinger
page.shortcutIcon = fileadmin/images/favicon.ico
\end{lstlisting}\end{quote}



\subsubsection{main.html}
\lstinputlisting[breaklines=true, basicstyle=\scriptsize, language=HTML]{html/main.html}



\subsubsection{extension Template - News Overview}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/news_overview.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - News Edit}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/news_edit.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - News Article}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/news_article.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Termine Overview}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/termine_overview.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Termine Edit}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/termine_edit.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Termine Article}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/termine_article.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Who is Who - Search Function}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file98 = fileadmin/css/whoiswho.css
page.includeCSS.file99 = fileadmin/css/whoiswho_sufu.css
page.includeJS.file99 = fileadmin/js/class.whoiswho_sufu.js
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Who is Who - Edit}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file98 = fileadmin/css/whoiswho.css
[browser = msie]
page.includeCSS.file99 = fileadmin/css/whoiswho_edit_ie.css
[else]
page.includeCSS.file99 = fileadmin/css/whoiswho_edit.css
[global]
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Who is Who - Info}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file98 = fileadmin/css/whoiswho.css
\end{lstlisting}\end{quote}



\subsubsection{extension Template - Telephone Directory}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file98 = fileadmin/css/whoiswho.css
page.includeCSS.file99 = fileadmin/css/tvz.css
page.includeJS.file99 = fileadmin/js/class.tvz.js
\end{lstlisting}\end{quote}




\subsubsection{extension Template - Projects}
\begin{quote}\begin{lstlisting}[breaklines=true, basicstyle=\scriptsize]
page = PAGE
page.includeCSS.file99 = fileadmin/css/projekte.css
page.includeJS.file99 = fileadmin/js/class.projekte.js
\end{lstlisting}\end{quote}



