Възходът на машините: Реални приложения на AI
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Въведение
Като се има предвид склонността на OpenBSD към сигурността, има смисъл само да захранвате вашия уебсайт WordPress с него, особено защото WordPress и PHP са склонни да бъдат движещи се цели за деца със скриптове. Тъй като httpd на OpenBSD е предназначен основно за обслужване на статични страници, POST операциите са запазени за процесите fastcgi и slowcgi. Това прави по-трудно за измамник потенциално да наруши процеса на уеб сървъра и да получи достъп до вашия сървър. POST операциите се прехвърлят към процеса на fastcgi и използват външен интерпретатор. Тази статия ще обсъди не само настройката на вашия WordPress сайт, но и някои основни техники за поддръжка и как да архивирате и възстановите вашия сайт и неговата база данни. Където и да видите example.com
като домейн, моля, заменете го с вашия домейн.
Първоначална конфигурация
Ако все още не сте го направили, ще трябва да създадете /etc/doas.conf
файл. Командата doas е лесната замяна на sudo на OpenBSD. За удобство добавих опцията 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/.
Получете сертификати Let's Encrypt
В днешния свят уебсайтовете трябва да се обслужват чрез SSL или да бъдат понижавани от търсачките. За щастие OpenBSD има страхотно приложение, наречено acme-client. acme-клиентът автоматично ще генерира нов частен ключ и ще поиска нов напълно валиден сертификат. acme-клиентът зависи от наличието на уеб сървър, така че ще трябва да създадем бърза дефиниция на сървъра по подразбиране.
С любимия си редактор създайте /etc/httpd.conf
. Ще добавим другите дефиниции на сървъра към файла по-късно. Засега това ще бъде достатъчно, за да може acme-client да функционира правилно.
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-client да поиска новия сертификат в 1:00 сутринта всяка събота.
doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd
Конфигуриране на HTTPD за WordPress
Сега е време да настроите 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 Unauthorized.
doas su cd /var/www/htdocs doas htpasswd htpasswd <user> doas chown www:www htpasswd doas chmod 0640 htpasswd doas rcctl reload httpd
Подгответе и конфигурирайте PHP и PHP-FPM
Трябва да направим промяна в 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
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
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 ви дава някои отлични статистически данни за гледаемостта.
Архивиране на вашия WordPress уебсайт и база данни
От само себе си се разбира, че архивирането на вашия уебсайт и база данни е много важно. За щастие, това е сравнително лесно да се направи. Архивирайте и двете във вашата домашна директория и след това можете да ги копирате чрез 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
Възстановяване на вашия WordPress уебсайт
Ако вашата база данни се повреди и е необходимо възстановяване, изпълнете следното:
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 {} \;
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече