Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
Учитывая склонность OpenBSD к безопасности, имеет смысл использовать для этого ваш сайт WordPress, особенно потому, что WordPress и PHP, как правило, являются движущимися мишенями для детей сценариев. Так как httpd в OpenBSD предназначен главным образом для обслуживания статических страниц, операции POST зарезервированы для процессов fastcgi и slowcgi. Это усложняет мошенническому действующему субъекту возможность потенциально нарушить процесс веб-сервера и получить доступ к вашему серверу. Операции POST передаются процессу fastcgi и используют внешний интерпретатор. В этой статье мы обсудим не только настройку вашего сайта WordPress, но и некоторые основные методы обслуживания, а также способы резервного копирования и восстановления вашего сайта и его базы данных. Везде, где вы видите example.com
домен, замените его своим доменом.
Если вы еще этого не сделали, вам нужно будет создать /etc/doas.conf
файл. Команда doas - это простая замена OpenBSD для sudo. Для удобства я добавил опцию nopass, чтобы вам не пришлось повторно вводить пароль при использовании doas. Если вы предпочитаете не иметь этого, просто опустите nopass.
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
В зависимости от того, как OpenBSD был упакован для развертывания, иногда диспетчер пакетов может не иметь настроенного хранилища. Чтобы настроить официальный репозиторий 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 php-zip pecl73-mcrypt pecl73-imagick wget
doas cp /etc/php-7.3.sample/* /etc/php-7.3/.
В сегодняшнем мире веб-сайты должны обслуживаться через SSL или с помощью поисковых систем. К счастью, в OpenBSD есть отличное приложение acme-client. Клиент acme автоматически сгенерирует новый закрытый ключ и запросит новый полностью действующий сертификат. Клиент acme зависит от наличия веб-сервера, поэтому нам нужно быстро создать определение сервера по умолчанию.
С вашим любимым редактором, создавать /etc/httpd.conf
. Мы добавим другие определения сервера в файл позже. На данный момент этого будет достаточно для правильной работы acme-клиента.
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-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging-v02.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.crt"
sign with letsencrypt
}
Теперь мы должны включить и запустить httpd. Как только мы это сделаем, мы сможем запустить acme-client и ждать, пока он получит наш новый, новый сертификат. После этого мы добавим задание cron для автоматического запроса нового каждые 7 дней, чтобы нам не приходилось беспокоиться об истечении срока действия.
doas rcctl enable httpd
doas rcctl start httpd
doas acme-client -v example.com
Теперь мы создаем работу cron. Добавьте эту строку ниже самой последней записи. В этом случае мы говорим клиенту acme запрашивать новый сертификат в 1:00 утра каждую субботу.
doas crontab -e
0 1 * * 6 acme-client -F example.com && rcctl reload httpd
Теперь пришло время настроить httpd для WordPress. Вместо того, чтобы помещать определение нашего веб-сайта непосредственно в него /etc/httpd.conf
, мы собираемся поместить его в отдельный файл с именем /etc/httpd.conf.example.com
и включить его в основной файл конфигурации. Как правило, рекомендуется разделять их, сохраняя определения для всего сайта в главном файле конфигурации, а настройки для конкретного домена - в другом.
Добавьте следующую строку в конец вашего /etc/httpd.conf
файла:
include "/etc/httpd.conf.example.com"
Теперь, используя ваш любимый редактор, создайте свой /etc/httpd.conf.example.com
. Для удобства мы собираемся создать отдельные файлы журнала для вашего домена. Это облегчает поиск потенциальных проблем с вашим сайтом.
server "example.com" {
listen on egress port 80
alias "www.example.com"
# Automatically redirect to SSL
block return 302 "https://$SERVER_NAME$REQUEST_URI"
log {
access "access-example.com"
error "error-example.com"
}
}
server "example.com" {
listen on egress tls port 443
alias "www.example.com"
root "/htdocs/wordpress"
directory index "index.php"
log {
access "access-example.com"
error "error-example.com"
}
tcp { nodelay, backlog 10 }
tls {
certificate "/etc/ssl/example.com.crt"
key "/etc/ssl/private/example.com.key"
}
hsts {
# max-age value is the number of seconds in 1 year
max-age 31556952
preload
subdomains
}
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
location "/posts/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/page/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/comments/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-json/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-login.php*" {
authenticate "WordPress" with "/htdocs/htpasswd"
fastcgi socket "/run/php-fpm.sock"
}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
Для большей безопасности мы собираемся внедрить дополнительный запрос на ввод имени пользователя и пароля при входе на сайт администрирования WordPress. Поскольку сценаристы любят повторять попытки входа в WordPress, мы создаем дополнительную учетную запись на уровне веб-сервера. Как правило, они получают около 5 догадок, прежде чем WordPress выдаст 401 несанкционированную ошибку.
doas su
cd /var/www/htdocs
doas htpasswd htpasswd <user>
doas chown www:www htpasswd
doas chmod 0640 htpasswd
doas rcctl reload httpd
Мы должны внести изменения в php, чтобы ваша установка WordPress могла отправлять электронные письма. WordPress и некоторые плагины полагаются на возможность отправлять электронные письма, уведомляющие вас об обновлениях, оповещениях и изменениях. Невозможность отправлять электронные письма может нарушить некоторые функции WordPress. Поскольку httpd работает в среде chrooted, мы должны сообщить php, как отправлять электронные письма. Кроме того, мы должны сделать некоторые твики производительности для php-fpm.
Найдите sendmail_path
строку /etc/php-7.3.ini
и внесите следующие изменения:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path =
sendmail_path = /bin/femail -t -i
Найдите следующие строки /etc/php-fpm.conf
и измените их следующим образом:
pm.start_servers = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 6
Следующим шагом является включение и запуск php-fpm.
doas rcctl enable php73_fpm
doas rcctl start php73_fpm
MariaDB - это вставная замена MySQL. Нам нужно выполнить некоторые начальные настройки и подготовить базу данных для WordPress.
Прежде чем мы сможем эффективно использовать MariaDB, нам нужно разрешить демону mysql использовать больше ресурсов, чем по умолчанию. Для этого внесите следующие изменения /etc/login.conf
, добавив эту запись внизу.
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Мы должны внести некоторые изменения в конфигурационный файл MariaDB /etc/my.cnf
. Благодаря тому, что клиент и сервер mysql обмениваются данными через сокет домена UNIX вместо TCP, использование памяти вашего сервера может быть снижено. Вам не нужно вносить все изменения, предложенные ниже. Двумя важными изменениями являются socket
строка и закомментирование bind-address
строки. Это перемещает сокет внутри /var/www
среды chroot, чтобы WordPress мог подключиться к базе данных. Закомментируя bind-address
строку, мы запрещаем MariaDB прослушивать порт TCP.
[client-server]
socket=/var/www/var/run/mysql/mysql.sock
#port=3306
# This will be passed to all MariaDB clients
[client]
#password=my_password
# The MariaDB server
[mysqld]
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0"
#bind-address=127.0.0.1
# Directory where you want to put your data
#data=/var/mysql
# This is the prefix name to be used for all log, error and replication files
#log-basename=mysqld
# Logging
#log-bin=/var/mysql/mariadb-bin
#max_binlog_size=100M
#binlog_format=row
#expire_logs_days = 7
#general-log
#slow_query_log
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 16M
Теперь нам нужно запустить двоичный файл установки MariaDB, включить и запустить MariaDB. Эта процедура установит пароль root и при необходимости удалит тестовую базу данных. Рекомендуется следовать всем советам на этапе безопасной установки.
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
Создайте базу данных WordPress и пользователя базы данных. Не забудьте заменить <wp_user>
имя пользователя базы данных и <password>
сложный пароль по вашему выбору.
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
У WordPress не было официального порта OpenBSD в течение достаточно долгого времени, потому что он в значительной степени работает прямо из коробки. Загрузите, распакуйте и переместите папку установки WordPress.
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/.
doas chown -R www:www /var/www/htdocs/wordpress
doas chmod 0755 /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Мы должны скопировать /etc/resolv.conf
и /etc/hosts
в каталог, который мы собираемся создать, с именем /var/www/etc
. Это так, что WordPress может успешно выйти на рынок. Это понадобится вам для загрузки плагинов и тем через сайт администратора WordPress. Также важно, чтобы плагин Jet Pack работал правильно.
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
Отсюда перейдите на свой веб-сайт WordPress, используя https, по URL-адресу, который вы указали в определении веб-сервера. Если все работает правильно, вы должны увидеть мастер установки WordPress. Когда вы получаете возможность указать сервер базы данных, вы должны использоватьlocalhost:/var/run/mysql/mysql.sock
После установки WordPress пришло время настроить постоянные ссылки, чтобы они выглядели более дружественными к SEO. На экране администратора WordPress перейдите к Settings -> Permalinks
. Нажмите на пользовательскую структуру и введите /posts/%postname%
. После внесения этого изменения нажмите кнопку «Сохранить изменения». Теперь у вас есть намного приятнее выглядящие ссылки. Например, постоянная ссылка будет выглядеть так:https://example.com/posts/example-blog-post
Отсюда у вас должен быть базовый веб-сайт, готовый к работе. Убедитесь, что вы устанавливаете плагины, такие как Jet Pack и WP-Super Cache. Плагин WP-Super Cache помогает ускорить ваш веб-сайт за счет кэширования веб-страниц и устранения постоянных поисков в базе данных, а JetPack предоставляет вам отличную статистику просмотров.
Само собой разумеется, что резервное копирование вашего сайта и базы данных очень важно. К счастью, это довольно легко сделать. Сделайте резервную копию как в свой домашний каталог, а затем вы можете скопировать их через scp в другое место Вы также можете создать снимок через панель управления Vultr. Это хорошая идея, чтобы сделать оба.
cd /var/www/htdocs
tar cvfz wordpress.tgz wordpress/
cp wordpress.tgz /home/user
mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
Если ваша база данных была повреждена и восстановление необходимо, выполните следующие действия:
gunzip wordpress.sql.gz
mysql -u root -p wordpress
DROP USER '<user>'@'localhost';
DROP DATABASE wordpress;
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
mysql -u root -p wordpress < wordpress.sql
Если вы внесли изменения в файл сценария WordPress, который что-то сломал, вы всегда можете переустановить WordPress через панель управления администратора. Найдите Updates
раздел и нажмите на ссылку. Ищите кнопку с надписью Re-install Now
. Это по крайней мере исправит то, что сломано, но большая часть вашей конфигурации должна остаться нетронутой.
Если ваша база данных в хорошем состоянии, но вы случайно отредактировали файл и сломали его до такой степени, что вы даже не можете добраться до консоли администратора WordPress, то выполните следующие действия:
rm /var/www/htdocs/wordpress
cp /home/user/wordpress.tgz /tmp
tar xvfz wordpress.tgz
mv wordpress /var/www/htdocs/.
chown -R www:www /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше