Witajcie! Znów o serwerze WWW – tym razem system to CentOS 7, namiastka RedHata – stabilny i bardzo popularny system w zachodniej Europie – użytkowników – to mnie nakłoniło do rozwinięcia poradnika dot. instalacji serwera WWW opartego o NGINX/MariaDB/PHP, na dziś przygotowałem Konfiguracje:
- Apache – jako serwer WWW backend – obsługa .htaccess
- NGINX – jako serwer ReverseProxy – Cache i GooglePagespeed
- MariaDB 10.1.x – jako alternatywna baza danych (odpowiednik MySQL)
- PHP-FPM wersja 5.4 (z repozytoriów domyślnych) oraz wersja 5.6 – interpreter skryptów PHP komunikująca się z Apache/2 przez połączenia TCP
- vSFTPd – jako serwer FTP
- phpMyAdmin – jako graficzny interfejs do zarządzania bazami danych i użytkownikami bazy danych
..oraz dodatki ode mnie..
Dostęp do phpMyAdmina : http://IP:9977
Apache/2 port: : http://IP:8080
NGINX port : http://IP:80
Pliki konfiguracyjne:
- vhost Apache/2 – /etc/httpd/conf.d/v-hosts.conf
- vhost NGINX – /etc/nginx/conf.d/default.conf
- php.ini – /etc/php.ini
- konfiguracja NGINX – /etc/nginx
Poradnik jest kontynuacją poradników: http://linuxiarz.pl/1732/centos-7-i-nginx-mariadb-php5-fpm/, http://linuxiarz.pl/1618/ubuntu-serwer-www-w-pigulce/, http://linuxiarz.pl/1640/serwer-www-w-pigulce-na-debian-8/
1. Wyłączenie zapory Firewall oraz SELinux
systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2. Tworzenie użytkownika dla witryn WWW:
mkdir -p /home/www/public_html/ mkdir -p /var/cache/nginx/client_temp useradd -r nginx useradd -r www chown www:www /home/www -R passwd www #ustaw hasło - przyda się do FTP
3. Uzupełnienie repozytoriów i aktualizacja systemu do najnowszych skłądników:
yum install epel-release -y yum install net-tools nano wget libaio perl -y rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm yum update
4. Instalacja i konfiguracja Apache/2
yum --enablerepo=remi install httpd rm -rf /etc/httpd/conf.d/* rm -rf /etc/httpd/conf/httpd.conf wget http://pliki.linuxiarz.pl/12-2015/c7-apache/autoindex.conf -O /etc/httpd/conf.d/autoindex.conf wget http://pliki.linuxiarz.pl/12-2015/c7-apache/userdir.conf -O /etc/httpd/conf.d/userdir.conf wget http://pliki.linuxiarz.pl/12-2015/c7-apache/v-hosts.conf -O /etc/httpd/conf.d/v-hosts.conf wget http://pliki.linuxiarz.pl/12-2015/c7-apache/httpd.conf -O /etc/httpd/conf/httpd.conf systemctl restart httpd
5. Instalacja PHP-FPM
5.1 Wersja PHP 5.4
yum install php-fpm php-gd php-xmlrpc php-xml php-mysql php-curl php-mbstring php-pear nano wget curl unzip sendmail -y rm /etc/php-fpm.d/* --force ; wget http://pliki.linuxiarz.pl/09-2015/www.conf -O /etc/php-fpm.d/www.conf mkdir -p /etc/php-fpm.d/extension rm /etc/php.ini --force ; wget http://pliki.linuxiarz.pl/09-2015/php_centos.ini -O /etc/php.ini wget http://pliki.linuxiarz.pl/09-2015/opcache_5.4.so -O /etc/php-fpm.d/extension/opcache.so wget http://pliki.linuxiarz.pl/09-2015/ioncube_loader_lin_5.4.so -O /etc/php-fpm.d/extension/ioncube_loader_lin_5.4.so echo '<?php phpinfo(); ?>' > /home/www/public_html/info.php systemctl restart php-fpm
WERSJE PHP SĄ ZAMIENNE ZE SOBĄ!
5.2 Wersja PHP 5.6
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum install php56w-gd php56w-xmlrpc php56w-xml php56w-mysql php56w-curl php56w-mbstring php56w-pear php56w-opcache php56w-soap php56w-fpm php56w-imap php56w-mcrypt php56w-pdo nano wget curl unzip sendmail -y rm -rf /etc/php.ini rm -rf /etc/php-fpm.d/www.conf wget http://pliki.linuxiarz.pl/12-2015/c7-apache/php.ini -O /etc/php.ini wget http://pliki.linuxiarz.pl/12-2015/c7-apache/www.conf -O /etc/php-fpm.d/www.conf mkdir -p /etc/php-modules wget http://pliki.linuxiarz.pl/08-2015/php5/opcache.so -O /etc/php-modules/opcache.so wget http://pliki.linuxiarz.pl/08-2015/php5/ioncube_loader_lin_5.6.so -O /etc/php-modules/ioncube_loader_lin_5.6.so service php-fpm restart
6. Serwer reverse-PROXY NGINX
6.1 Potrzebne Pakiety:
yum install wget curl unzip gcc-c++ pcre-devel zlib-devel openssl-devel lua-devel -y
6.2 Źródła
mkdir ~/custom-nginx cd ~/custom-nginx wget http://repo.linuxiarz.pl/NGINX-1.9.12-UNIX.tar.gz tar xvf NGINX-1.9.*.tar.gz cd nginx-*
6.3 Konfiguracja i kompilacja
wget http://pliki.linuxiarz.pl/11-2015/configure_c7_ng_0.sh -O configure.sh chmod +x configure.sh bash configure.sh make
6.4 Instalacja skompilowanego NGINX’a
make install
6.5 Gotowa konfiguracja NGINX
rm -rf /etc/nginx/ cd /root/ ; mkdir nginx cd nginx ; wget http://pliki.linuxiarz.pl/12-2015/c7-apache/proxy-nginx-c7.zip ## nowa wersja - na dzien 02.06.2016 cd nginx ; wget http://pliki.linuxiarz.pl/02-2016/c7_new.zip -O proxy-nginx-c7.zip unzip proxy-nginx-c7.zip ; cd /root mv nginx /etc/
6.6 Skrypt startowy NGINX
wget http://pliki.linuxiarz.pl/11-2015/nginx-init.d_centos -O /etc/init.d/nginx chmod +x /etc/init.d/nginx wget http://pliki.linuxiarz.pl/12-2015/c7-apache/nginx.service -O /lib/systemd/system/nginx.service chmod +x /lib/systemd/system/nginx.service systemctl start nginx.service
7. Instalacja bazy MariaDB
wget http://pliki.linuxiarz.pl/11-2015/mariadb.repo -O /etc/yum.repos.d/MariaDB.repo yum install MariaDB-server MariaDB-client -y systemctl start mariadb
7.1 Konfiguracja hasła i ustawienia bazy danych
mysql_secure_installation
8. Instalacja phpMyAdmin’a
cd /opt/; wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.1/phpMyAdmin-4.4.15.1-all-languages.zip unzip phpMyAdmin-4.4.15.1-all-languages.zip rm -rf php*.zip mv phpMyAdmin-4.4.15.1-all-languages pma mkdir -p /var/lib/php/session; chmod 4777 /var/lib/php/session wget http://pliki.linuxiarz.pl/12-2015/c7-apache/pma.conf -O /etc/nginx/conf.d/pma.conf sed -i s'/fastcgi_pass unix:\/var\/run\/php5-fpm.sock/fastcgi_pass 127.0.0.1:9000/' /etc/nginx/php.conf systemctl restart nginx
9. Startowanie aplikacji ze startem systemu
systemctl start httpd.service systemctl enable httpd.service systemctl status httpd.service -l systemctl start php-fpm.service systemctl enable php-fpm.service systemctl status php-fpm.service -l systemctl start nginx.service systemctl enable nginx.service systemctl status nginx.service -l systemctl start memcached.service systemctl enable memcached.service systemctl status memcached.service -l systemctl start mariadb.service systemctl enable mariadb.service systemctl status mariadb.service -l
10. Serwer FTP
Odsyłam do specjalnego poradnika
11. Generator haseł
Aby zmodyfikować i ustawić własne hasło do modułu VTS (/vhost_status) i statystyk NGINX PageSpeed oraz zakładki /nginxstatus – domyślne to admin:admin
wget http://pliki.linuxiarz.pl/11-2015/generator -O /usr/bin/generator chmod +x /usr/bin/generator echo "" > /etc/nginx/htpasswd
->> UZYCIE: generator nazwapliku uzytkownik haslo np.
generator /etc/nginx/htpasswd admin admin
12. Dodatki
phpsysinfo i phpinfo
rm -rf /home/www/public_html/* 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 -rf /home/www/public_html/status.zip rm -rf /home/www/public_html/stan.php
php directory list
wget http://pliki.linuxiarz.pl/12-2015/c7-apache/dl.zip -O /home/www/public_html/dl.zip cd /home/www/public_html/ ; unzip dl.zip; rm -rf dl.zip