Instalacija WordPress-a na Centos 7

Instalacija WP

Preflight instalacija korisnih paketa i update sistema:

yum install epel-release

yum update

yum -y install mc sysstat iotop iftop mytop unzip wget pwgen

Instalacija Apache 2.4

Instalacija, startovanje i enable servisa prilikom boot-a sistema i instalacija mod_itk koji služi da bi se Apache pokrenuo pod određenim userom i grupom:

yum -y install httpd httpd-itk && systemctl start httpd && systemctl enable httpd

Pravljenje direktorijuma vhost.d za Apache vhost fajlove:

mkdir -pv /etc/httpd/vhost.d

Include vhost.d direktorijuma u Apache master konfiguraciju:

vim /etc/httpd/conf/httpd.conf -> IncludeOptional vhost.d/*.conf

Enable mod_itk Apache modula:

vim /etc/httpd/conf.modules.d/00-mpm-itk.conf -> Otkomentarisati #LoadModule direktivu da bi se uključio httpd-itk modul, nikako ne komentarisati liniju LoadModule mpm_prefork_module unutar 00-mpm.conf jer nece raditi!!

vim /etc/group -> Dodati SFTP korisnika u Apache (webserver) grupu

Dodavanje vhost fajla u Apache direktorijum

vim /etc/httpd/vhost.d/<ime domena>.conf

Primer konfiguracije:

<VirtualHost *:80>
ServerName
ServerAlias
ServerAdmin webmaster@<domen>

#LogLevel debug

ErrorLog /var/log/httpd/<fqdn>-error_log
CustomLog /var/log/httpd/<fqdn>-access_log combined

php_value memory_limit 1024M
### Ukoliko se koristo php-fpm interpreter servis dodati sledeci kod
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php-fpm/<fqdn>-php-fpm.sock|fcgi://localhost/webapps/<fqdn>_sftp/public_html
<IfModule mpm_itk_module>
AssignUserId <ime sftp korisnika> <ime sftp grupe od sftp korisnika>
</IfModule>

DocumentRoot /webapps/<homedir>/public_html
<Directory /webapps/<homedir>/public_html>
Order allow,deny
Allow from all
Require all granted
AllowOverride All
</Directory>

</VirtualHost>

Instalacija MariaDB 10.2

vim /etc/yum.repos.d/MariaDB.repo

Ubaciti u fajl sledeće:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled = 1

Instalacija, startovanje i enable servisa prilikom boot-a sistema:

yum -y install MariaDB-server MariaDB-client && systemctl start mariadb && systemctl enable mariadb

Instaliranje DB, usera i šifre kao i privilegija kroz konzolu:

mysql_secure_installation

Instalacija MySQL 5.x.x

 

Instaliranje MySQL 5.x.x repozituorijuma:

cd /root && wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm && rpm -ivh mysql-community-release-el7-5.noarch.rpm

Enable željene verzije MySQL-a:

vim /etc/yum.repos.d/mysql-community.repo -> Enabled = 1 staviti za 5.5 verzije a za ostale 0

Instalacija, startovanje i enable servisa prilikom boot-a sistema:

yum -y install mysql mysql-server && systemctl start mysqld && systemctl enable mysqld

## Pretraga temp šifre koja se generiše prilikom instalacije MySQL
grep “temporary password” /var/log/mysqld.log

## Brisanje complex šifara MySQL
login kao root
uninstall plugin validate_password;

Instlacija PHP 7.2

yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm && yum update

Enable PHP 7.2 u repozitorijumu:

vim /etc/yum.repos.d/remi-php72.repo -> Enabled = 1 za PHP 7.2

Instalacija PHP paketa:

yum -y install php php-cli php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-mysql

## Ako je potreban PHP-FPM ##

yum -y install php-fpm && systemctl enable php-fpm && systemctl start php-fpm

Instalacija PHP 5.6

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm && yum update

Enable PHP 5.6 u repozitorijumu:

vim /etc/yum.repos.d/remi-php56.repo -> Enabled = 1 za PHP 7.2

Instalacija PHP paketa:

yum -y install php php-cli php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-mysql

## Ako je potreban PHP-FPM ##

yum -y install php-fpm && systemctl enable php-fpm && systemctl start php-fpm

### PODESAVANJE PHP-FPM DA SLUSA NA SOCKET-u ###

vim /etc/php-fpm.d/<ime domena>.conf

[] -> ubaciti ime poola, najcesce fqdn ime domena
user -> ubaciti sftp korisnika vlasnika sajta
group -> ubaciti sftp grupu vlasnika sajta
listen -> podesiti UNIX socket, listen = /var/run/php-fpm/<fqdn>-php-fpm.sock
listen.owner -> ubaciti sftp korisnika
listen.group -> ubaciti web server grupu
php_admin_value[error_log] = /var/log/php-fpm/<fqdn>-error.log

Instalacija phpMyAdmin

yum -y install phpmyadmin

Editovanje phpMyAdmin konfiguracije i enable htpasswd Auth login-a:

vim /etc/httpd/conf.d/phpMyAdmin.conf

AllowOverride All
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
AuthType Basic
AuthName “Admin Login”
AuthUserFile /etc/httpd/httpd_users
Require valid-user
</RequireAny>
</IfModule>

Kreiranje htpasswd šifre:

htpasswd -c /etc/httpd/httpd_users <username_here>

systemctl restart httpd

Instalacija WordPress-a:

cd ~

wget http://wordpress.org/latest.tar.gz && tar xzvf latest.tar.gz

rsync -avP ~/wordpress/ /webapps/<fqdn>/public_html/ -> Koripranje celog sadržaja WP u public direktroijum

cd /webapps/<fqdn>/public_html/

mkdir -pv wp-content/uploads

cp wp-config-sample.php wp-config.php

chown -R sga_sftp: /webapps/<fqdn>/public_html/

Ubaciti db, dbname i dbuser u ovaj fajl:

vim wp-config.php

Instalacija mod_itk SFTP korisnika pod kojim je pokrenut sajt

useradd -m -d <putanja do home dir> -s /bin/bash -c “SFTP korisnik za sajt <fqdn>” -G <učlaniti u web server grupu> <ime korisnika>_sftp

passwd <ime_sftp_korisnika>

 

Instalacija Let’s Encrypt na CentOS 7.4

Pre početka instalacije uvek je pametno videti koji paketi na sistemu mogu da se update-uju:

# yum update

Nakon toga je potrebno instalirati httpd web  servis sa mod_ssl modulom i startovati servis i omogućiti automatsko startovanje servise priliko boot-a:

# yum -y install httpd mod_ssl && systemctl start httpd && systemctl enable httpd

Da bi smo instalirali certbot, potrebno je da se instalira EPEL repozitorijum:

# yum -y install epel-release

Instalacija certbot paketa:

# yum -y install certbot-apache

Generisanje SSL sertifkata se pokreće komandom, gde se startuje TUI wizard:

# certbot-2

Potrebno je prihavtiti EULA-u.

Potrebno podesiti administrativni kontakt na koji će stizati upozorenja kada je sertifikat ri kraju i druga admin obaveštenja.

Potrebno je pratiti wizard dalje i potvrditi za koje se sve domene/sub domene pravi sertifikat.

Na kraju je potrebno podesiiti da li će se raditi redirekcija ili ne, na osnovu toga će certbot podesiti redirekcije u okviru httpd vhost fajlova.

Certbot je moguće podesiti kroz crontab da vrši automatsku proveru važenja sertifikata i na osnovu nje da odredi da li je sertifikat za obnovu ili ne.

Potrebno je editovati crontab fajl:

vim /etc/crontab

Konkretno u ovom slučaj proveravamo sertifikat dva puta dnevno, svaki dan i svaki mesec svake godine, ovo je potrebno uneti u fajl /etc/crontab:

# Example of job definition:
# .—————- minute (0 – 59)
# | .————- hour (0 – 23)
# | | .———- day of month (1 – 31)
# | | | .——- month (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1