Apache, PHP und mySQL: Unterschied zwischen den Versionen

Aus MySlug
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 75: Zeile 75:


<code><pre>/etc/init.d/apache2 restart</pre></code>
<code><pre>/etc/init.d/apache2 restart</pre></code>
</br></br>


==Ein Serverzertifikat für https anlegen==
==Ein Serverzertifikat für https anlegen==

Version vom 11. Oktober 2015, 14:24 Uhr

Apache installieren

Der Apache 2 Webserver ist auf Linux schnell installiert. Führt dazu folgenden Befehl aus:

apt-get install apache2 php5 libapache2-mod-php5

Die Konfigurationsdateien finden sich zudem unter folgendem Verzeichnis:

/etc/apache2/

Bei Änderungen an den Konfigurationsdateien muß dann immer wieder der Apache 2 neu gestartet werden. Dazu gebt einfach folgenden Befehl ein:

/etc/init.d/apache2 restart

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:

nano /etc/apache2/conf.d/fqdn

Fügt dann folgende Zeile ein:

ServerName localhost

Speichert die Änderung und startet den Apache2 neu durch:

/etc/init.d/apache2 restart



mySQL installieren

Damit wir auch eine Datenbank zur Verfügung haben könnt Ihr diese mit

apt-get install php5-mysql mysql-server mysql-client

installieren. Setzt dann erstmal ein Passwort für mysql:

mysqladmin -u root password DEIN_GEHEIMES_PASSWORT

(dies wird auch bereits bei der Installation des mysql Pakets abgefragt.

Mit einem

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

wieder entfernen/löschen. Wenn Ihr das seht, dann ist die Tabele auch wieder entfernt:

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

Wenn Ihr einen neuen Datenbankuser anlegen wollt, dann gebt folgendes als Root ein:

mysql -p

Danach an der Konsole folgende Befehle eingeben:

CREATE USER 'neueruser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'neueruser'@'localhost';
FLUSH PRIVILEGES;
exit

Checkt nun, ob alles sauber läuft. Dazu legen wir in unser Dokumentenroot eine Datei mit folgenden Inhalt:
phpinfo.php

<?php
phpinfo();
?>

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.



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

apt-get install php-pear php-apc

Startet den Webserver neu:

/etc/init.d/apache2 restart



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:

cd /root

Danach legen wir unser Serverzertifikat an:

openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr

Jetzt werdet Ihr einige Angaben abgefragt:

Country Name (Ländercode): = DE
State or Province Name (Bundesland): = zB Bayern
Locality Name, eg. City (Stadt): = zB Nuernberg
Organization Name (Firmenname): = hier irgendwas eingeben wie privat, zuhause etc.
Organizational Unit Name (Abteilung) = bleibt leer
Common Name, eg. YOUR Name: = Euer Servername
Email Adress: = eine E-Mail Adresse
A challenge password: = bleibt leer
An optional company name: = bleibt leer

Jetzt generieren wir das Zertifikat. Ich mache das gleich mal für 10 Jahre, dann ist Ruhe:

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

Noch ein paar Rechte festlegen:

chmod 400 server.key

Jetzt müssen wir noch ein paar Änderungen in einigen Apache Konfigurationsdateien vornehmen:

nano /etc/apache2/sites-enabled/000-default

Am Ende der Konfigurationsdatei ergänzt folgende neue Sektion (das Alias für ein Beispiel an den installieren phpmyadmin):

<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>

EUER_SERVERNAME muss noch entsprechend eingetragen werden. Speichert die Änderung und editiert die ports.conf

nano /etc/apache2/ports.conf

und fügt ganz zum Schluss folgende Zeile ein:

NameVirtualHost *:443

Nun aktivieren wir das SSL Modul:

a2enmod ssl

Der Apache muss jetzt neu gestartet werden:

/etc/init.d/apache2 restart

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.