Hej:)
Tym razem rozwinięcie poradnika dot serwera WWW w pigułce – wcześniej jako serwer WWW “od środka” pracował Apache2 – jednak tym razem zamieniamy go z Lighttpd
Dostosowałem opis do serwera Lighttpd oraz dołączyłem konfigurację do dostępu do phpMyAdmina poprzez połączenie szyfrowane i nieszyfrowane a na końcu poradnika czeka bonus ode mnie:)
Kilka technicznych informacji:
Dostęp do phpMyAdmina : http://IP:9977
Dostęp do phpMyAdmina przez SSL : https://IP:9988
Lighttpd port: : http://IP:8080
NGINX port : http://IP:80
Opcja Varnish:
Lighttpd port: : http://IP:8080
Varnish port: http://IP:80
NGINX port : http://IP:88
Połączenia HTTPS nie są kierowane przez Varnisha.
Najpotrzebniejsze ścieżki do plików konfiguracyjnych:
Lighttpd:
- /etc/lighttpd/lighttpd.conf
NGINX:
- /etc/nginx/nginx.conf
- /etc/nginx/conf.d/default.conf
Varnish:
- /etc/varnish/default.vcl
- /lib/systemd/system/varnish.service
vSFTPd
- /etc/vsftpd.conf
PHP5:
- /etc/php5/fpm/php.ini
MySQL
- /etc/mysql/my.cnf
1. Wstępna konfiguracja
adduser www ## USTAW SOBIE HASLO WWW - FTP, I USER mkdir /home/www/public_html ; chown -R www:www-data /home/www/* ; chmod -R 775 /home/www/ apt-get update; apt-get install curl apt-transport-https software-properties-common fping -y sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A rm /etc/apt/sources.list ; wget http://pliki.linuxiarz.pl/10-2015/sources_15-04 -O /etc/apt/sources.list
2. Instalacja wymaganych pakietów:
apt-get update apt-get install lighttpd vsftpd nano wget curl imagemagick unzip sendmail software-properties-common 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
2.1 Instalacja logrotate:
wget http://pliki.linuxiarz.pl/11-2015/lighttpd_logrotate -O nano /etc/logrotate.d/lighttpd
3. Konfiguracja lighttpd
rm /etc/lighttpd/lighttpd.conf ; wget http://pliki.linuxiarz.pl/09-2015/lighttpd.conf -O /etc/lighttpd/lighttpd.conf mv /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-available/15-fastcgi-php.conf.bak wget http://pliki.linuxiarz.pl/09-2015/15-fastcgi-php.conf -O /etc/lighttpd/conf-available/15-fastcgi-php.conf ls -l /etc/lighttpd/conf-enabled lighttpd-enable-mod fastcgi lighttpd-enable-mod fastcgi-php systemctl restart lighttpd
3. Bazy danych – do wyboru
3.1 PerconaDB
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A sudo echo "deb http://repo.percona.com/apt "$(lsb_release -sc)" main" | sudo tee /etc/apt/sources.list.d/percona.list sudo apt-get update; apt-get install percona-server-server-5.6 -y --force-yes
3.2 MariaDB
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb [arch=amd64,i386] http://mirror.hosting90.cz/mariadb/repo/10.1/ubuntu vivid main' sudo apt-get update sudo apt-get install mariadb-server -y systemctl restart mysql
3.3 MySQL
sudo apt-get install mysql-server -y
3.4 Moja konfiguracja i wstępna optymalizacja (działa na MariaDB i PerconaDB)
rm /etc/mysql/my.cnf; wget http://pliki.linuxiarz.pl/08-2015/my.cnf -O /etc/mysql/my.cnf
4. Kompilacja i konfiguracja Reverse proxy NGINX – do wyboru wersja 1.9.4 oraz 1.9.5 i 1.9.6
apt-get update; apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev nano curl git autotools-dev debhelper dh-systemd libexpat-dev libgd-dev libgeoip-dev libluajit-5.1-dev liblua5.1-0-dev libmhash-dev libpam0g-dev libperl-dev libxslt1-dev po-debconf libssl-dev -y wget http://repo.linuxiarz.pl/NGINX-1.9.6-custom.tar.gz tar xvf NGINX-1.9.* ; cd nginx-1.9.* ; dpkg-buildpackage -b cd .. ; dpkg -i nginx-common_1.9.*.deb nginx_1.9.*.deb nginx-extras_1.9.*.deb rm /etc/nginx/conf.d/* ; rm /etc/nginx/sit*/* wget http://pliki.linuxiarz.pl/11-2015/ngx_mem.conf -O /etc/nginx/conf.d/default.conf wget http://pliki.linuxiarz.pl/11-2015/phpmyadmin.conf -O /etc/nginx/conf.d/phpmyadmin.conf
4.1 Certyfikat SSL używany m.in. dla szyfrowanych połączeń z phpMyAdmin
openssl genrsa -out /etc/nginx/privkey.pem 2048 openssl req -new -x509 -key /etc/nginx/privkey.pem -out /etc/nginx/cacert.pem -days 1095
5. Instalacja PHP5-FPM wraz z dodatkami (do wyboru)
5.1 Zawsze najnowsze: (w chwili pisania 5.6.14)
sudo add-apt-repository ppa:ondrej/php5-5.6 sudo apt-get update sudo apt-get install 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 -y --force-yes
5.2 Bezpośrednio z dystrybucji: (w chwili pisania 5.6.4)
sudo apt-get update sudo apt-get install 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 -y --force-yes
5.3 Konfiguracja PHP
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
6. Instalacja phpMyAdmin
apt-get install phpmyadmin -y rm /etc/lighttpd/conf-enabled/50-phpmyadmin.conf
7. Konfiguracja serwera FTP (FTP PRZEZ TLS)
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
8. Instalacja serwera Memcached
apt-get install memcached rm /etc/memcached.conf wget http://pliki.linuxiarz.pl/11-2015/memcached.conf -O /etc/memcached.conf rm /etc/nginx/conf.d/default.conf wget http://pliki.linuxiarz.pl/11-2015/ngx_mem.conf -O /etc/nginx/conf.d/default.conf
9. Opcjonalna instalacja Varnish Cache Server
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 -y 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/default.conf ; wget http://pliki.linuxiarz.pl/11-2015/ngx_rev_mem.conf -O /etc/nginx/conf.d/default.conf systemctl daemon-reload systemctl restart nginx systemctl restart varnish
10. Restart usług
systemctl restart vsftpd /etc/init.d/lighttpd restart systemctl restart mysql systemctl restart nginx systemctl restart php5-fpm systemctl restart memcached
11. Uruchamianie przy starcie systemu
update-rc.d nginx defaults update-rc.d varnish defaults crontab -l | { cat; echo "@reboot systemctl start varnish"; } | crontab - update-rc.d lighttpd defaults update-rc.d mysql defaults update-rc.d memcached defaults
12. Informacje o serwerze ;)) (bonus ode mnie)
wget http://pliki.linuxiarz.pl/11-2015/status.zip -O /home/www/public_html/status.zip cd /home/www/public_html/ ; unzip status.zip ; rm /home/www/public_html/status.zip