Apache2 + NGINX + Varnish na UBUNTU 15.04

 

linux-ubuntu-nginx-mysql-php-wordpress

Wczoraj opublikowałem jak zainstalować na Debianie 8 fajny serwer WWW w skład którego wchodzą:

  • APACHE/2 – jako backend (obsługa .htaccess)
  • NGINX – (moja kompilacja! z wkompilowanym PageSpeedem i modułem VTS) przepisujący kod w “locie” dzięki PageSpeedowi oraz Cachujący pliki statyczne. nginx dla plików statycznych jest po prostu najszybszy!
  • Varnish – na foncie, maskuje wszelkie dane dot. serwera WWW itp, ponadto konfiguracja skierowana jest bezpośrednio do najpopularniejszych CMSów typu Drupal (testowane – PERFECT!) WordPress i innych. Ponadto jak to Varnish – CACHE:) (przyda się przy potężnym ruchu)
  • PHP5-FPM – to już standard. Interpreter plików PHP.
  • FTP – vsftpd z FTP przez TLS 😉 – nie lubię NIE-szyfrowanych połączeń – możesz sobie TLS wyłączyć zawsze.
  • MariaDB 10.1.8 – Alternatywna baza – cechująca się przede wszystkim wyższą wydajnością i to jest przewaga ponad MySQL którego nie lubię..ale niestety jest takie to oklepane…
    Tysiące poradników w sieci to Apache + MySQL i tyle..

Całość starałem się dostosować do UBUNTU 15.04 – konfiguracja jest klonem wczorajszego poradnika.

1. PRZYGOTOWANIE:

adduser www ## w tym miejscu zdefiniuj sobie haslo do konta w systemie oraz FTP
mkdir /home/www/public_html ; chown -R www:www-data /home/www/* ; chmod -R 775 /home/www/
mkdir -p /home/www/logs
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
rm /etc/apt/sources.list ; wget http://pliki.linuxiarz.pl/10-2015/sources.list -O /etc/apt/sources.list
apt-get update; apt-get install curl apt-transport-https software-properties-common -y

2. INSTALACJA PAKIETÓW

apt-get update ; 
apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php5 php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl vsftpd  nano wget curl imagemagick unzip sendmail software-properties-common mariadb-server libvpx1 fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.1-0 libperl5.20 libtiff5 libxpm4 libxslt1.1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal -y  --force-yes

3. KONFIGURACJA APACHE/2 + PHP5-FPM

rm /etc/php5/fpm/php.ini; wget http://pliki.linuxiarz.pl/08-2015/php5/php.ini -O /etc/php5/fpm/php.ini
wget http://pliki.linuxiarz.pl/08-2015/php5/opcache.so -O /etc/php5/opcache.so
wget http://pliki.linuxiarz.pl/08-2015/php5/ioncube_loader_lin_5.6.so -O /etc/php5/ioncube_loader_lin_5.6.so
rm /etc/apache2/mods-enabled/fastcgi.conf ; wget http://pliki.linuxiarz.pl/09-2015/fastcgi.conf -O /etc/apache2/mods-enabled/fastcgi.conf
rm /etc/apache2/sites-available/* ; wget http://pliki.linuxiarz.pl/09-2015/000-default.conf -O /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/apache2.conf ; wget http://pliki.linuxiarz.pl/10-2015/apache2.conf -O /etc/apache2/apache2.conf
rm /etc/apache2/ports.conf ; wget http://pliki.linuxiarz.pl/09-2015/ports.conf -O /etc/apache2/ports.conf
wget http://pliki.linuxiarz.pl/09-2015/pma.conf -O /etc/apache2/sites-enabled/pma.conf
a2enmod actions rewrite alias deflate headers
echo '<?php phpinfo(); ?>' > /home/www/public_html/info.php
rm /etc/apache2/mods-available/autoindex.conf ; wget http://pliki.linuxiarz.pl/10-2015/autoindex.conf -O /etc/apache2/mods-available/autoindex.conf

4. KONFIGURACJA BAZY DANYCH I INSTALACJA PHPMYADMIN

/etc/init.d/mysql stop
rm /etc/mysql/my.cnf; wget http://pliki.linuxiarz.pl/08-2015/my.cnf -O /etc/mysql/my.cnf
systemctl restart mysql
apt-get install phpmyadmin -y
rm /etc/apache2/conf-enabled/phpmyadmin.conf
rm /etc/phpmyadmin/apache.conf

5. KONFIGURACJA NGINX – REVERSE PROXY

wget http://kompilacje.linuxiarz.pl/Ubuntu%2015.04/nginx-1.9.3-pagespeed-vts-OUT-OF-THE-BOX-ubuntu15-04/nginx-common_1.9.3-1ubuntu1_all.deb
wget http://kompilacje.linuxiarz.pl/Ubuntu%2015.04/nginx-1.9.3-pagespeed-vts-OUT-OF-THE-BOX-ubuntu15-04/nginx_1.9.3-1ubuntu1_all.deb
wget http://kompilacje.linuxiarz.pl/Ubuntu%2015.04/nginx-1.9.3-pagespeed-vts-OUT-OF-THE-BOX-ubuntu15-04/nginx-extras_1.9.3-1ubuntu1_amd64.deb
sudo dpkg --install *.deb
rm * /etc/nginx/conf.d/ ; wget http://pliki.linuxiarz.pl/10-2015/ngx_rev2.conf -O /etc/nginx/conf.d/default.conf
 
### HTTPS ###

openssl genrsa -out /etc/nginx/privkey.pem 2048
openssl req -new -x509 -key /etc/nginx/privkey.pem -out /etc/nginx/cacert.pem -days 1095

6. KONFIGURACJA FTP

rm /etc/vsftpd.conf
wget http://pliki.linuxiarz.pl/08-2015/ftp/vsftpd.conf -O /etc/vsftpd.conf; touch /etc/vsftpd.chroot_list
wget http://pliki.linuxiarz.pl/08-2015/ftp/private.zip; unzip private.zip; mv private/* /etc/ssl/private; rm private.zip

7. RESTART USŁUG

systemctl restart vsftpd
systemctl restart apache2
systemctl restart mysql
systemctl restart nginx

8. VARNISH

curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -
echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.1" >> /etc/apt/sources.list.d/varnish-cache.list
apt-get update ; apt-get install varnish
rm /lib/systemd/system/varnish.service ; wget http://pliki.linuxiarz.pl/10-2015/varnish.service -O /lib/systemd/system/varnish.service
rm /etc/varnish/default.vcl ; wget http://pliki.linuxiarz.pl/10-2015/default.vcl -O /etc/varnish/default.vcl
rm * /etc/nginx/conf.d/ ; wget http://pliki.linuxiarz.pl/10-2015/ngx_rev.conf -O /etc/nginx/conf.d/default.conf
systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

9. URUCHOMIENIE PRZY STARCIE

update-rc.d nginx defaults
update-rc.d varnish defaults
crontab -l | { cat; echo "@reboot systemctl start varnish"; } | crontab -
update-rc.d apache2 defaults
update-rc.d mysql defaults