Vzpon strojev: aplikacije AI v resničnem svetu
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Uvod
Glede na to, da je OpenBSD nagnjen k varnosti, je smiselno, da z njim napajate svoje spletno mesto WordPress, še posebej, ker sta WordPress in PHP ponavadi premikajoča se tarča za skriptne otroke. Ker je OpenBSD-jev httpd zasnovan predvsem za prikaz statičnih strani, so operacije POST rezervirane za procesa fastcgi in slowcgi. Zaradi tega lopov akter težje prekine proces spletnega strežnika in pridobi dostop do vašega strežnika. Operacije POST se prenašajo v proces fastcgi in uporabljajo zunanji tolmač. Ta članek ne bo razpravljal samo o nastavitvi vašega spletnega mesta WordPress, temveč o nekaterih osnovnih tehnikah vzdrževanja in o tem, kako varnostno kopirati in obnoviti vaše spletno mesto in njegovo bazo podatkov. Kjerkoli vidite example.com
kot domeno, jo zamenjajte s svojo domeno.
Začetna konfiguracija
Če tega še niste storili, boste morali ustvariti /etc/doas.conf
datoteko. Ukaz doas je OpenBSD enostavna zamenjava za sudo. Za udobje sem dodal možnost nopass, tako da vam ne bo treba znova vnašati gesla, ko uporabljate doas. Če tega ne želite imeti, preprosto izpustite nopass.
su - echo "permit nopass keepenv :wheel" > /etc/doas.conf
Odvisno od tega, kako je bil OpenBSD zapakiran za uvajanje, včasih upravitelj paketov morda nima konfiguriranega skladišča. Za konfiguracijo uradnega repozitorija OpenBSD moramo ustvariti /etc/installurl
datoteko.
doas su echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl exit
Zdaj moramo dodati PHP in nekaj dodatnih modulov, ki jih bo WordPress potreboval za obdelavo stvari, kot so slike in šifriranje. Ko ste pozvani, izberite namestitev najnovejšega paketa PHP. Ena stvar, ki jo morate storiti, je kopirati datoteke ini modula iz vzorčnega imenika v glavni. To je treba storiti, da omogočite dodatne module 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/.
Pridobite certifikate Let's Encrypt
V današnjem svetu morajo biti spletna mesta prikazana prek SSL-ja ali pa jih iskalniki znižajo. Na srečo ima OpenBSD odlično aplikacijo, imenovano acme-client. Odjemalec acme bo samodejno ustvaril nov zasebni ključ in zahteval novo, popolnoma veljavno potrdilo. Odjemalec acme je odvisen od tega, da ima nameščen spletni strežnik, zato bomo morali ustvariti hitro privzeto definicijo strežnika.
S svojim najljubšim urejevalnikom ustvarite /etc/httpd.conf
. Druge definicije strežnika bomo v datoteko dodali pozneje. Zaenkrat bo to dovolj, da bo acme-client pravilno deloval.
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" } }
S svojim najljubšim urejevalnikom ustvarite tudi /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 }
Zdaj moramo omogočiti in zagnati httpd. Ko to storimo, lahko zaženemo acme-client in počakamo, da pridobi naše novo, novo potrdilo. Ko bomo to naredili, bomo dodali opravilo cron, ki bo samodejno zahtevalo novo vsakih 7 dni, tako da nam ni treba skrbeti za potek.
doas rcctl enable httpd doas rcctl start httpd doas acme-client -v example.com
Zdaj ustvarimo cron opravilo. Dodajte to vrstico pod zadnji vnos. V tem primeru acme-clientu sporočamo, da zahteva novo potrdilo vsako soboto ob 1:00 zjutraj.
doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd
Konfiguriranje HTTPD za WordPress
Zdaj je čas za nastavitev httpd za WordPress. Namesto da bi definicijo našega spletnega mesta postavili neposredno v /etc/httpd.conf
, jo bomo postavili v ločeno datoteko, imenovano /etc/httpd.conf.example.com
in jo vključili v glavno konfiguracijsko datoteko. Na splošno je dobra praksa ločiti oboje, tako da v glavni konfiguracijski datoteki ohranite definicije za celotno spletno mesto, nastavitve, specifične za domeno, pa v drugi.
Dodajte naslednjo vrstico na dno /etc/httpd.conf
datoteke:
include "/etc/httpd.conf.example.com"
Zdaj z uporabo svojega najljubšega urejevalnika ustvarite svoj /etc/httpd.conf.example.com
. Za udobje bomo ustvarili ločene datoteke dnevnika za vašo domeno. Tako boste lažje odpravili morebitne težave z vašim spletnim mestom.
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" } }
Za večjo varnost bomo implementirali dodaten poziv za uporabniško ime in geslo ob prijavi na stran administracije WordPress. Ker otroci s skripti radi večkrat poskušajo nasilno izsiliti prijavo v WordPress, ustvarimo dodatno prijavo na ravni spletnega strežnika. Običajno prejmejo približno 5 ugibanj, preden WordPress vrne napako 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
Pripravite in konfigurirajte PHP in PHP-FPM
Spremeniti moramo php, da lahko vaša namestitev WordPress pošilja e-pošto. WordPress in nekateri vtičniki se zanašajo na zmožnost pošiljanja e-pošte, ki vas obvešča o nadgradnjah, opozorilih in spremembah. Nezmožnost pošiljanja e-pošte lahko pokvari nekatere funkcije WordPressa. Ker httpd deluje v chrooted okolju, moramo php povedati, kako pošilja e-pošto. Poleg tega moramo narediti nekaj prilagoditev zmogljivosti php-fpm.
Poiščite sendmail_path
vrstico /etc/php-7.3.ini
in naredite naslednjo spremembo:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; sendmail_path = sendmail_path = /bin/femail -t -i
Poiščite naslednje vrstice /etc/php-fpm.conf
in jih spremenite na naslednji način:
pm.start_servers = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 6
Naslednji korak je omogočiti in zagnati php-fpm.
doas rcctl enable php73_fpm doas rcctl start php73_fpm
Pripravite in konfigurirajte MariaDB
MariaDB je nadomestna vilica MySQL. Opraviti moramo nekaj začetne konfiguracije in priprave baze podatkov za WordPress.
Preden lahko učinkovito uporabljamo MariaDB, moramo demonu mysql dovoliti, da uporablja več virov kot je privzeto. Če želite to narediti, naredite naslednje spremembe tako, da /etc/login.conf
dodate ta vnos na dnu.
mysqld:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :tc=daemon:
V konfiguracijsko datoteko MariaDB moramo narediti nekaj sprememb, /etc/my.cnf
. Če odjemalec in strežnik mysql komunicirata prek vtičnice domene UNIX namesto TCP, lahko zmanjšate porabo pomnilnika vašega strežnika. Ni vam treba narediti vseh spodaj predlaganih sprememb. Dve pomembni, ki ju je treba spremeniti, sta socket
vrstica in komentiranje bind-address
vrstice. To premakne vtičnico znotraj /var/www
okolja chroot, tako da se lahko WordPress poveže z bazo podatkov. S komentiranjem bind-address
vrstice preprečimo, da bi MariaDB poslušala vrata 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
Zdaj moramo zagnati namestitveno binarno datoteko MariaDB ter omogočiti in zagnati MariaDB. Ta postopek bo nastavil korensko geslo in po želji izpustil testno bazo podatkov. Dobro je, da upoštevate vse predloge v fazi varne namestitve.
doas mysql_install_db doas rcctl enable mysqld doas rcctl start mysqld doas mysql_secure_installation
Ustvarite zbirko podatkov WordPress in uporabnika baze podatkov. Ne pozabite zamenjati <wp_user>
z uporabniškim imenom baze podatkov po vaši izbiri in <password>
s kompleksnim geslom po vaši izbiri.
mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT
Namestite in konfigurirajte WordPress
WordPress že kar nekaj časa nima uradnih vrat OpenBSD, ker precej deluje takoj iz škatle. Prenesite, ekstrahirajte in premaknite namestitveno mapo 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 {} \;
Kopirati moramo /etc/resolv.conf
in /etc/hosts
v imenik, ki ga bomo ustvarili, z imenom /var/www/etc
. To je zato, da lahko WordPress uspešno doseže trg. To boste potrebovali za prenos vtičnikov in tem prek skrbniškega mesta WordPress. Prav tako je pomembno, da vtičnik Jet Pack pravilno deluje.
doas mkdir /var/www/etc doas cp /etc/hosts /var/www/etc/. doas cp /etc/resolv.conf /var/www/etc/.
Od tu brskajte do svojega spletnega mesta WordPress z uporabo https prek URL-ja, ki ste ga navedli v definiciji spletnega strežnika. Če vse deluje pravilno, bi morali videti čarovnika za namestitev WordPressa. Ko pridete do možnosti za določitev strežnika baz podatkov, uporabitelocalhost:/var/run/mysql/mysql.sock
Ko je WordPress nameščen, je čas, da nastavite stalne povezave, da bodo videti bolj prijazne do SEO. Na skrbniškem zaslonu WordPress pojdite na Settings -> Permalinks
. Kliknite na Struktura po meri in vnesite /posts/%postname%
. Ko naredite to spremembo, kliknite gumb Shrani spremembe. Zdaj imate veliko lepše povezave. Na primer, stalna povezava bo videti tako:https://example.com/posts/example-blog-post
Od tu naprej bi morali imeti pripravljeno osnovno spletno mesto. Poskrbite, da boste namestili vtičnike, kot sta Jet Pack in WP-Super Cache. Vtičnik WP-Super Cache pomaga pospešiti vaše spletno mesto s predpomnjenjem spletnih strani in odpravo nenehnih iskanj v bazi podatkov, JetPack pa vam daje nekaj odličnih statistik gledanosti.
Varnostno kopiranje vašega spletnega mesta in baze podatkov WordPress
Samoumevno je, da je varnostno kopiranje vašega spletnega mesta in baze podatkov zelo pomembno. Na srečo je to razmeroma enostavno narediti. Varnostno kopirajte oba v domači imenik, nato pa ju lahko preko scp kopirate na drugo lokacijo. Posnetek lahko ustvarite tudi prek nadzorne plošče Vultr. Dobro je narediti oboje.
cd /var/www/htdocs tar cvfz wordpress.tgz wordpress/ cp wordpress.tgz /home/user mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
Obnovitev vašega spletnega mesta WordPress
Če je vaša baza podatkov poškodovana in je potrebna obnovitev, naredite naslednje:
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
Če ste spremenili datoteko skripta WordPress, ki je nekaj pokvarila, lahko WordPress vedno znova namestite prek skrbniške nadzorne plošče. Poiščite Updates
razdelek in kliknite na povezavo. Poiščite gumb z oznako Re-install Now
. To bo vsaj popravilo, kar je pokvarjeno, vendar mora večina vaše konfiguracije ostati nedotaknjena.
Če je vaša zbirka podatkov v dobrem stanju, vendar ste pomotoma uredili datoteko in stvari pokvarili do te mere, da ne morete priti niti do skrbniške konzole WordPress, naredite naslednje:
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 {} \;
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več