Запуск WordPress на OpenBSD 6.5 с использованием OpenBSDs HTTPD

Вступление

Чем ближе вы устанавливаете вашу OpenBSD к установке по умолчанию и без такого количества добавленных пакетов, тем безопаснее она будет. Хотя более распространенной настройкой WordPress является использование Apache и PHP, определенно возможно (и предпочтительно) использовать встроенный в OpenBSD httpd. Из этого туториала вы познакомитесь с полной настройкой сертификата Let's Encrypt, веб-сервера и WordPress. Для этого вам понадобится root-доступ.

Начальная конфигурация

Если вы еще этого не сделали, вам нужно будет создать /etc/doas.confфайл. Команда doasявляется простой заменой OpenBSD sudo.

su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf

Мы должны сообщить OpenBSD, где находятся пакеты. Это происходит в /etc/installurlфайле.

doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit

Теперь нам нужно добавить PHP и некоторые дополнительные модули, которые понадобятся WordPress для обработки таких вещей, как изображения и шифрование. При появлении запроса выберите установку новейшего пакета PHP. Одна вещь, которую вы должны сделать, это скопировать iniфайлы модуля из каталога примеров в основной. Это должно быть сделано для того, чтобы включить дополнительные модули PHP.

doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli pecl73-mcrypt pecl73-imagick 
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.

Получить зашифрованные сертификаты

OpenBSD имеет отличное приложение под названием acme-client. Это небольшое нововведение - это то, что сгенерирует ключ вашей учетной записи, закрытый ключ и получит для вас сертификат. Клиент acme зависит от наличия веб-сервера, поэтому мы определим краткое определение сервера по умолчанию.

С вашим любимым редактором, создавать /etc/httpd.conf. Мы добавим другие определения сервера в файл позже. Теперь нам нужно подготовить httpd к запросу-ответу, чтобы получить бесплатный действительный сертификат SSL.

prefork 5
types { include "/usr/share/misc/mime.types" }

server "default" {
    listen on egress port 80
    root "/htdocs"
    directory index "index.html"

    location "/.well-known/acme-challenge/*" {
        request strip 2
        root "/acme"
    }
}

Также используя ваш любимый редактор, создайте /etc/acme-client.conf.

authority letsencrypt {
    api url "https://acme-v01.api.letsencrypt.org/directory"
    account key "/etc/acme/letsencrypt-privkey.pem"
}

authority letsencrypt-staging {
    api url "https://acme-staging.api.letsencrypt.org/directory"
    account key "/etc/acme/letsencrypt-staging-privkey.pem"
}

domain example.com {
    alternative names { www.example.com }
    domain key "/etc/ssl/private/example.com.key"
    domain full chain certificate "/etc/ssl/example.com.fullchain.pem"
    sign with letsencrypt
}

Включите и запустите httpd, затем получите сертификат. Вы увидите, что сертификат был выдан.

doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd

Добавление определений сервера

Добавьте следующие строки конфигурации /etc/httpd.confсразу после определений Let's Encrypt. Настройте httpd для выполнения перенаправления с http на https, потому что у вас есть бесплатный сертификат SSL, и вы никогда не захотите рисковать отправкой логина и пароля по небезопасной ссылке. Обратите внимание на строку, location "/posts/*"которая заставляет постоянные ссылки WordPress выглядеть красиво. Кроме того, этот конфиг содержит способ предотвратить грубые попытки входа на сайт администратора WordPress.

server "example.com" {
    listen on egress port 80
    alias "www.example.com"
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}

server "example.com" {
    listen on egress tls port 443
    alias "www.example.com"
    root "/htdocs/example.com
    directory index "index.php"

     location "/posts/*" {
        fastcgi {
             param SCRIPT_FILENAME "/htdocs/example.com/index.php"
             socket "/run/php-fpm.sock"
        }
     }

     location "/wp-json/*" {
        fastcgi {
           param SCRIPT_FILENAME "/htdocs/example.com/index.php"
            socket "/run/php-fpm.sock"
        }
     }

    location "/wp-login.php*" {
        authenticate "WordPress" with "/htdocs/htpasswd"
        fastcgi socket "/run/php-fpm.sock"
     }

    #Uncomment the following lines to disable xmlrpc. You increase security 
    #at the expense of being able to use to use 
    #the Android and iPhone WordPress App.
    #location "xmlrpc.php*" {
    #    block return 404
    #}        

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
     }

    tls {
        certificate "/etc/ssl/example.com.fullchain.pem"
        key "/etc/ssl/private/example.com.key"
    }
}

Создайте файл имени пользователя и пароля для дополнительного уровня безопасности на сайте администратора WordPress. Выберите хороший пароль. Это запросит у вас имя пользователя и пароль для запуска wp-login.phpскрипта.

doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd

Подготовьте и настройте MariaDB

MariaDB - это вставная замена MySQL. Нам нужно выполнить некоторые начальные настройки и подготовить базу данных для WordPress.

Прежде чем мы сможем эффективно использовать MariaDB, нам нужно разрешить демону mysql использовать больше ресурсов, чем по умолчанию. Для этого внесите следующие изменения /etc/login.conf, добавив эту запись внизу.

mysqld:\
    :openfiles-cur=1024:\
    :openfiles-max=2048:\
    :tc=daemon:

Включите и запустите MariaDB. Эта процедура установит пароль root и при необходимости удалит тестовую базу данных. Рекомендуется следовать рекомендациям на этапе безопасной установки.

 doas mysql_install_db
 doas rcctl enable mysqld
 doas rcctl start mysqld
 doas mysql_secure_installation

Создайте базу данных WordPress и пользователя базы данных.

mysql -u root -p 
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT

Установить и настроить WordPress

У WordPress не было официального порта OpenBSD в течение достаточно долгого времени, потому что он в значительной степени работает прямо из коробки. Загрузите, распакуйте и переместите папку установки WordPress.

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/example.com
chown -R www:www /var/www/htdocs/example.com

Мы должны скопировать /etc/resolve.confи /etc/hostsв /var/www/etc. Это так, что WordPress может успешно выйти на рынок. Это понадобится вам для загрузки плагинов и тем через сайт администратора WordPress.

doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.

Запустите httpd и php73_fpm.

doas rcctl start httpd php73_fpm

Перейдите по URL, который вы использовали в определении вашего сервера. Вы увидите мастер установки WordPress. Для параметра Сервер базы данных замените localhost на 127.0.0.1.

После установки WordPress пришло время настроить постоянные ссылки, чтобы они выглядели более дружественными к SEO. На экране администратора WordPress перейдите к Settings -> Permalinks. Нажмите Custom Structureи введите /posts/%postname%. После внесения этого изменения нажмите Save Changesкнопку. Теперь у вас есть намного приятнее выглядящие ссылки. Например, постоянная ссылка будет выглядеть так:https://example.com/posts/example-blog-post



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше