| 
				     | 
				
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | 
| Zeile 1: | 
Zeile 1: | 
 | <div style="text-align=right; float: right; clear: none; background: none; padding-left:20px">
  |  | Dieses Tutorial wurde auf Gargi.org verschoben: https://www.gargi.org/index.php?title=Apache,_PHP_und_mySQL  | 
 | __TOC__
  |  | 
 | </div><noinclude>
  |  | 
 |    |  | 
 | ==Apache installieren==
  |  | 
 |    |  | 
 | Der Apache 2 Webserver ist auf Linux schnell installiert. Führt dazu folgenden Befehl aus:
  |  | 
 |    |  | 
 | <code><pre>apt-get install apache2 php5 libapache2-mod-php5</pre></code>
  |  | 
 | Die Konfigurationsdateien finden sich zudem unter folgendem Verzeichnis:
  |  | 
 | <br><br>
  |  | 
 | '''/etc/apache2/'''
  |  | 
 | <br><br>
  |  | 
 | Bei Änderungen an den Konfigurationsdateien muß dann immer wieder der Apache 2 neu gestartet werden. Dazu gebt einfach folgenden Befehl ein:
  |  | 
 |    |  | 
 | <code><pre>/etc/init.d/apache2 restart</pre></code>
  |  | 
 | Wenn Ihr die Meldung apache2: Could not reliably determine the server's fully qualified domain name ist das nicht weiter wild. Abstellen könnt Ihr das wie folgt:
  |  | 
 |    |  | 
 | <code><pre>nano /etc/apache2/conf.d/fqdn</pre></code>
  |  | 
 | Fügt dann folgende Zeile ein:
  |  | 
 |    |  | 
 | <code><pre>ServerName localhost</pre></code>
  |  | 
 | Speichert die Änderung und startet den Apache2 neu durch:
  |  | 
 |    |  | 
 | <code><pre>/etc/init.d/apache2 restart</pre></code>
  |  | 
 | <br><br>
  |  | 
 | ==mySQL installieren==
  |  | 
 |    |  | 
 | Damit wir auch eine Datenbank zur Verfügung haben könnt Ihr diese mit
  |  | 
 |    |  | 
 | <code><pre>apt-get install php5-mysql mysql-server mysql-client</pre></code>
  |  | 
 | installieren. Setzt dann erstmal ein Passwort für mysql:
  |  | 
 |    |  | 
 | <code><pre>mysqladmin -u root password DEIN_GEHEIMES_PASSWORT</pre></code>
  |  | 
 | (dies wird auch bereits bei der Installation des mysql Pakets abgefragt.
  |  | 
 |    |  | 
 | Mit einem
  |  | 
 |    |  | 
 | <code><pre>mysqladmin -p create tabelle01
  |  | 
 | legt Ihr beispielsweise dann eine erste Datenbank namens tabelle01 an. Ihr könnt diese mit einem
  |  | 
 |    |  | 
 | <code><pre>mysqladmin -p drop tabelle01</pre></code>
  |  | 
 | wieder entfernen/löschen. Wenn Ihr das seht, dann ist die Tabele auch wieder entfernt:
  |  | 
 |    |  | 
 | <code><pre>Dropping the database is potentially a very bad thing to do.
  |  | 
 | Any data stored in the database will be destroyed.
  |  | 
 |    |  | 
 | Do you really want to drop the 'tabelle01' database [y/N] y
  |  | 
 | Database "tabelle01" dropped</pre></code>
  |  | 
 | Wenn Ihr einen neuen Datenbankuser anlegen wollt, dann gebt folgendes als Root ein:
  |  | 
 |    |  | 
 | <code><pre>mysql -p</pre></code>
  |  | 
 | Danach an der Konsole folgende Befehle eingeben:
  |  | 
 |    |  | 
 | <code><pre>CREATE USER 'neueruser'@'localhost' IDENTIFIED BY 'password';
  |  | 
 | GRANT ALL PRIVILEGES ON * . * TO 'neueruser'@'localhost';
  |  | 
 | FLUSH PRIVILEGES;
  |  | 
 | exit</pre></code>
  |  | 
 | Checkt nun, ob alles sauber läuft. Dazu legen wir in unser Dokumentenroot eine Datei mit folgenden Inhalt:<br>
  |  | 
 | '''phpinfo.php'''
  |  | 
 |    |  | 
 | <code><pre>
  |  | 
 | <?php
  |  | 
 | phpinfo();
  |  | 
 | ?></pre></code>
  |  | 
 | Erstellt die Datei einfach extern in einen Editor und ladet diese in Euer Dokumentenroot des Servers. Wenn Ihr diese nun im Browser aufruft, solltet Ihr eine entsprechende Anzeige bekommen. 
  |  | 
 |    |  | 
 | <br><br>
  |  | 
 | ==APC Caching installieren==
  |  | 
 |    |  | 
 | Um die Websiten etwas flotter zu machen kann man noch mit einem php Caching nachelfen. Das Paket APC lässt sich easy über ein
  |  | 
 |    |  | 
 | <code><pre>apt-get install php-pear php-apc</pre></code>
  |  | 
 | Startet den Webserver neu:
  |  | 
 |    |  | 
 | <code><pre>/etc/init.d/apache2 restart</pre></code>
  |  | 
 |    |  | 
 | ==Ein Serverzertifikat für https anlegen==
  |  | 
 |    |  | 
 | Ein Serverzertifikat werdet Ihr dann benötigen, wenn Ihr eine sichere https Verbindung zu Eurem Server anbieten wollt. Wechselt dazu in Euer Root Home:
  |  | 
 | <code><pre>cd /root</pre></code>
  |  | 
 | Danach legen wir unser Serverzertifikat an:
  |  | 
 | <code><pre>openssl genrsa -out server.key 4096
  |  | 
 | openssl req -new -key server.key -out server.csr</pre></code>
  |  | 
 | Jetzt werdet Ihr einige Angaben abgefragt:
  |  | 
 | <br>
  |  | 
 | <br>
  |  | 
 | Country Name (Ländercode): = '''DE'''<br>
  |  | 
 | State or Province Name (Bundesland): = zB '''Bayern'''<br>
  |  | 
 | Locality Name, eg. City (Stadt): = zB '''Nuernberg'''<br>
  |  | 
 | Organization Name (Firmenname): = '''hier irgendwas eingeben wie privat, zuhause etc.'''<br>
  |  | 
 | Organizational Unit Name (Abteilung) = '''bleibt leer'''<br>
  |  | 
 | Common Name, eg. YOUR Name: = '''Euer Servername'''<br>
  |  | 
 | Email Adress: = '''eine E-Mail Adresse'''<br>
  |  | 
 | A challenge password: = '''bleibt leer'''<br>
  |  | 
 | An optional company name: = '''bleibt leer'''<br>
  |  | 
 | <br>
  |  | 
 | Jetzt generieren wir das Zertifikat. Ich mache das gleich mal für 10 Jahre, dann ist Ruhe:
  |  | 
 | <code><pre>openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt</pre></code>
  |  | 
 | Noch ein paar Rechte festlegen:
  |  | 
 | <code><pre>chmod 400 server.key</pre></code>
  |  | 
 | Jetzt müssen wir noch ein paar Änderungen in einigen Apache Konfigurationsdateien vornehmen:
  |  | 
 | <code><pre>nano /etc/apache2/sites-enabled/000-default</pre></code>
  |  | 
 | Am Ende der Konfigurationsdatei ergänzt folgende neue Sektion (das Alias für ein Beispiel an den installieren phpmyadmin):
  |  | 
 | <code><pre><VirtualHost *:443>
  |  | 
 |      DocumentRoot /var/www
  |  | 
 |      ServerName EUER_SERVERNAME
  |  | 
 |      SSLEngine on
  |  | 
 |      SSLCertificateFile /root/server.crt
  |  | 
 |      SSLCertificateKeyFile /root/server.key
  |  | 
 |    |  | 
 |    Alias /phpmayadmin /usr/share/phpmyadmin
  |  | 
 |       <Directory /usr/share/squirrelmail>
  |  | 
 |        Options Indexes
  |  | 
 |        AllowOverride All
  |  | 
 |        DirectoryIndex index.php
  |  | 
 |        Order allow,deny
  |  | 
 |        allow from all
  |  | 
 |     </Directory>
  |  | 
 |    |  | 
 | </VirtualHost>
  |  | 
 | </pre></code>
  |  | 
 | '''EUER_SERVERNAME''' muss noch entsprechend eingetragen werden. Speichert die Änderung und editiert die '''ports.conf'''
  |  | 
 | <code><pre>nano /etc/apache2/ports.conf</pre></code>
  |  | 
 | und fügt ganz zum Schluss folgende Zeile ein:
  |  | 
 | <br><br>
  |  | 
 | '''NameVirtualHost *:443'''
  |  | 
 | <br><br>
  |  | 
 | Nun aktivieren wir das SSL Modul:
  |  | 
 | <code><pre>a2enmod ssl</pre></code>
  |  | 
 | Der Apache muss jetzt neu gestartet werden:
  |  | 
 | <code><pre>/etc/init.d/apache2 restart</pre></code>
  |  | 
 | Beachtet, dass das natürlich kein gekauftes Zertifikat ist. Euer Browser wird hier eine entsprechende Warnmeldung bringen. Aber Ihr wisst damit, warum diese Meldung kommt.<br><br>
  |  |