Как установить WordPress на Debian?
Если решите как-то реализовать написанное, то все действия вы производите на свой страх и риск!
Чтобы установить WordPress (в качестве примера используется домен wp-site.test) на Linux Debian с самоподписанным сертификатом необходимо:
- Обновить систему
- Устанавливаем необходимые пакеты
- Временно выключим и добавим в автозапуск сервисы
- Поправим порт в ports.conf на 8080, т.к. делаем связку nginx+apache2+php+mariadb и создадим виртуальный хост на apache2
- Создаем папки для логов
- Создаем папку для сайта и тестовый php-файл
- Включаем редиректы на apache2 и проверяем конфигурацию
- Включаем сайт
- Создаем сертификат и ключ для https-соединения
- Создаем виртуальный хост для nginx и прописываем конфиг
- Включаем хост на nginx
- Проверяем конфиг nginx -t[/code]
- Задаем пароль root для mariadb
- Заходим в СУБД
- Создаем пользователя с паролем и базу данных для WordPress
- Перезапускаем сервисы и проверяем работу сайта (надо в браузере зайти на URL)
- Переходим в папку сайта и удаляем ненужное.
- Качаем сам WordPress
- Распаковываем скаченное и перемещаем в корень сайта
- Удаляем ненужное
- Ставим права на папку с файлами сайта
- Переходим в браузере по URL домена и настраиваем WordPress
apt update; apt upgrade
apt install nginx apache2 htop curl wget mariadb-server php php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip unzip php-mysql
systemctl enable nginx apache2 mariadb; systemctl stop nginx apache2
nano /etc/apache2/ports.conf; nano /etc/apache2/sites-available/wp-site.test.conf
<VirtualHost 127.0.0.1:8080>
ServerName wp-site.test
ServerAlias www.wp-site.test
DocumentRoot "/var/www/wp-site.test"
<Directory "/var/www/wp-site.test/">
AllowOverride All
allow from all
Options -Indexes
#Options FollowSymLinks
</Directory>
<FilesMatch "\.ph(p[3-8]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
ErrorLog /var/www/log/apache2/wp-site.test-error.log
CustomLog /var/www/log/apache2/wp-site.test-access.log combined
<ifModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>
<IfModule php8_module>
php_flag session.cookie_httponly 1
php_flag session.cookie_secure 1
</IfModule>
</VirtualHost>
mkdir /var/www/log/; mkdir /var/www/log/apache2/; mkdir /var/www/log/nginx/
mkdir /var/www/wp-site.test/; echo '<?php phpinfo(); ?>' > /var/www/wp-site.test/index.php
a2enmod rewrite; apache2ctl configtest
a2ensite wp-site.test.conf
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/wp-site.test-selfsigned.key -out /etc/ssl/certs/wp-site.test-selfsigned.crt
nano /etc/nginx/sites-available/wp-site.test
server {
listen 80;
server_name wp-site.test www.wp-site.test;
add_header Content-Security-Policy upgrade-insecure-requests;
return 302 https://wp-site.test$request_uri;
}
server {
listen 443 ssl;
server_name wp-site.test www.wp-site.test;
access_log /var/www/log/nginx/wp-site.test-access.log;
error_log /var/www/log/nginx/wp-site.test-error.log;
ssl_certificate /etc/ssl/certs/wp-site.test-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/wp-site.test-selfsigned.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security 'max-age=15552000; includeSubDomains';
add_header Content-Security-Policy upgrade-insecure-requests;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:"убрать перенос"
EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384: "убрать перенос"
EECDH+aRSA+SHA256:EECDH:EDH+aRSA:HIGH:!aNULL:!eNULL:!LOW:!RC4:!3DES:"убрать перенос"
!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
ssl_prefer_server_ciphers on;
client_max_body_size 200M;
keepalive_requests 100;
keepalive_timeout 30;
reset_timedout_connection on;
client_body_timeout 10;
send_timeout 2;
fastcgi_ignore_client_abort on;
location / {
fastcgi_ignore_client_abort on;
proxy_ignore_client_abort on;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Connection "";
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
location ~* \.(woff2|svg|png|jpg|jpeg|gif|css|js|pdf|doc|zip|rar|docx|avi|tiff|"убрать перенос"
rtf|gz|gzip|mpg|mpeg|"убрать перенос"
mp3|mp4|tgz|wav|wmv|wma|xls|xlsx|xml|bmp|ico||psd)$ {
root /var/www/wp-site.test/;
}
}
ln -s "/etc/nginx/sites-available/wp-site.test" /etc/nginx/sites-enabled/wp-site.test
mysqladmin -u root password newpasstest
mysql -uroot -p
CREATE DATABASE `wptestdb`; CREATE USER 'wpuzer'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON `wptestdb`.* TO 'wpuzer'@'localhost'; FLUSH PRIVILEGES; quit;
systemctl restart apache2 nginx mariadb
cd /var/www/wp-site.test/; rm index.php
wget https://ru.wordpress.org/latest-ru_RU.zip;
unzip latest-ru_RU.zip;mv wordpress/* ./
rm -r wordpress/; rm latest-ru_RU.zip
cd ..; chown www-data:www-data -R wp-site.test/; chmod g+s wp-site.test/
Имя - Тестовый сайт Логин с паролем wp-user:4dveRElmfKjNrltN Почта для восстановения test@example.loc
Видео на Youtube:
Видео на Rutube:
Категории: Записи по DevOps