CentOS 7 i nginx + MariaDB + PHP5-FPM

c_p_ngx_pma_mdb

Hej:)
Kontynuuje serie serwera WWW “w pigułce” tym razem pracujemy na systemie: CentOS 7.
Przygotowywałem wszystko od początku, wcześniejsze poradniki dotyczyły zupełnie innych systemów, były to głównie Debiany i Ubuntu – tym razem CentOS i dziecko RedHata czyli Fedora.
Skupiłem się na NGINX – bez Apache – na to przyjdzie czas…

NGINX’a kompilujesz z “moich” źródeł – po prostu dołączam sprawdzona konfigurację, moduły i dodatki.
Bazujemy wyłącznie na wersji NGINX 1.9.7 – jest to najnowsza na dzień wersja (20.11.2015)
Jako bazę opisuje MariaDB – przecież nic innego nie potrzebujesz, prawda 😉 ??
Wszystko poza NGINX pochodzi z dystrybucji CentOS (repozytoria oficjalne lub epel)

Domyślna konfiguracja serwera NGINX znajduje się w /etc/nginx/nginx.conf a v-hosty /etc/nginx/conf.d/

Po więcej informacji odsyłam do dokumentacji -> https://www.nginx.com/resources/wiki/

Poniższa konfiguracja działa również na Fedorze 19/20

Wyłącz przed instalacjami SELinux: more..

setenforce 0

1. Przygotowanie, wymagane pakiety:

sudo yum install epel-release -y 
sudo yum install wget curl unzip gcc-c++ pcre-devel zlib-devel openssl-devel lua-devel -y

2. Źródła NGINX które przygotowałem, z moimi “udogodnieniami”:

mkdir ~/custom-nginx
cd ~/custom-nginx
wget http://repo.linuxiarz.pl/NGINX-1.9.7-UNIX.tar.gz
tar xvf NGINX-1.9.7-UNIX.tar.gz
cd nginx-*

3. Kompilacja

wget http://pliki.linuxiarz.pl/11-2015/configure_c7_ng_0.sh -O configure.sh
chmod +x configure.sh
bash configure.sh
make
make install

4. Konfiguracja:

rm -rf /etc/nginx/
cd /root/ ; mkdir nginx
cd nginx ; wget http://pliki.linuxiarz.pl/11-2015/nginx_centos7.zip
unzip nginx_centos7.zip ; cd /root
mv nginx /etc/

5. 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
/etc/init.d/nginx start

6. Konfiguracja użytkownika “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

7. Baza danych MariaDB:

wget http://pliki.linuxiarz.pl/11-2015/mariadb.repo -O /etc/yum.repos.d/MariaDB.repo
yum install MariaDB-server MariaDB-client sendmail -y
systemctl start mariadb
mysql_secure_installation

8. PHP5-FPM – instalacja i konfiguracja:
8.1 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
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

8.2 PHP 5.6 – zamienne z wersją 5.4

 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

rm -rf /etc/php.ini
rm -rf /etc/php-fpm.d/www.conf
wget http://pliki.linuxiarz.pl/11-2015/c7/php.ini -O /etc/php.ini 
wget http://pliki.linuxiarz.pl/11-2015/c7/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
sed -i s'/fastcgi_pass unix:\/var\/run\/php5-fpm.sock/fastcgi_pass 127.0.0.1:9000/' /etc/nginx/php.conf
echo '<?php phpinfo(); ?>' > /home/www/public_html/info.php
service php-fpm restart
/etc/init.d/nginx restart

9. Zarządzanie bazą danych czyli phpMyAdmin:

cd /home/www/public_html
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

10. FTP:
http://linuxiarz.pl/1356/centos-7-instalacja-serwera-ftp/

11. Na podstawie uwag, jednego z użytkowników postanowiłem wskazać jak zmodyfikować ustawić własne hasło do modułu VTS i statystyk NGINX PageSpeed oraz zakładki /nginxstatus

Przygotowałem skrypt:

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

generator /etc/nginx/htpasswd admin admin

12. Uruchamianie usług ze startem systemu:

sudo /usr/bin/systemctl enable mariadb
sudo /usr/bin/systemctl enable nginx
sudo /usr/bin/systemctl enable php-fpm