Установка WordPress на CentOS 7

Устанавливаем Apache
Заходим как root и устанавливаем пакеты httpd, mod_ssl, PHP, mariadb:
# yum install httpd mod_ssl mariadb-server mariadb php php-mysql php-gd php-pear php-pgsql wget
Разрешаем обращатся по 80 порту к нам:
Добавляем строчку в /etc/firewalld/zones/public.xml
<service name=»http»/>
Задаём имя сайта, редактируя файл: /etc/httpd/conf/httpd.conf
ServerName http://www.test.ru:80
# systemctl enable httpd.service
# systemctl enable mariadb.service
# systemctl start mariadb.service
Делаем первоначальные настройки базы данных;
# /usr/bin/mysql_secure_installation
потом везде жмем “Y“:
Создаем базу для WordPress:
Входим в базу данных:
# mysql -u root -p
Придумываем имя для базы данных и создаем ее:
> CREATE DATABASE wp1;
Создаем пользователя для этой базы данных:
> CREATE USER wp@localhost;
Устанавливаем ему пароль:
> SET PASSWORD FOR wp@localhost= PASSWORD(«wp-password»);
Делаем этого пользователя хозяином базы:
> GRANT ALL PRIVILEGES ON wp1.* TO wp@localhost IDENTIFIED BY ‘wp-password’;
Перезапускаем привилегии базы:
> FLUSH PRIVILEGES;
Выходим из базы:
> exit
Открываем файл:
# vi /etc/httpd/conf/httpd.conf
ищем такую строчку:
<Directory “/var/www/html”>
и под ней исправляем строчку:
AllowOverride none на AllowOverride All
Сохраняем, выходим и запускаем httpd:
# systemctl start httpd.service
Для того, чтобы Apache мог отправлять E-Mail выполняем команду:
setsebool -P httpd_can_sendmail 1
Перезапускаем сервер
restart
Устанавка WordPress
# cd /var/www/html/
Скачиваем последнюю версию:
# wget http://wordpress.org/latest.tar.gz
Распаковываем ее:
# tar -xzvf latest.tar.gz
Перемещаем:
# mv wordpress/* .
Даем права:
# chown -R apache:apache /var/www/html/
Делаем первый запуск wordpress:
http://test.ru
Отвечаем на вопросы мастера и пользуемся !!!

P.S.

На CentOS 7 для включения защита картинок от прямого скачивания (hotlinking) есть некие особенности.

Большинство рекомендаций сводится к включению следующего кода в .htaccess:

SetEnvIfNoCase Referer «^http://www\.test\.ru/» banimages=1
SetEnvIfNoCase Referer «^http://test\.ru/» banimages=1
SetEnvIfNoCase Referer «^$» banimages=1
<FilesMatch «\.(gif|png|jpe?g)$»>
Order Allow,Deny
Allow from env=banimages=1
</FilesMatch>

Этот код блокирует всё.

Или:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?test.ru/.*$ [NC]
RewriteRule ^.*\.(bmp|tif|gif|jpg|jpeg|jpe|png)$ — [F]

Этот код не работает:

Правильное и рабочее решение:

RewriteCond expr «! %{HTTP_REFERER} -strmatch ‘*://%{HTTP_HOST}/*'»
RewriteRule ^.*\.(bmp|tif|gif|jpg|jpeg|jpe|png)$ — [F]