Teljes webszerver telepítése (nginx, mysql, php7, HTTP2, phpmyadmin, SSL) – Ubuntu 16.04
A leírás Ubuntu 16.04-re vonatkozik, a többi verziót később fogom megcsinálni.
1. Nginx telepítése
Először is frissítsük a REPO-kat:
sudo apt-get update
Majd telepítsük az nginx-et:
sudo apt-get install nginx
Ezután ellenőrizzük le az nginx verzióját az alábbi paranccsal:
nginx -v
Ha legalább 1.10.0-s verziót kapunk, akkor minden rendben van.
2. MySQL telepítése
Az első lépés a mysql szerver telepítése:
sudo apt-get install mysql-server
Értelemszerűen ki kell tölteni a root felhasználóhoz tartozó jelszót, amivel a későbbiekben el akarod érni a mysql-t.
A PHP oldalak lefutásához szükséged felrakni a php 5-ös verzióját és az ehhez tartozó mysql utasításkészletet:
sudo apt-get install php-fpm php-mysql
A biztonságosság növelésének érdekében érdemes kikapcsolni azt a funkciót, ahol a php ha nem találja meg a hivatkozott fájlt, akkor a hozzá leginkább hasonlót futtatja le:
sudo nano /etc/php/7.0/fpm/php.ini
Meg kell keresni azt a részt, ahol a cgi.fix_pathinfo van, előle ki kell venni a pontos vesszőt (;), majd az értékét 0-ra állítani és elmenteni az egészet.
cgi.fix_pathinfo=0
A feltöltési limit állításához meg kell keresni az upload_max_filesize sort, majd átírni az értéket az általunk kívánt értékre (megabyte=M, gigabyte:G)
upload_max_filesize = 1G
A letöltési limit állításához az alábbi sort kell megkeresni és módosítani:
post_max_size = 1G
Ha ezzel megvagyunk, mentsük el a fájlt és indítsuk újra a php-fpm-et:
sudo systemctl restart php7.0-fpm
3. Nginx konfigurálása
Az alapvető config fájlt így tudjuk szerkeszteni:
sudo nano /etc/nginx/sites-available/default
A fájlnak valahogy így kell kinéznie alapból:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; } }
Sima HTTP-nél az alábbiak szerint módosítsuk a fájlt:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/weboldal; index index.php index.htm index.nginx-debian.html; server_name weboldalad_cime; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { try_files $uri $uri/ /index.php?$args; } location ~ /\.ht { deny all; } }
HTTPS-nél (SSL) és HTTP2-nél pedig az alábbiak szerint módosítsuk a fájlt (ha nincs SSL tanúsítványod, akkor lejjebb találsz egy leírást, hogy hogyan szerezhetsz egy évre ingyenesen):
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; root /var/www/weboldal; index index.php index.html index.htm; server_name weboldalad_cime; location / { try_files $uri $uri/ /index.php?$args; } # az SSL fajlok helyenek megadasa ha letsencrypttel hoztad letre oket ssl on; ssl_certificate /etc/letsencrypt/live/weboldalad_cime/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/weboldalad_cime/privkey.pem; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; # dh parameterek megadasa a kesobb leirtak szerint ssl_dhparam {ut a dhparams.pem fajlhoz}; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } server { listen 80; listen [::]:80; server_name weboldalad_cime; return 301 https://$server_name$request_uri; }
A fájlt el kell menteni, majd pedig újraindítani az nginx-et:
sudo service nginx restart
4. PHPMyadmin telepítése
A csomagot így teheted fel:
sudo apt-get install phpmyadmin
Telepítésnél kérni fogja a mysql root felhasználójának a jelszavát, add meg neki. Következő kérdése a phpmyadmin root fiókjának a jelszava. Ezt add meg neki, majd amikor kéri, akkor erősítsd meg.
Ezután, hogy a weboldaladról is elérhesd a phpmyadmint, létre kell hozni egy szimbolikus linket:
sudo ln -s /usr/share/phpmyadmin /var/www/weboldal/phpmyadmin
Ezután a phpmyadmint a weboldaladon érheted el:
http://weboldalam.hu/phpmyadmin
5. SSL tanúsítvány igénylése
Abban az esetben, ha nem rendelkezel még SSL tanúsítvánnyal, egy jó megoldás erre a problémára a StartSSL szolgáltatása, aminek keretein belül 1 évre igényelhetsz 5 domainre. (azután újra megrendelheted) – FRISSÍTÉS: A StartSSL 2018 januárban megszűnt működni, helyette a Let’s Encryptet ajánlom.
5.1 Let’s Encrypt SSL igénylése
Let’s Encrypt SSL-t a Certbot segítségével tudunk igényelni, ezt az alábbiak alapján tudjuk telepíteni és használni:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx
Ha ezzel megvagyunk, akkor futtassuk a Certbotot manuális cert létrehozás módban (nem szeretnénk, hogy belenyúljon a szépen megszerkesztett nginx konfig fájlunkba)
sudo certbot --nginx certonly
A folyamat elég egyértelmű, meg kell adni az email címünket, valamint a domain címet, amihez igényelni szeretnénk az SSL cert-et. Ha ezzel megvagyunk, akkor megadja a lejárati dátumot és a cert fájl helyét:
/etc/letsencrypt/live/weboldalad_cime/
A nginx konfigurációt a 3-as pontnak megfelelően szerkesszük meg a már meglévő fájlnevek beillesztésével.
5.2 Az SSL kapcsolat ellenőrzése
Érdemes ellenőrizni, hogy megfelelően állítottuk-e be az SSL használatát a webszerveren, amit a https://www.ssllabs.com/ssltest/analyze.html weboldalon tudunk megtenni.
Ha ezzel megvagytok, akkor mindennek prímán kell működnie 🙂
Szia 🙂 A látogató szám nálam megál 100-110főnél .. (Centos) Hol találom meg a korlátozó tényezőt ? (Ha tudod írd meg nekem a 41660kukacgmail.comra 🙂
Helló! Apache webszerver biztonságossá tételében nem tudnál segíteni? Az apacs nem szereti az ssl-t… 🙂
Szia! Sajnos apache-val nem igazán foglalkoztam, de majd utánanézek, ha lesz rá egy kis időm.