V minulém díle jsme si nainstalovali virtuální webserver ve Virtualboxu. Na serveru nám tedy běží PHP5.5 a Apache. Celkem nudnou instalaci tedy už máme konečně za sebou a teď nás čeká ta vtipná 🙂 Hned po dopsání minulého článku mne napadlo, že by bylo zbytečně časově náročné sledovat aktualizace PHP. Proto si přidáme repozitář a případné aktualizace se nám budou nabízet ve správci aktualizací. V závislosti jakou verzi PHP chceme provozovat zadáme v terminálu:
– pro PHP 5.5:
Příkaz terminálu: |
---|
sudo add-apt-repository ppa:ondrej/php5 |
sudo apt-get update |
– pro PHP 5.6:
Příkaz terminálu: |
---|
sudo add-apt-repository ppa:ondrej/php5-5.6 |
sudo apt-get update |
Po přidání repozitáře se nám ve správci aktualizací objeví poslední aktualizace PHP:
Aktualizaci nainstalujeme. To, že instalace proběhla správně lze ověřit příkazem z terminálu:
Příkaz terminálu: |
---|
php5 -v |
což zobrazí aktuální verzi:
Nebo můžeme verzi PHP zjistit v prohlížeči, přímo na našem serveru, pokud si vytvoříme např. soubor info.php v rootu serveru:
Příkaz terminálu: |
---|
sudo nano /var/www/html/info.php |
A zapíšeme do něj výpis funkce phpinfo:
<?php
phpinfo();
Vše uložíme (Ctrl+O). Pokud nyní v prohlížeči zadáme adresu http://localhost/info.php, vidíme nejen verzi PHP, ale i další nastavení našeho serveru. Tento soubor si ještě ponecháme, bude se hodit :-D. Ale po spuštění serveru do provozu je vhodné jej smazat a to z důvodu bezpečnosti, aby si případný útočník nemohl jednoduše zobrazit naše nastavení.
Když jsme u té bezpečnosti, tak si rovnou nainstalujeme i SSL, abychom mohli na našem serveru používat protokol https. Pokud nyní zadáme https://localhost vidíme, že SSL není funkční:
Proto si jej nejprve zaktivujeme:
Příkaz terminálu: |
---|
sudo a2enmod ssl |
sudo service apache2 restart |
Vytvoříme složku pro uložení certifikátu:
Příkaz terminálu: |
---|
sudo mkdir -p /etc/apache2/ssl |
Vygenerujeme certifikát:
Příkaz terminálu: |
---|
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt |
Parametr „days“ nám udává platnost certifikátu ve dnech, uvedený příkaz tedy vygeneruje certifikát platný 1 rok. Při vytváření certifikátu budeme postupně dotazováni na jednotlivé údaje jako je země, stát, město, firma, pozice ve firmě, jméno a e-mail:
Po vygenerování certifikátu provedeme úpravu konfiguračního souboru, abychom k němu nastavili aktuální cestu:
Příkaz terminálu: |
---|
sudo nano /etc/apache2/sites-available/default-ssl.conf |
Provedeme úpravů následujících dvou řádků:
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
Provedeme uložení (Ctrl+O) a zaktivujeme konfigurační soubor:
Příkaz terminálu: |
---|
sudo a2ensite default-ssl.conf |
sudo service apache2 restart |
Nyní již by nám měla adresa https://localhost zobrazit zabezpečenou stránku. Objeví se hláška, že certifikát není důvěryhodný, potvrdíme Risk 🙂 :
A přidáme si stránku mezi důvěryhodné:
Můžeme si zobrazit vygenerovaný certifikát:
Kde vidíme údaje, které jsme zadali při jeho vytváření:
Pro externí přístup je ještě potřeba povolit přístup přes router, stejně jako tomu bylo u protokolu http. V případě https (SSL) se jedná o port 443:
Z vnitřní sítě si zobrazíme stránku pomocí vnitřního IP:
Z vnějšku je to pak IP našeho routeru. Při restartu Apache jste si možná povšimli hlášky AH00558, která nás upozorňuje, že v konfiguračním souboru není zadáno jméno serveru:
Provedeme tedy jeho editaci:
Příkaz terminálu: |
---|
sudo nano /etc/apache2/apache2.conf |
A na konec souboru přidáme tento řádek:
ServerName localhost
Opět uložíme a provedeme restart Apache:
Příkaz terminálu: |
---|
sudo service apache2 restart |
Nyní už se nám hláška nezobrazuje a vše je OK 🙂 :
Doufám, že Vám server pěkně šlape a už teď se těšíte na další pokračování 😀
Související články:
Virtuální webserver – 1. část
Virtuální webserver – 3. část
info.php
Pokud kód obsahuje pouze PHP tak nemusíš uzavírat, tzn. správně je:
————————————————————-
<?php
phpinfo();
echo 'Konec souboru';
————————————————————-
nebo:
————————————————————-
Konec souboru
————————————————————-
aha nějak mi to neuložil to druhý je to tvoje jen za ukončovací značkou je napsáno „Konec souboru“
Pingback:Openssl - Linux Mint CZ&SK