Установка и настройка WordPress — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка WordPress = == 1. Подготовка системы == * Войдите в систему под учетной з…»)
 
 
Строка 6: Строка 6:
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
  
== 2. Установка LAMP стека ===
+
== 2. Установка LAMP стека ==
  
 
=== Обновление системы ===
 
=== Обновление системы ===
  
 
1. Обновите систему:
 
1. Обновите систему:
<code>sudo apt update</code>
+
<pre>sudo apt update</pre>
  
 
2. Установите необходимые пакеты:
 
2. Установите необходимые пакеты:
<code>sudo apt install -y wget curl unzip</code>
+
<pre>sudo apt install -y wget curl unzip</pre>
  
 
=== Установка Apache ===
 
=== Установка Apache ===
  
 
1. Установите Apache:
 
1. Установите Apache:
<code>sudo apt install -y apache2</code>
+
<pre>sudo apt install -y apache2</pre>
  
 
2. Запустите и включите автозапуск:
 
2. Запустите и включите автозапуск:
<code>sudo systemctl start apache2</code>
+
<pre>sudo systemctl start apache2</pre>
<code>sudo systemctl enable apache2</code>
+
<pre>sudo systemctl enable apache2</pre>
  
 
3. Проверьте статус:
 
3. Проверьте статус:
<code>sudo systemctl status apache2</code>
+
<pre>sudo systemctl status apache2</pre>
  
 
4. Включите необходимые модули:
 
4. Включите необходимые модули:
<code>sudo a2enmod rewrite</code>
+
<pre>sudo a2enmod rewrite</pre>
<code>sudo a2enmod ssl</code>
+
<pre>sudo a2enmod ssl</pre>
<code>sudo a2enmod headers</code>
+
<pre>sudo a2enmod headers</pre>
  
 
=== Установка MySQL ===
 
=== Установка MySQL ===
  
 
1. Установите MySQL:
 
1. Установите MySQL:
<code>sudo apt install -y mysql-server</code>
+
<pre>sudo apt install -y mysql-server</pre>
  
 
2. Запустите и включите автозапуск:
 
2. Запустите и включите автозапуск:
<code>sudo systemctl start mysql</code>
+
<pre>sudo systemctl start mysql</pre>
<code>sudo systemctl enable mysql</code>
+
<pre>sudo systemctl enable mysql</pre>
  
 
3. Настройте безопасность MySQL:
 
3. Настройте безопасность MySQL:
<code>sudo mysql_secure_installation</code>
+
<pre>sudo mysql_secure_installation</pre>
  
 
4. Создайте базу данных для WordPress:
 
4. Создайте базу данных для WordPress:
<code>sudo mysql -u root -p</code>
+
<pre>sudo mysql -u root -p</pre>
  
 
5. В MySQL выполните:
 
5. В MySQL выполните:
<code>CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
<pre>CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password';
 
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password';
 
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
 
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
 
FLUSH PRIVILEGES;
 
FLUSH PRIVILEGES;
EXIT;</code>
+
EXIT;</pre>
  
 
=== Установка PHP ===
 
=== Установка PHP ===
  
 
1. Установите PHP и необходимые модули:
 
1. Установите PHP и необходимые модули:
<code>sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-soap</code>
+
<pre>sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-soap</pre>
  
 
2. Проверьте версию PHP:
 
2. Проверьте версию PHP:
<code>php --version</code>
+
<pre>php --version</pre>
  
 
3. Настройте PHP:
 
3. Настройте PHP:
<code>sudo nano /etc/php/8.1/apache2/php.ini</code>
+
<pre>sudo nano /etc/php/8.1/apache2/php.ini</pre>
  
 
4. Измените основные параметры:
 
4. Измените основные параметры:
<code>upload_max_filesize = 64M
+
<pre>upload_max_filesize = 64M
 
post_max_size = 64M
 
post_max_size = 64M
 
max_execution_time = 300
 
max_execution_time = 300
 
memory_limit = 256M
 
memory_limit = 256M
 
date.timezone = Europe/Moscow
 
date.timezone = Europe/Moscow
</code>
+
</pre>
  
 
5. Перезапустите Apache:
 
5. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
+
<pre>sudo systemctl restart apache2</pre>
  
== 3. Установка WordPress ===
+
== 3. Установка WordPress ==
  
 
=== Скачивание WordPress ===
 
=== Скачивание WordPress ===
  
 
1. Перейдите в директорию веб-сервера:
 
1. Перейдите в директорию веб-сервера:
<code>cd /var/www/html</code>
+
<pre>cd /var/www/html</pre>
  
 
2. Скачайте последнюю версию WordPress:
 
2. Скачайте последнюю версию WordPress:
<code>sudo wget https://wordpress.org/latest.tar.gz</code>
+
<pre>sudo wget https://wordpress.org/latest.tar.gz</pre>
  
 
3. Распакуйте архив:
 
3. Распакуйте архив:
<code>sudo tar -xzf latest.tar.gz</code>
+
<pre>sudo tar -xzf latest.tar.gz</pre>
  
 
4. Переместите файлы:
 
4. Переместите файлы:
<code>sudo mv wordpress/* .</code>
+
<pre>sudo mv wordpress/* .</pre>
<code>sudo rmdir wordpress</code>
+
<pre>sudo rmdir wordpress</pre>
  
 
5. Удалите архив:
 
5. Удалите архив:
<code>sudo rm latest.tar.gz</code>
+
<pre>sudo rm latest.tar.gz</pre>
  
 
=== Настройка прав доступа ===
 
=== Настройка прав доступа ===
  
 
1. Установите владельца файлов:
 
1. Установите владельца файлов:
<code>sudo chown -R www-data:www-data /var/www/html</code>
+
<pre>sudo chown -R www-data:www-data /var/www/html</pre>
  
 
2. Установите права доступа:
 
2. Установите права доступа:
<code>sudo find /var/www/html -type d -exec chmod 755 {} \;</code>
+
<pre>sudo find /var/www/html -type d -exec chmod 755 {} \;</pre>
<code>sudo find /var/www/html -type f -exec chmod 644 {} \;</code>
+
<pre>sudo find /var/www/html -type f -exec chmod 644 {} \;</pre>
  
 
3. Создайте директорию для загрузок:
 
3. Создайте директорию для загрузок:
<code>sudo mkdir -p /var/www/html/wp-content/uploads</code>
+
<pre>sudo mkdir -p /var/www/html/wp-content/uploads</pre>
<code>sudo chown -R www-data:www-data /var/www/html/wp-content/uploads</code>
+
<pre>sudo chown -R www-data:www-data /var/www/html/wp-content/uploads</pre>
  
 
=== Создание конфигурационного файла ===
 
=== Создание конфигурационного файла ===
  
 
1. Скопируйте пример конфигурации:
 
1. Скопируйте пример конфигурации:
<code>sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php</code>
+
<pre>sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php</pre>
  
 
2. Отредактируйте конфигурацию:
 
2. Отредактируйте конфигурацию:
<code>sudo nano /var/www/html/wp-config.php</code>
+
<pre>sudo nano /var/www/html/wp-config.php</pre>
  
 
3. Настройте базу данных:
 
3. Настройте базу данных:
<code>define('DB_NAME', 'wordpress');
+
<pre>define('DB_NAME', 'wordpress');
 
define('DB_USER', 'wordpress');
 
define('DB_USER', 'wordpress');
 
define('DB_PASSWORD', 'your_password');
 
define('DB_PASSWORD', 'your_password');
 
define('DB_HOST', 'localhost');
 
define('DB_HOST', 'localhost');
</code>
+
</pre>
  
 
4. Сгенерируйте ключи безопасности:
 
4. Сгенерируйте ключи безопасности:
<code>curl -s https://api.wordpress.org/secret-key/1.1/salt/</code>
+
<pre>curl -s https://api.wordpress.org/secret-key/1.1/salt/</pre>
  
 
5. Замените ключи в wp-config.php
 
5. Замените ключи в wp-config.php
  
== 4. Настройка Apache ===
+
== 4. Настройка Apache ==
  
 
=== Создание виртуального хоста ===
 
=== Создание виртуального хоста ===
  
 
1. Создайте конфигурацию сайта:
 
1. Создайте конфигурацию сайта:
<code>sudo nano /etc/apache2/sites-available/wordpress.conf</code>
+
<pre>sudo nano /etc/apache2/sites-available/wordpress.conf</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code><VirtualHost *:80>
+
<pre><VirtualHost *:80>
 
     ServerName your-domain.com
 
     ServerName your-domain.com
 
     DocumentRoot /var/www/html
 
     DocumentRoot /var/www/html
Строка 150: Строка 150:
 
     CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
 
     CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
 
</VirtualHost>
 
</VirtualHost>
</code>
+
</pre>
  
 
3. Включите сайт:
 
3. Включите сайт:
<code>sudo a2ensite wordpress</code>
+
<pre>sudo a2ensite wordpress</pre>
<code>sudo a2dissite 000-default</code>
+
<pre>sudo a2dissite 000-default</pre>
  
 
4. Проверьте конфигурацию:
 
4. Проверьте конфигурацию:
<code>sudo apache2ctl configtest</code>
+
<pre>sudo apache2ctl configtest</pre>
  
 
5. Перезапустите Apache:
 
5. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
+
<pre>sudo systemctl restart apache2</pre>
  
== 5. Настройка SSL ===
+
== 5. Настройка SSL ==
  
 
=== Установка Certbot ===
 
=== Установка Certbot ===
  
 
1. Установите Certbot:
 
1. Установите Certbot:
<code>sudo apt install -y certbot python3-certbot-apache</code>
+
<pre>sudo apt install -y certbot python3-certbot-apache</pre>
  
 
2. Получите SSL сертификат:
 
2. Получите SSL сертификат:
<code>sudo certbot --apache -d your-domain.com</code>
+
<pre>sudo certbot --apache -d your-domain.com</pre>
  
 
3. Настройте автоматическое обновление:
 
3. Настройте автоматическое обновление:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
4. Добавьте задачу:
 
4. Добавьте задачу:
<code>0 12 * * * /usr/bin/certbot renew --quiet</code>
+
<pre>0 12 * * * /usr/bin/certbot renew --quiet</pre>
  
 
=== Настройка HTTPS редиректа ===
 
=== Настройка HTTPS редиректа ===
  
 
1. Certbot автоматически настроит редирект, но можно добавить дополнительную настройку:
 
1. Certbot автоматически настроит редирект, но можно добавить дополнительную настройку:
<code>sudo nano /etc/apache2/sites-available/wordpress-le-ssl.conf</code>
+
<pre>sudo nano /etc/apache2/sites-available/wordpress-le-ssl.conf</pre>
  
 
2. Добавьте принудительный редирект:
 
2. Добавьте принудительный редирект:
<code>RewriteEngine On
+
<pre>RewriteEngine On
 
RewriteCond %{HTTPS} off
 
RewriteCond %{HTTPS} off
 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</code>
+
</pre>
  
== 6. Настройка WordPress ===
+
== 6. Настройка WordPress ==
  
 
=== Первоначальная настройка ===
 
=== Первоначальная настройка ===
  
 
1. Откройте браузер и перейдите по адресу:
 
1. Откройте браузер и перейдите по адресу:
<code>https://your-domain.com</code>
+
<pre>https://your-domain.com</pre>
  
 
2. Выберите язык и нажмите "Продолжить"
 
2. Выберите язык и нажмите "Продолжить"
Строка 209: Строка 209:
  
 
1. Войдите в админ-панель:
 
1. Войдите в админ-панель:
<code>https://your-domain.com/wp-admin</code>
+
<pre>https://your-domain.com/wp-admin</pre>
  
 
2. Настройте профиль администратора:
 
2. Настройте профиль администратора:
Строка 216: Строка 216:
 
* Настройте уведомления
 
* Настройте уведомления
  
== 7. Настройка безопасности ===
+
== 7. Настройка безопасности ==
  
 
=== Ограничение доступа к wp-admin ===
 
=== Ограничение доступа к wp-admin ===
  
 
1. Создайте .htaccess файл для защиты:
 
1. Создайте .htaccess файл для защиты:
<code>sudo nano /var/www/html/wp-admin/.htaccess</code>
+
<pre>sudo nano /var/www/html/wp-admin/.htaccess</pre>
  
 
2. Добавьте правила:
 
2. Добавьте правила:
<code># Ограничение доступа по IP
+
<pre>\# Ограничение доступа по IP
 
<RequireAll>
 
<RequireAll>
 
     Require ip 192.168.1.0/24
 
     Require ip 192.168.1.0/24
 
     Require ip YOUR_IP_ADDRESS
 
     Require ip YOUR_IP_ADDRESS
 
</RequireAll>
 
</RequireAll>
</code>
+
</pre>
  
 
=== Настройка файрвола ===
 
=== Настройка файрвола ===
  
 
1. Настройте UFW:
 
1. Настройте UFW:
<code>sudo ufw allow 22/tcp</code>
+
<pre>sudo ufw allow 22/tcp</pre>
<code>sudo ufw allow 80/tcp</code>
+
<pre>sudo ufw allow 80/tcp</pre>
<code>sudo ufw allow 443/tcp</code>
+
<pre>sudo ufw allow 443/tcp</pre>
<code>sudo ufw enable</code>
+
<pre>sudo ufw enable</pre>
  
 
2. Проверьте статус:
 
2. Проверьте статус:
<code>sudo ufw status</code>
+
<pre>sudo ufw status</pre>
  
 
=== Настройка fail2ban ===
 
=== Настройка fail2ban ===
  
 
1. Установите fail2ban:
 
1. Установите fail2ban:
<code>sudo apt install -y fail2ban</code>
+
<pre>sudo apt install -y fail2ban</pre>
  
 
2. Создайте конфигурацию для WordPress:
 
2. Создайте конфигурацию для WordPress:
<code>sudo nano /etc/fail2ban/jail.d/wordpress.conf</code>
+
<pre>sudo nano /etc/fail2ban/jail.d/wordpress.conf</pre>
  
 
3. Добавьте настройки:
 
3. Добавьте настройки:
<code>[wordpress]
+
<pre>[wordpress]
 
enabled = true
 
enabled = true
 
port = http,https
 
port = http,https
Строка 258: Строка 258:
 
maxretry = 3
 
maxretry = 3
 
bantime = 3600
 
bantime = 3600
</code>
+
</pre>
  
 
4. Запустите fail2ban:
 
4. Запустите fail2ban:
<code>sudo systemctl start fail2ban</code>
+
<pre>sudo systemctl start fail2ban</pre>
<code>sudo systemctl enable fail2ban</code>
+
<pre>sudo systemctl enable fail2ban</pre>
  
== 8. Установка плагинов ===
+
== 8. Установка плагинов ==
  
 
=== Обязательные плагины безопасности ===
 
=== Обязательные плагины безопасности ===
Строка 292: Строка 292:
 
* Бесплатное кэширование
 
* Бесплатное кэширование
  
== 9. Оптимизация производительности ===
+
== 9. Оптимизация производительности ==
  
 
=== Настройка кэширования ===
 
=== Настройка кэширования ===
  
 
1. Включите кэширование в Apache:
 
1. Включите кэширование в Apache:
<code>sudo a2enmod expires</code>
+
<pre>sudo a2enmod expires</pre>
<code>sudo a2enmod headers</code>
+
<pre>sudo a2enmod headers</pre>
  
 
2. Добавьте правила кэширования в .htaccess:
 
2. Добавьте правила кэширования в .htaccess:
<code># Кэширование статических файлов
+
<pre>\# Кэширование статических файлов
 
<IfModule mod_expires.c>
 
<IfModule mod_expires.c>
 
     ExpiresActive On
 
     ExpiresActive On
Строка 313: Строка 313:
 
     ExpiresByType application/javascript "access plus 1 month"
 
     ExpiresByType application/javascript "access plus 1 month"
 
</IfModule>
 
</IfModule>
</code>
+
</pre>
  
 
=== Настройка PHP-FPM ===
 
=== Настройка PHP-FPM ===
  
 
1. Установите PHP-FPM:
 
1. Установите PHP-FPM:
<code>sudo apt install -y php8.1-fpm</code>
+
<pre>sudo apt install -y php8.1-fpm</pre>
  
 
2. Настройте Apache для использования PHP-FPM:
 
2. Настройте Apache для использования PHP-FPM:
<code>sudo a2enmod proxy_fcgi setenvif</code>
+
<pre>sudo a2enmod proxy_fcgi setenvif</pre>
<code>sudo a2enconf php8.1-fpm</code>
+
<pre>sudo a2enconf php8.1-fpm</pre>
  
 
3. Перезапустите сервисы:
 
3. Перезапустите сервисы:
<code>sudo systemctl restart apache2</code>
+
<pre>sudo systemctl restart apache2</pre>
<code>sudo systemctl restart php8.1-fpm</code>
+
<pre>sudo systemctl restart php8.1-fpm</pre>
  
== 10. Резервное копирование ===
+
== 10. Резервное копирование ==
  
 
=== Автоматическое резервное копирование ===
 
=== Автоматическое резервное копирование ===
  
 
1. Создайте скрипт резервного копирования:
 
1. Создайте скрипт резервного копирования:
<code>sudo nano /usr/local/bin/wordpress-backup.sh</code>
+
<pre>sudo nano /usr/local/bin/wordpress-backup.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
 
BACKUP_DIR="/backup/wordpress"
 
BACKUP_DIR="/backup/wordpress"
Строка 342: Строка 342:
 
SITE_DIR="/var/www/html"
 
SITE_DIR="/var/www/html"
  
# Создание директории для бэкапа
+
\# Создание директории для бэкапа
 
mkdir -p $BACKUP_DIR
 
mkdir -p $BACKUP_DIR
  
# Резервное копирование файлов
+
\# Резервное копирование файлов
 
tar -czf $BACKUP_DIR/wordpress-files-$DATE.tar.gz -C $SITE_DIR .
 
tar -czf $BACKUP_DIR/wordpress-files-$DATE.tar.gz -C $SITE_DIR .
  
# Резервное копирование базы данных
+
\# Резервное копирование базы данных
 
mysqldump -u wordpress -p'your_password' wordpress > $BACKUP_DIR/wordpress-db-$DATE.sql
 
mysqldump -u wordpress -p'your_password' wordpress > $BACKUP_DIR/wordpress-db-$DATE.sql
  
# Сжатие SQL файла
+
\# Сжатие SQL файла
 
gzip $BACKUP_DIR/wordpress-db-$DATE.sql
 
gzip $BACKUP_DIR/wordpress-db-$DATE.sql
  
# Удаление старых бэкапов (старше 7 дней)
+
\# Удаление старых бэкапов (старше 7 дней)
 
find $BACKUP_DIR -name "wordpress-*" -mtime +7 -delete
 
find $BACKUP_DIR -name "wordpress-*" -mtime +7 -delete
  
 
echo "WordPress backup completed: $DATE"
 
echo "WordPress backup completed: $DATE"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/wordpress-backup.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/wordpress-backup.sh</pre>
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
5. Добавьте задачу:
 
5. Добавьте задачу:
<code>0 3 * * * /usr/local/bin/wordpress-backup.sh</code>
+
<pre>0 3 * * * /usr/local/bin/wordpress-backup.sh</pre>
  
== 11. Мониторинг ===
+
== 11. Мониторинг ==
  
 
=== Настройка логирования ===
 
=== Настройка логирования ===
  
 
1. Настройте ротацию логов:
 
1. Настройте ротацию логов:
<code>sudo nano /etc/logrotate.d/wordpress</code>
+
<pre>sudo nano /etc/logrotate.d/wordpress</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code>/var/log/apache2/wordpress_*.log {
+
<pre>/var/log/apache2/wordpress_*.log {
 
     daily
 
     daily
 
     missingok
 
     missingok
Строка 389: Строка 389:
 
     endscript
 
     endscript
 
}
 
}
</code>
+
</pre>
  
 
=== Мониторинг производительности ===
 
=== Мониторинг производительности ===
  
 
1. Установите htop для мониторинга:
 
1. Установите htop для мониторинга:
<code>sudo apt install -y htop</code>
+
<pre>sudo apt install -y htop</pre>
  
 
2. Создайте скрипт мониторинга:
 
2. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/wordpress-monitor.sh</code>
+
<pre>sudo nano /usr/local/bin/wordpress-monitor.sh</pre>
  
 
3. Добавьте содержимое:
 
3. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Проверка статуса Apache
+
\# Проверка статуса Apache
 
if ! systemctl is-active --quiet apache2; then
 
if ! systemctl is-active --quiet apache2; then
 
     echo "Apache is down!" | mail -s "WordPress Alert" admin@example.com
 
     echo "Apache is down!" | mail -s "WordPress Alert" admin@example.com
 
fi
 
fi
  
# Проверка использования диска
+
\# Проверка использования диска
 
DISK_USAGE=$(df /var/www/html | tail -1 | awk '{print $5}' | sed 's/%//')
 
DISK_USAGE=$(df /var/www/html | tail -1 | awk '{print $5}' | sed 's/%//')
 
if [ $DISK_USAGE -gt 80 ]; then
 
if [ $DISK_USAGE -gt 80 ]; then
Строка 413: Строка 413:
 
fi
 
fi
  
# Проверка доступности сайта
+
\# Проверка доступности сайта
 
if ! curl -s -o /dev/null -w "%{http_code}" https://your-domain.com | grep -q "200"; then
 
if ! curl -s -o /dev/null -w "%{http_code}" https://your-domain.com | grep -q "200"; then
 
     echo "Website is not responding!" | mail -s "WordPress Alert" admin@example.com
 
     echo "Website is not responding!" | mail -s "WordPress Alert" admin@example.com
 
fi
 
fi
</code>
+
</pre>
  
== 12. Устранение неполадок ===
+
== 12. Устранение неполадок ==
  
 
=== Частые проблемы ===
 
=== Частые проблемы ===
Строка 426: Строка 426:
 
* Проверьте права доступа к файлам
 
* Проверьте права доступа к файлам
 
* Проверьте конфигурацию Apache
 
* Проверьте конфигурацию Apache
* Проверьте логи: <code>sudo tail -f /var/log/apache2/error.log</code>
+
* Проверьте логи: <pre>sudo tail -f /var/log/apache2/error.log</pre>
  
 
2. '''Ошибки базы данных''':
 
2. '''Ошибки базы данных''':
Строка 441: Строка 441:
  
 
1. '''Проверка статуса сервисов''':
 
1. '''Проверка статуса сервисов''':
<code>sudo systemctl status apache2</code>
+
<pre>sudo systemctl status apache2</pre>
<code>sudo systemctl status mysql</code>
+
<pre>sudo systemctl status mysql</pre>
  
 
2. '''Проверка логов''':
 
2. '''Проверка логов''':
<code>sudo tail -f /var/log/apache2/error.log</code>
+
<pre>sudo tail -f /var/log/apache2/error.log</pre>
<code>sudo tail -f /var/log/mysql/error.log</code>
+
<pre>sudo tail -f /var/log/mysql/error.log</pre>
  
 
3. '''Проверка подключения к базе данных''':
 
3. '''Проверка подключения к базе данных''':
<code>mysql -u wordpress -p -e "SELECT 1;"</code>
+
<pre>mysql -u wordpress -p -e "SELECT 1;"</pre>
  
 
4. '''Проверка PHP ошибок''':
 
4. '''Проверка PHP ошибок''':
<code>sudo tail -f /var/log/apache2/error.log | grep PHP</code>
+
<pre>sudo tail -f /var/log/apache2/error.log | grep PHP</pre>
  
 
== Заключение ==
 
== Заключение ==

Текущая версия на 10:45, 15 октября 2025

Содержание

Установка и настройка WordPress

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка LAMP стека

Обновление системы

1. Обновите систему:

sudo apt update

2. Установите необходимые пакеты:

sudo apt install -y wget curl unzip

Установка Apache

1. Установите Apache:

sudo apt install -y apache2

2. Запустите и включите автозапуск:

sudo systemctl start apache2
sudo systemctl enable apache2

3. Проверьте статус:

sudo systemctl status apache2

4. Включите необходимые модули:

sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers

Установка MySQL

1. Установите MySQL:

sudo apt install -y mysql-server

2. Запустите и включите автозапуск:

sudo systemctl start mysql
sudo systemctl enable mysql

3. Настройте безопасность MySQL:

sudo mysql_secure_installation

4. Создайте базу данных для WordPress:

sudo mysql -u root -p

5. В MySQL выполните:

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Установка PHP

1. Установите PHP и необходимые модули:

sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-soap

2. Проверьте версию PHP:

php --version

3. Настройте PHP:

sudo nano /etc/php/8.1/apache2/php.ini

4. Измените основные параметры:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
date.timezone = Europe/Moscow

5. Перезапустите Apache:

sudo systemctl restart apache2

3. Установка WordPress

Скачивание WordPress

1. Перейдите в директорию веб-сервера:

cd /var/www/html

2. Скачайте последнюю версию WordPress:

sudo wget https://wordpress.org/latest.tar.gz

3. Распакуйте архив:

sudo tar -xzf latest.tar.gz

4. Переместите файлы:

sudo mv wordpress/* .
sudo rmdir wordpress

5. Удалите архив:

sudo rm latest.tar.gz

Настройка прав доступа

1. Установите владельца файлов:

sudo chown -R www-data:www-data /var/www/html

2. Установите права доступа:

sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

3. Создайте директорию для загрузок:

sudo mkdir -p /var/www/html/wp-content/uploads
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads

Создание конфигурационного файла

1. Скопируйте пример конфигурации:

sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

2. Отредактируйте конфигурацию:

sudo nano /var/www/html/wp-config.php

3. Настройте базу данных:

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');

4. Сгенерируйте ключи безопасности:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

5. Замените ключи в wp-config.php

4. Настройка Apache

Создание виртуального хоста

1. Создайте конфигурацию сайта:

sudo nano /etc/apache2/sites-available/wordpress.conf

2. Добавьте конфигурацию:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /var/www/html
    
    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
    CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>

3. Включите сайт:

sudo a2ensite wordpress
sudo a2dissite 000-default

4. Проверьте конфигурацию:

sudo apache2ctl configtest

5. Перезапустите Apache:

sudo systemctl restart apache2

5. Настройка SSL

Установка Certbot

1. Установите Certbot:

sudo apt install -y certbot python3-certbot-apache

2. Получите SSL сертификат:

sudo certbot --apache -d your-domain.com

3. Настройте автоматическое обновление:

sudo crontab -e

4. Добавьте задачу:

0 12 * * * /usr/bin/certbot renew --quiet

Настройка HTTPS редиректа

1. Certbot автоматически настроит редирект, но можно добавить дополнительную настройку:

sudo nano /etc/apache2/sites-available/wordpress-le-ssl.conf

2. Добавьте принудительный редирект:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

6. Настройка WordPress

Первоначальная настройка

1. Откройте браузер и перейдите по адресу:

https://your-domain.com

2. Выберите язык и нажмите "Продолжить"

3. Заполните информацию о сайте:

  • Название сайта
  • Имя пользователя
  • Пароль
  • Email адрес

4. Нажмите "Установить WordPress"

Настройка администратора

1. Войдите в админ-панель:

https://your-domain.com/wp-admin

2. Настройте профиль администратора:

  • Перейдите в Пользователи → Ваш профиль
  • Обновите информацию
  • Настройте уведомления

7. Настройка безопасности

Ограничение доступа к wp-admin

1. Создайте .htaccess файл для защиты:

sudo nano /var/www/html/wp-admin/.htaccess

2. Добавьте правила:

\# Ограничение доступа по IP
<RequireAll>
    Require ip 192.168.1.0/24
    Require ip YOUR_IP_ADDRESS
</RequireAll>

Настройка файрвола

1. Настройте UFW:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

2. Проверьте статус:

sudo ufw status

Настройка fail2ban

1. Установите fail2ban:

sudo apt install -y fail2ban

2. Создайте конфигурацию для WordPress:

sudo nano /etc/fail2ban/jail.d/wordpress.conf

3. Добавьте настройки:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/apache2/wordpress_access.log
maxretry = 3
bantime = 3600

4. Запустите fail2ban:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

8. Установка плагинов

Обязательные плагины безопасности

1. Wordfence Security:

  • Перейдите в Плагины → Добавить новый
  • Найдите "Wordfence Security"
  • Установите и активируйте

2. UpdraftPlus:

  • Установите для резервного копирования
  • Настройте автоматические бэкапы

3. Yoast SEO:

  • Установите для SEO оптимизации
  • Настройте мета-теги и sitemap

Плагины производительности

1. WP Rocket:

  • Кэширование страниц
  • Оптимизация изображений
  • Минификация CSS/JS

2. W3 Total Cache:

  • Альтернатива WP Rocket
  • Бесплатное кэширование

9. Оптимизация производительности

Настройка кэширования

1. Включите кэширование в Apache:

sudo a2enmod expires
sudo a2enmod headers

2. Добавьте правила кэширования в .htaccess:

\# Кэширование статических файлов
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>

Настройка PHP-FPM

1. Установите PHP-FPM:

sudo apt install -y php8.1-fpm

2. Настройте Apache для использования PHP-FPM:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm

3. Перезапустите сервисы:

sudo systemctl restart apache2
sudo systemctl restart php8.1-fpm

10. Резервное копирование

Автоматическое резервное копирование

1. Создайте скрипт резервного копирования:

sudo nano /usr/local/bin/wordpress-backup.sh

2. Добавьте содержимое:

\#!/bin/bash

BACKUP_DIR="/backup/wordpress"
DATE=$(date +%Y%m%d_%H%M%S)
SITE_DIR="/var/www/html"

\# Создание директории для бэкапа
mkdir -p $BACKUP_DIR

\# Резервное копирование файлов
tar -czf $BACKUP_DIR/wordpress-files-$DATE.tar.gz -C $SITE_DIR .

\# Резервное копирование базы данных
mysqldump -u wordpress -p'your_password' wordpress > $BACKUP_DIR/wordpress-db-$DATE.sql

\# Сжатие SQL файла
gzip $BACKUP_DIR/wordpress-db-$DATE.sql

\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "wordpress-*" -mtime +7 -delete

echo "WordPress backup completed: $DATE"

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/wordpress-backup.sh

4. Добавьте в crontab:

sudo crontab -e

5. Добавьте задачу:

0 3 * * * /usr/local/bin/wordpress-backup.sh

11. Мониторинг

Настройка логирования

1. Настройте ротацию логов:

sudo nano /etc/logrotate.d/wordpress

2. Добавьте конфигурацию:

/var/log/apache2/wordpress_*.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 644 www-data www-data
    postrotate
        systemctl reload apache2
    endscript
}

Мониторинг производительности

1. Установите htop для мониторинга:

sudo apt install -y htop

2. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/wordpress-monitor.sh

3. Добавьте содержимое:

\#!/bin/bash

\# Проверка статуса Apache
if ! systemctl is-active --quiet apache2; then
    echo "Apache is down!" | mail -s "WordPress Alert" admin@example.com
fi

\# Проверка использования диска
DISK_USAGE=$(df /var/www/html | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
    echo "Disk usage is high: ${DISK_USAGE}%" | mail -s "WordPress Alert" admin@example.com
fi

\# Проверка доступности сайта
if ! curl -s -o /dev/null -w "%{http_code}" https://your-domain.com | grep -q "200"; then
    echo "Website is not responding!" | mail -s "WordPress Alert" admin@example.com
fi

12. Устранение неполадок

Частые проблемы

1. WordPress не загружается:

  • Проверьте права доступа к файлам
  • Проверьте конфигурацию Apache
  • Проверьте логи:
    sudo tail -f /var/log/apache2/error.log

2. Ошибки базы данных:

  • Проверьте подключение к MySQL
  • Проверьте настройки в wp-config.php
  • Проверьте права пользователя базы данных

3. Проблемы с плагинами:

  • Переименуйте папку плагинов
  • Проверьте совместимость версий
  • Восстановите из резервной копии

Диагностика

1. Проверка статуса сервисов:

sudo systemctl status apache2
sudo systemctl status mysql

2. Проверка логов:

sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/mysql/error.log

3. Проверка подключения к базе данных:

mysql -u wordpress -p -e "SELECT 1;"

4. Проверка PHP ошибок:

sudo tail -f /var/log/apache2/error.log | grep PHP

Заключение

WordPress успешно установлен и настроен! Теперь у вас есть полнофункциональный сайт с возможностями управления контентом, плагинами и темами.

Для размещения ваших WordPress сайтов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой WordPress и оптимизацией производительности ваших сайтов!