Aug 112017
 

100x58_1Mitt intresse för PostgreSQL (PSQL) beror på att jag skapar en plattform som ska ha stöd för de mest kända databaserna, PostgreSQL är en av dem. När jag programmerar i övrigt så använder jag aldrig PSQL för den har paradoxalt nog för många finesser som du tvingas ta ställning till när du egentligen bara vill skapa en databas men en tabell och några index. PSQL skulle nog bli mer populär om den kom i en enklare version där bra-nog är ledord.

I min plattform kommer du enkelt att kunna använda bland annat PostgreSQL, men det kräver att den är installerad och fungerar. Här berättar jag hur du kommer igång på Ubuntu 17.04

Allmänt om PSQL
Hemsida: https://www.postgresql.orgWikipedia: https://en.wikipedia.org/wiki/PostgreSQL

Continue reading »

Flera domännamn på samma webserver

 LAMP, Operativsystem, PHP, Ubuntu, Webbutveckling  Kommentarer inaktiverade för Flera domännamn på samma webserver
Jun 022017
 

Intetsägande bild till den här artikelnHär kan du som utvecklare i LAMP (Linux, Apache, MySQL, PHP) se hur man sätter upp vhosts.
vhost används när du vill koppla flera domänadresser till en och samma server som bara har en IP adress.

Till exempel kanske du vill ha www.exempel1.com till katalogen /var/www/www.exempel1.com
och www.exempel2.com till /var/www/www.exempel2.com

Jag har tidigare skrivit om hur du sätter upp vhost i MacOS. Det är exakt samma princip i Ubuntu, bara lite andra filnamn.

Continue reading »

Ubuntu 16.04 LTS – kan inte logga in

 Operativsystem, Ubuntu  Kommentarer inaktiverade för Ubuntu 16.04 LTS – kan inte logga in
Nov 062016
 

tux-gunslingerIdag gick det inte att logga in. Det blev svart och jag kom tillbaka till inloggningsrutan.

Jag har inte oceaner av tid och en sådan här sak kommer alltid olägligt, men behåll alltid lugnet och jobba metodiskt.

Läs den här texten i sin helhet innan du börjar.

Continue reading »

Mäta CPU belastning från PHP

 Bash, Nyheter, Operativsystem, PHP, Ubuntu, Webbutveckling  Kommentarer inaktiverade för Mäta CPU belastning från PHP
Sep 272014
 

När man kör en webserver med många besökare är det intressant att veta hur jobbigt servern har det just nu. Med den informationen kan du välja att inte starta en mindre viktig uppgift just nu. Du kanske beslutar att visa 20 produkter för kunden istället för 50. Du kanske väljer att låta livslängden på cachat material utökas en aning. Om ditt fokus är att serva kunder kanske du väljer att serva de som har en produkt i kundvagnen och neka de som inte har det tills servern är lugnare.

Syftet är att dina besökare ska få ett smidigt besök på din webbplats.

Medelbelastningen
I Linux och unix kan du få ut cpu belastningen med kommandot uptime.
06:50:24 up 9 min,  2 users,  load average: 0,36, 0,23, 0,12

Siffrorna är medelvärdet hur lastade dina CPUer är de gångna 1, 5, 15 minutrarna.

Om du hade haft en CPU-kärna och värdet låg på 1,0 så skulle kärnan vara fullt lastad. 0,0 så gjorde den ingenting. Om det är över 1,0 så finns det saker i kö.

Jag har 8 kärnor i min dator. När värdet kommer upp i 8,0 så är alla åtta kärnorna fullt belastade men de hinner utföra jobbet, inget ligger i kö.

Du kan läsa mer om CPU belastning här: understanding load averages

Antal kärnor
Hur kan vi få ut en siffra på antalet kärnor du har i din dator?
Du kan få en mängd information om din CPU om du kör: more /proc/cpuinfo
Och för att få ut antalet kärnor kan du köra:
grep -P ‘^physical id’ /proc/cpuinfo|wc -l

Procent
Det vore ganska bekvämt att få ut en generell siffra i procent för medelbelastningen den senaste minuten.

kapaDecimaler(0,36 / antalKärnor * 100)
Med mina 8 kärnor skulle jag få 4%

Inblick med htop
Du kan få en inblick i hur varje kärna jobbar genom att köra kommandot htop.
I Ubuntu kan du installera det med: sudo apt-get install htop
Här kan du se hur många CPUer du har, hur lastade de är och vilka processer som körs.

Stressa datorn med Stress
Om du vill stressa dina cpu kärnor kan du köra kommandot: stress.
Den installeras i Ubuntu med: sudo apt-get install stress
stress -c 8 -t120
Kommandot ovan sätter alla mina kärnor att arbeta maximalt i 120 sekunder.
Du kan se i htop att allt ligger på 100%. man skulle kunna tro att datorn då inte kan göra annat men det kan den. Det är kösystemet som gör detta. Stress kan inte ta all kraft, andra processer i kön kommer att köras ändå.

Du kan till och med köra:
stress -c 20 -t120
Det enda som händer är att kärnorna blir maximalt belastade och att resten av jobbet hamnar i kö.
Du kan se i kommandot uptime att belastningen efter en minut närmar sig 20 men din dator fungerar fortfarande.

Mäta CPU belastning från PHP
I PHP finns kommandot sys_getloadavg(). Den ger dig samma värden som uptime, men i en array.

Om vi ska få ut ett procentvärde behöver vi veta antalet kärnor i datorn. Tyvärr har inte PHP något bibliotek eller kommando för att ta reda på detta. Men du kan använda en annan metod som du redan känner till.

Här kommer ett färdigt exempel du kan använda i en PHP-fil.

class cpu {
    public function getLoadPercent() {
        $cores = $this->getCoreCount();
        $loadAvg = sys_getloadavg();
        $load = (int)($loadAvg[0] / $cores * 100);
        return $load;
    }

    public function getCoreCount() {
        static $cores = 0;
        if ($cores > 0) {
            return $cores;
        }
        $cmd = array(
            'FreeBSD' => "sysctl -a | grep 'hw.ncpu' | cut -d ':' -f2",
            'Linux' => "grep -P '^physical id' /proc/cpuinfo|wc -l",
            'Darwin' => "sysctl -n hw.logicalcpu"
        );
        $cores = (int)trim(shell_exec($cmd[PHP_OS]));
        if (!($cores > 0)) {
            $cores = 1;
        }
        return $cores;
    }
}
$cpu = new cpu();
$serverLoadPercent = $cpu->getLoadPercent();

Surfar du till filen kanske det ser ut så här:

average load the last minute:1%
cores:8

array (size=3)
  0 => float 0.15
  1 => float 0.83
  2 => float 0.66

Exemplet fungerar enbart på unix/linux/MacOS servrar. Det fungerar inte på Windows.
Jag har testat detta på Loopia (2014-09-30), där använder de FreeBSD.

Cerifiera sig som Linux administratör

 Nyheter, Operativsystem, Ubuntu  Kommentarer inaktiverade för Cerifiera sig som Linux administratör
Jul 102014
 

Det går att certifiera sig som Linuxadministratör. Då har du ett bevis på att du kan området.
Även om du kanske inte certifierar dig har du ändå nytta av grundläggande Linuxkunskaper.
Läs mer på Wikipedia om dessa certifieringar.

Certifieringarna har skapats och administreras av LPI.
Här kan du köpa studiematerial och länkar till gratis studiematerial.

Adlibris säljer också studiematerial för LPI testerna.

IBM har en stor sektion om att studera till Linuxadministratör. Här finns studiematerial.

Rent allmänt finns det mycket nyttigt att studera om Linux hos Begin Linux.

Ubuntu 13.10 och inbäddad Spotify

 Operativsystem, Program, Ubuntu, Webbutveckling  Kommentarer inaktiverade för Ubuntu 13.10 och inbäddad Spotify
Mar 092014
 

Du kan bädda in en låt från Spotify på din hemsida.
Dessvärre måste den som lyssnar ha Spotify klienten installerad och fungerandes.

Läs mer på Spotifys hemsida om att bädda in låtar,
och om att installera Ubuntu Spotify klienten.

Exempel:

<iframe id="1221_object" src="https://embed.spotify.com/?uri=spotify:track:4bz7uB4edifWKJXSDxwHcs" name="1221_object" width="320" height="80" frameborder="0"></iframe>

På Ubuntu finns ytterligare ett hinder, Ubuntu förstår inte kopplingen mellan spotify-låten och att starta spotify för att spela den.

Dessa kodrader fixade kopplingen för mig i Ubuntu 13.10 med Spotify klienten.

 gconftool-2 -t string -s /desktop/gnome/url-handlers/spotify/command  "spotify -uri %s"
 gconftool-2 -t bool -s /desktop/gnome/url-handlers/spotify/needs_terminal false
 gconftool-2 -t bool -s /desktop/gnome/url-handlers/spotify/enabled true

Starta om din webläsare (Firefox) och kom tillbaka hit. Nu ska du kunna spela låten här uppe.
Nu fungerar det i Firefox. Jag testade inte innan men nu fungerar det i Chrome. Däremot fungerar det inte i Opera.

2015-01-29 Jag kör inte exemplet ovan längre, iframe till spotify gav min sida även tre trackers. Det vill jag absolut inte ha.
Så var försiktiga med externa tjänster som använder lokala iframe eller länkar in javascript.

UEFI och Elf Magic

 Operativsystem, Program, Ubuntu  Kommentarer inaktiverade för UEFI och Elf Magic
Okt 052012
 

Har skaffat en modern dator med EFI-funktioner på moderkortet.
Har kört Ubuntu 11.04 med Gnome2 men den versionen kommer snart inte att stödjas.
Funderade istället på Linux Mint 13 Maya med Mate (Gnome 2), det visade sig bli en lång resa.

Continue reading »

Förenkla versionshanteringen

 Bash, Ubuntu  Kommentarer inaktiverade för Förenkla versionshanteringen
Sep 142012
 

Jag använder en versionshanterare som heter Mercurial. Den är lätt att använda när man lärt sig kommandona. Men inget är så lätt att det inte kan bli ännu lättare.

Här är ett script jag använder för att skicka saker till mitt centrala repository.

Continue reading »