The Rise of Machines: Real World Applications of AI
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Introduktion
I betragtning af OpenBSDs forkærlighed for sikkerhed, giver det kun mening at forsyne dit WordPress-websted med det, især fordi WordPress og PHP har en tendens til at være bevægende mål for script-kiddies. Da OpenBSD's httpd primært er designet til at betjene statiske sider, er POST-operationer forbeholdt fastcgi- og slowcgi-processerne. Dette gør det sværere for en useriøs aktør potentielt at bryde webserverens proces og få adgang til din server. POST-operationer føres til fastcgi-processen og bruger en ekstern tolk. Denne artikel vil diskutere ikke kun opsætning af dit WordPress-websted, men nogle grundlæggende vedligeholdelsesteknikker og hvordan du sikkerhedskopierer og gendanner dit websted og dets database. Uanset hvor du ser example.com
som domæne, skal du erstatte det med dit domæne.
Indledende konfiguration
Hvis du ikke allerede har gjort det, skal du oprette en /etc/doas.conf
fil. Doas-kommandoen er OpenBSD's nemme erstatning for sudo. For nemheds skyld har jeg tilføjet nopass-muligheden, så du ikke behøver at indtaste din adgangskode igen, når du bruger doas. Hvis du foretrækker ikke at have dette, skal du blot udelade nopass.
su - echo "permit nopass keepenv :wheel" > /etc/doas.conf
Afhængigt af hvordan OpenBSD blev pakket til udrulning, har pakkehåndteringen nogle gange ikke et lager konfigureret. For at konfigurere det officielle OpenBSD-lager skal vi oprette /etc/installurl
filen.
doas su echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl exit
Nu skal vi tilføje PHP og nogle ekstra moduler, som WordPress skal bruge for at kunne håndtere ting som billeder og kryptering. Når du bliver bedt om det, skal du vælge at installere den nyeste pakke med PHP. En ting du skal gøre er at kopiere modulets ini-filer fra prøvemappen til den primære. Dette skal gøres for at aktivere de ekstra PHP-moduler.
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/.
Få Let's Encrypt-certifikater
I dagens verden skal hjemmesider serveres via SSL eller blive nedprioriteret af søgemaskiner. Heldigvis har OpenBSD en fantastisk applikation kaldet acme-client. Acme-klienten vil automatisk generere en ny privat nøgle og anmode om et nyt fuldt gyldigt certifikat. Acme-klienten afhænger af at have en webserver på plads, så vi bliver nødt til at oprette en hurtig standardserverdefinition.
Med din yndlingseditor skal du oprette /etc/httpd.conf
. Vi tilføjer de andre serverdefinitioner til filen senere. For nu vil dette være nok til at acme-klient fungerer korrekt.
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" } }
Brug også din yndlingseditor til at oprette /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 }
Nu skal vi aktivere og starte httpd. Når vi har gjort dette, kan vi køre acme-client og vente på, at den får vores friske, nye certifikat. Når vi har gjort dette, tilføjer vi et cron-job for automatisk at anmode om et nyt hver 7. dag, så vi ikke behøver at bekymre os om udløb.
doas rcctl enable httpd doas rcctl start httpd doas acme-client -v example.com
Nu skaber vi cron-jobbet. Tilføj denne linje under den allersidste post. I dette tilfælde beder vi acme-client om at anmode om det nye certifikat kl. 01.00 hver lørdag.
doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd
Konfiguration af HTTPD til WordPress
Nu er det tid til at opsætte httpd til WordPress. I stedet for at placere vores hjemmesides definition direkte i /etc/httpd.conf
, vil vi placere den i en separat fil kaldet /etc/httpd.conf.example.com
og inkludere den i hovedkonfigurationsfilen. Det er generelt en god praksis at adskille de to, ved at beholde webstedsdækkende definitioner i din primære konfigurationsfil og domænespecifikke indstillinger i en anden.
Tilføj følgende linje til bunden af din /etc/httpd.conf
fil:
include "/etc/httpd.conf.example.com"
Brug nu din yndlingseditor til at oprette din /etc/httpd.conf.example.com
. For nemheds skyld vil vi oprette separate logfiler til dit domæne. Dette gør det nemmere, når du forsøger at forfølge potentielle problemer med dit websted.
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" } }
For større sikkerhed vil vi implementere en ekstra prompt om et brugernavn og en adgangskode, når du logger ind på WordPress-administrationssiden. Da scriptbørn gerne gentagne gange forsøger at bruteforce WordPresss login, opretter vi et ekstra login på webserverniveau. Typisk får de omkring 5 gæt, før WordPress kaster en 401 Uautoriseret fejl.
doas su cd /var/www/htdocs doas htpasswd htpasswd <user> doas chown www:www htpasswd doas chmod 0640 htpasswd doas rcctl reload httpd
Forbered og konfigurer PHP og PHP-FPM
Vi skal lave en ændring i php, så din WordPress installation kan sende e-mails. WordPress og nogle plugins er afhængige af evnen til at sende e-mails med besked om opgraderinger, advarsler og ændringer. Manglende evne til at sende e-mails kan ødelægge visse funktioner i WordPress. Da httpd kører i chrooted miljø, er vi nødt til at fortælle php, hvordan man sender e-mails. Desuden skal vi lave nogle performance tweeks til php-fpm.
Se efter sendmail_path
linjen ind /etc/php-7.3.ini
og foretag følgende ændring:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; sendmail_path = sendmail_path = /bin/femail -t -i
Se efter følgende linjer /etc/php-fpm.conf
og skift dem som følger:
pm.start_servers = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 6
Det næste trin er at aktivere og starte php-fpm.
doas rcctl enable php73_fpm doas rcctl start php73_fpm
Forbered og konfigurer MariaDB
MariaDB er en drop-in erstatningsgaffel af MySQL. Vi skal lave noget indledende konfigurations- og databaseforberedelsesarbejde til WordPress.
Før vi kan bruge MariaDB effektivt, skal vi tillade mysql-dæmonen at bruge flere ressourcer end standarden. For at gøre dette skal du foretage følgende ændringer /etc/login.conf
ved at tilføje denne post nederst.
mysqld:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :tc=daemon:
Vi er nødt til at foretage nogle ændringer i MariaDB-konfigurationsfilen, /etc/my.cnf
. Ved at lade mysql-klienten og serveren kommunikere via UNIX-domæne-socket i stedet for TCP, kan hukommelsesforbruget på din server holdes lavere. Du behøver ikke at foretage alle de ændringer, der er foreslået nedenfor. De to vigtige at ændre er socket
linjen og at kommentere bind-address
linjen. Dette flytter soklen inde i /var/www
chroot-miljøet, så WordPress kan oprette forbindelse til databasen. Ved at kommentere bind-address
linjen forhindrer vi MariaDB i at lytte på en TCP-port.
[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
Nu skal vi køre MariaDB-installationsbinæren og aktivere og starte MariaDB. Denne procedure vil indstille en root-adgangskode og eventuelt droppe testdatabasen. Det er en god idé at følge alle forslagene i den sikre installationsfase.
doas mysql_install_db doas rcctl enable mysqld doas rcctl start mysqld doas mysql_secure_installation
Opret WordPress-databasen og databasebrugeren. Husk at erstatte <wp_user>
med dit valg af databasebrugernavn og <password>
med en kompleks adgangskode efter eget valg.
mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT
Installer og konfigurer WordPress
WordPress har ikke haft en officiel OpenBSD-port i et stykke tid, fordi det stort set fungerer lige ud af boksen. Download, udpak og flyt WordPress installationsmappen.
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 {} \;
Vi er nødt til at kopiere /etc/resolv.conf
og /etc/hosts
til en mappe, vi skal oprette kaldet /var/www/etc
. Dette er for at WordPress med succes kan nå markedspladsen. Du skal bruge dette for at downloade plugins og temaer via WordPress admin-webstedet. Det er også vigtigt, at Jet Pack-plugin'et fungerer korrekt.
doas mkdir /var/www/etc doas cp /etc/hosts /var/www/etc/. doas cp /etc/resolv.conf /var/www/etc/.
Herfra skal du gå til dit WordPress-websted ved hjælp af https via den URL, du har angivet i webserverdefinitionen. Hvis alt fungerer korrekt, bør du se WordPress installationsguiden. Når du kommer til muligheden for at angive en databaseserver, skal du brugelocalhost:/var/run/mysql/mysql.sock
Når WordPress er blevet installeret, er det tid til at opsætte permalinks, så de ser mere SEO-venlige ud. Gå til WordPress-administratorskærmen Settings -> Permalinks
. Klik på Brugerdefineret struktur og skriv /posts/%postname%
. Når du har foretaget denne ændring, skal du klikke på knappen Gem ændringer. Du har nu meget flottere links. For eksempel vil et permalink se sådan ud:https://example.com/posts/example-blog-post
Herfra bør du have en grundlæggende hjemmeside klar til brug. Sørg for at installere plugins som Jet Pack og WP-Super Cache. WP-Super Cache-plugin'et hjælper med at fremskynde dit websted ved at cache websider og eliminere konstante databaseopslag, og JetPack giver dig nogle fremragende seerstatistikker.
Sikkerhedskopiering af dit WordPress-websted og din database
Det burde sige sig selv, at sikkerhedskopiering af din hjemmeside og database er meget vigtig. Heldigvis er dette en forholdsvis nem ting at gøre. Sikkerhedskopier både til din hjemmemappe, og så kan du kopiere dem via scp til en anden placering. Du kan også oprette et snapshot via Vultr Kontrolpanel. Det er en god idé at gøre begge dele.
cd /var/www/htdocs tar cvfz wordpress.tgz wordpress/ cp wordpress.tgz /home/user mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
Gendannelse af dit WordPress-websted
Hvis din database er blevet beskadiget, og en gendannelse er nødvendig, skal du udføre følgende:
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
Hvis du har lavet en ændring af en WordPress-scriptfil, der har ødelagt noget, kan du altid geninstallere WordPress via admin-kontrolpanelet. Kig efter Updates
afsnittet og klik på linket. Se efter en knap mærket Re-install Now
. Dette vil i det mindste løse det, der er ødelagt, men det meste af din konfiguration bør forblive intakt.
Hvis din database er i god stand, men du ved et uheld har redigeret en fil og ødelagt tingene til det punkt, hvor du ikke engang kan komme til WordPress-administrationskonsollen, så gør følgende:
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 {} \;
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere