Serwer WWW w pigułce – CentOS 7

c_p_ngx_pma_mdb_ap

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

Poradnik powstał dzięki OVH.pl/cloud:
cloud