SmartDuck

Linux en andere hobbies...

Lighttpd in Arch Linux

nov 152016

Deze instructie laat zien hoe een webserver met PHP en SQLite op Arch Linux te installeren en werkend te krijgen. Voor een productie omgeving is deze basisconfiguratie niet geschikt, wel voor testdoeleinden of ontwikkeling van webapplicaties.

 

Pakketten installeren

Open een terminal en type de volgende commando's om
de lighttpd webserver met PHP en SQLite te installeren:

sudo pacman -S lighttpd
sudo pacman -S php
sudo pacman -S php-gd
sudo pacman -S php-sqlite
sudo pacman -S php-cgi
sudo pacman -S sqlite

Start de service met het volgende commando:

sudo systemctl start lighttpd

Kijk in de browser of de service werkt.
In de adresbalk typt u dan http://localhost.

 

Configuratie voor PHP

Maak een backup van de lighttpd.config in de map /etc/lighttpd/

sudo cp /etc/lighttpd/lighttpd.config /etc/lighttpd/lighttpd.config.backup

Open lighttpd.config en vervang alle inhoud met onderstaande:
(ik gebruik vaak nano als editor of geany)

sudo nano /etc/lighttpd/lighttpd.config

CTRL-O voor opslaan en CTRL-X voor afsluiten.

# Dit is een minimale configuratie om de meest gangbare scripttalen te ondersteunen.
# Kijk voor documentatie in /usr/share/doc/lighttpd
# en op http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
server.port = 80
server.username = "http"
server.groupname = "http"
server.document-root = "/srv/http"
server.errorlog = "/var/log/lighttpd/error.log"
dir-listing.activate = "enable"
index-file.names = ( "index.html" )
mimetype.assign = (
".html" => "text/html",
".txt" => "text/plain",
".css" => "text/css",
".js" => "application/x-javascript",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".gif" => "image/gif",
".png" => "image/png",
"" => "application/octet-stream"
)

server.modules = (
"mod_access",
"mod_accesslog",
"mod_cgi",
)

accesslog.filename = "/var/log/lighttpd/access.log"

cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
".rb" => "/usr/bin/ruby",
".erb" => "/usr/bin/eruby",
".py" => "/usr/bin/python",
".php" => "/usr/bin/php-cgi" )

index-file.names += ( "index.pl", "default.pl",
"index.rb", "default.rb",
"index.erb", "default.erb",
"index.py", "default.py",
"index.php", "default.php" )

Herstart lighttpd met:

sudo systemctl restart lighttpd

Plaats in de web server root (/srv/http/) het volgende bestand index.php met als inhoud:

sudo nano /srv/http/index.php

--
<?php
echo 'Hello world!';
?>
--

Ga naar de browser en ververs de http://localhost pagina en kijk of Hello world! verschijnt.
Als dit zo is werkt PHP scripting.

 

PHP ini aanpassen

Open het bestand /etc/php/php.ini

sudo nano /etc/php/php.ini

Zoek de sectie Dynamic extensions op.
Pas de volgende regels aan om SQLite en GD aan te zetten.

extension=gd.so
extension=pdo_sqlite.so
extension=sqlite3.so

Maak vervolgens in de map /srv/http het bestand info.php aan:

sudo nano /srv/http/info.php
--
<?php
echo phpinfo();
?>
--

Ga naar de browser en vul in de adresbalk het volgende in http://localhost/info.php
Druk op de enter toets.

Een hele lijst met PHP configuratie gegevens verschijnt. Kijk in deze lijst of u GD, PDO en SQLite kunt vinden.
Komen deze voor in de lijst dan zijn alle modules goed geinstalleerd en geconfigureerd.


Juiste user configuratie


Standaard staan de bestanden in de map /srv/http met root rechten. Dit is niet verstandig. Mocht het test/ontwikkel systeem toch worden gehacked dan heeft de hacker direct root rechten.
Door met:

sudo chown -R http:http *

de bestanden onder de http user te brengen vangt u dit af.

 

Trouble shooting

Het kan zijn dat GD ondanks een goede configuratie niet lijkt te werken. Controleer dan of een van de libraries freetype2, libpng of libjpeg zijn geinstalleerd. U kunt deze met pacman (her)installeren:

sudo pacman -S libjpeg
sudo pacman -S libpng
sudo pacman -S freetype2

 

C# ontwikkelaar verrast door Django

okt 152016

Als webontwikkelaar ben ik ooit begonnen te programmeren in PHP3. Na een aantal jaren in PHP te hebben geprogrammeerd heb ik d.m.v. van een baanwissel kennis gemaakt met C#. Tot nu is dit de programmertaal waar ik het meeste kennis van heb. Voor mijn hobby projecten gebruik ik nog steeds PHP. PHP hosting is goedkoop en ontwikkelen op een laptop met Linux Lite gaat wat makkelijker met PHP dan met C#. PHP is veelzijdiger dan veel ontwikkelaars denken, het is ook prima geschikt als scripting taal voor allerlei jobs op een server (php-cli). Het is ok mogelijk desktop applicaties te schrijven met PHP met bibliotheken zoals PHP-GTK of wxPHP.

Afgelopen tijd ben ik gaan kijken naar andere talen. Zo heb ik (Object)Pascal herontdekt en de Lazarus IDE waarmee je wel echt cross-platform applicates kunt ontwikkelen o.a. voor Apple, Windows en GNU/Linux. Object Pascal is net als C# een statische taal waarbij u variabele moet declareren voordat u er een waarde aan toe kunt kennen. Ik snap de theorie er achter, als C# ontwikkelaar doe ik niets anders. Echter de laatste tijd geef ik de voorkeur voor dynamische talen. Dynamische talen zorgen er voor dat ik bezig ben met een idee te realiseren en niet met overhead die veel statische talen met zich meebrengen. Met PHP ben ik dit gewend, echter heb ik nog geen goed framework gezien voor PHP wat ontwikkeling van een site eenvoudiger maakt.

Ik ben dus gaan kijken naar Python en Ruby en heb hier wat online cursussen in gevolgd om een idee te krijgen wat de mogelijkheden zijn. Ik heb met zowel Ruby on Rails een test applicatie gebouwd als met Django, de Python tegenhanger. Beide frameworks zijn gebaseerd op het MVC princiepe zoals ik die gewend ben met C#. Wat me blij maakte is Django, dit framework neemt echt werk uit handen. Het is minder strikt en doet ontzettend veel werk voor me.

Ruby on Rails en C# .NET MVC maken de directory structuur voor u aan. In Visual Studio kunt u een standaard MVC site kiezen aanmaken die een admin login en about pagina voor u aanmaakt. Bij Rails moet u het meeste werk zelf doen. Wat het databases betreft wordt er veel automatisch voor u gedaan. Echter met Django wordt ook het standaard CRUD werk (back-end cms) uit handen genomen. Met een paar eenvoudige commando's maakt u een user/groups admin sectie aan. De models binnen het project worden automatisch herkent en er worden automatisch pagina's in de admin sectie aangemaakt om de data voor de models te beheren. Met het dynamische karakter en eenvoudige syntax van Python en Django wordt het ontwikkelen van websites een stuk sneller.

Dit is ook de reden waarom ik mij me nu voorlopig naast C# en MVC focus op Django.

Firefox alternatieven

sep 272016

Firefox is een fijne browser met vele plugins die het surfen op het web fijner maken. Met o.a. de FireBug plugin maakt het ook een van de beste browsers voor webdevelopers. Waarom dan kijken naar alternatieven? De laatste jaren zijn er veel fratsen in Firefox gebouwd waardoor de browser een langzamer opstart en web pagina's laad. Kwa privacy is er ook wat aan te merken op de laatste versies. Veel mensen weten niet dat Firefox op de achtergrond gegevens naar andere sites stuurt. Type maar eens about:config in de adresbalk waar u normaal gesproken een link naar een website in vult. U krijgt dan eerst een waarschuwing te zien dat u voorzichtig moet zijn met eventuele wijzigingen die u in de config kunt maken. Wanneer u door de lijst met instellingen scrollt ziet u bij de safebrowsing regels vele links die naar Google gaan. Dus met andere woorden wanneer dit aan staat (enabled) gaat elke pagina die u bezoekt ook naar Google ter controle of het geen "foute" website is. Ik vindt deze methode zeer dubieus, ik zie het meer als een verkapt trackingsysteem.

Midori

Dit is een prima alternatief voor de doorsnee gebruiker. Het is een hele snelle browser. Ik heb het niet gemeten maar deze browser start sneller op en de pagina's laden een stuk sneller. De browser heeft ook plugins om advertenties te blocken net als Firefox. Echter heeft Mirdori niet de plugins die het leven van een webdeveloper makelijker maken. Een nadeel van deze browser is dat een enkele website niet goed werkt. Met name met HTML5 video plugins met de Linux versie geeft het nog wel eens wat problemen.

undefined

Midori voor zowel verschillende Linux distributies en Windows kunt u downloaden van http://midori-browser.org/download/choose/


Palemoon

Dit is een prima browser als alternatief. Palemoon heeft dezelfde code basis als de oude Firefox van een paar jaar geleden.
Dit wil niet zeggen dat de techniek verouderd is. De ontwikkelaar houdt de browser modern en slank onder de motorkap waardoor Palemoon vlotter werkt dan Firefox en een stukje veiliger en minder privacy gevoelig. Palemoon ondersteunt voor een groot deel dezelfde plugins als Firefox. Ja ook FireBug voor webdevelopers werkt hier prima.

undefined

Palemoon kunt u downloaden van http://www.palemoon.org/
De windows dowload staat direct op de eerste pagina vermeld.
Alternatieve downloads vindt u in het download menu.
Voor Linux zijn er geen distributie afhankelijke packages beschikbaar.
Palemoon heeft zijn eigen installer.

 

Tor Browser

Een prima alternatief. Deze browser is gebaseerd op de zelfde codebase als Firefox. Hiermee bent u redelijk annoniem op het web. Een nadeel is omdat het internetverkeer via nodes (een omweg) gaat het allemaal wat langzamer gaat. De browser is dan ook niet zo geschikt om films of muziek te streamen of grote bestanden te gaan downloaden.

undefined

Tor website: https://www.torproject.org/projects/torbrowser.html.en

 

Internet Explorer / Edge / Chrome

Ik beschouw deze als onveilig en een inbreuk op uw privacy. Dus geen alternatief.

HornReflex 1.0

aug 302016

Het tooltje om een HornReflex poort mee te berekenen heeft een nieuwe look gekregen. De stijl is nu aangepast in lijn met de andere applicaties die ik heb geschreven.

Deze applicatie is geschreven in Object Pascal in de Lazarus IDE. Het project is open source en dus vrij beschikbaar onder de Apache Licentie 2.0. Versie 1.0 is nu via GitHub al te downloaden https://github.com/SmartDuck/HornReflex/tree/1.0

Een debian package en windows installer zijn nog in de maak.

undefined

De keizer Tetra, Nematobrycon palmeri

mei 222016

Dit prachtige visje is zeer populair bij aquarianen. Dit is niet verwonderlijk, de Keizer Tetra heeft prachtige kleuren, is vreedzaam en een sterke en goede beginnersvis.

Herkomst

West-Colombia

Uiterlijk

Brede zwarte baan van net onder het oog tot de staartvin, van af daar loopt deze uit in verlengde vinstralen. Boven deze zwarte baan zit een prachtig blauw glanzende baan. De rug is verder bruinachtig en de buik wit-beige. De vinnen zijn geel-achtig met een roodbruine tot zwarte zoom. Mannetjes krijgen op leeftijd een hoge rug. Geslachtsonderscheid : Mannetjes zijn gemakkelijk te herkennen aan de verlengde vinstralen van de rugvin en staartvin. Mannetjes hebben blauwe ogen de vrouwtjes meer groen-blauw.

Aquarium inrichting

Het aquarium moet minimaal 100 liter zijn voor 2-3 mannetjes en 5 vrouwtjes (altijd meer vrouwtjes als mannetjes, liefst niet meer als 3 mannen in één aquarium). Breng een dichte beplanting aan, met hier aan daar open stukken. Creëer schaduwplekken met kienhout. Niet vergeten javamos op het hout aan te brengen, dan overleven er altijd wel een paar jonge visjes.

Gezelschap

Als gezelschap zijn andere rustige zalmpjes, kleinere meervallen uit de families Corydoras, Ancistrus, Peckoltia, Rineloricaria. Cichilden zijn minder geschikt, de Keizer Tetra is zelf een terrartoriumvormer en daardoor kunnen in kleine aquaria conflicten ontstaan met een cichilde als buurman. Het gedrag van de tetra komt dan niet tot zijn recht.

Waterkwaliteit

Stelt geen bijzondere eisen aan de watersamenstelling. Een temperatuur tussen de 20 en 27 °C, pH tussen de 6,5 en 7,5 en een GH waarde van 4 tot 12 °DH. Elke week minimaal 10% van het water verversen en eventueel het water licht aanzuren met turf in het filter of eikenextract toevoegen.

Gedrag

Levendige visje, laat allerlei leuk gedrag zien, laat andere vissen in een normaal bevolkt aquarium met rust. De mannetjes houden onder elkaar territorium "gevechten" waarbij zelden verwondingen ontstaan.

Kweek

Gaat in een niet te dicht bevolkt aquarium vanzelf. Javamos is een ideale plant als afzet substraat en schuilgelegenheid voor de jonge visjes. Wilt u meer visjes overhouden gebruik dan een apart kweekbakje zonder bodemsubstraat en een flinke bos javamos op kienhout. Een zelfgemaakte afzetmop kan ook dienstdoen als afzetsubstraat. Zoek een man en 1of 2 vrouwen uit die er het mooist uitzien en zet die in de kweekbak. Voer elke dag goed zodat de visjes verzadigd zijn en niet op zoek gaan naar hun eigen eieren. Controleer elke dag of er eitjes in het mos zitten of in de mop. Ziet u voldoende eitjes liggen dan kunt u de ouders verwijderen. De pas uitgekomen jonge visjes kunnen de eerste dagen met infusie (microscopisch kleine diertjes) worden gevoerd. Dit haalt u uit een ingedraaide vijver of kunt u zelf kweken. Daarna fijngewreven droogvoer en pas uitgekomen artemia. 

Voedsel 

Keizer Tetra's zijn echte alleseters, droogvoer, diepvriesblokjes gecombineerd met levendvoer.

Pseudomugil signifer

apr 242016

Herkomst

Dit fraaie visje komt uit Australië, en vrij wel aan de gehele oostkust tot 20-30 km land inwaarts. Van Cooktown in het noorden tot Ulladulla in het zuidelijke New South Wales. Het is moeilijk om dit visje te beschrijven, omdat de kleur en lengte van de vinnen per vindplaats sterk verschillen. Ook de watercondities verschillen sterk per locatie. Eerst maar een aanwijzing hoe de kleuren kunnen variëren; het lichaam kan van bruingeel tot een zilverig grijsblauw kleuren. Langs de schubbenranden is altijd een grijs/zwarte nettekening te vinden. De staart, aars- en tweederugvin zijn van geel tot oranje gekleurd en voorzien van een zwarte en daarnaast een witte zoom. De eerste rugvin en de gepaarde vinnen zijn zwart met een witte zoom. De eerste rugvin kan bij sommige populaties zo zijn verlengd dat deze tot aan de staartvin reikt. De watercondities kunnen per vindplaats variëren van zoet- tot brakwater. Sommige populaties komen alleen in zoetwater voor. Andere populaties zwemmen geregeld van brakwater gebieden naar zoetwater, en andersom. De meeste nakweek kan zonder problemen in puur zoetwater worden gehouden. Met wildvang moet je voorzichtiger zijn, altijd informeren naar de herkomst! Voor de zoetwater populaties neem je de volgende richtlijnen aan : Temperatuur 20-27°C, pH 7 - 7.8, in de natuur komen extremere condities voor : Temperatuur 15-28°C en de pH 5.5 tot 7.8. Toevoeging van zeezout voor een brakwatermilieu: 0,5 gram per liter. Bij een goede warme zomer kun je het verwarmingselement gewoon uitzetten. P. signifer heeft wel regelmatige waterverversingen nodig om gezond te blijven, 20 % per week is aanbevolen, in een klein aquarium is dit zeker nodig! In een groter aquarium kunt je hier iets van afwijken.

 

Inrichting aquarium

Deze soort houdt van een dichte beplanting, maar vanwege hun levendige karakter moet er toch wel voldoende zwemruimte zijn. De bodem kan uit zand of een grind/zand mengsel. Gebruik fijnbladerige planten zoals Cambomba, Hoornblad en Javamos. Ze zijn in een aquarium vanaf 60 cm goed onder te brengen, en dan in een schooltje van ongeveer 10 stuks. Zorg voor een verhouding mannetjes : vrouwtjes als 1 : 2. Zorg voor schuilplaatsen in de vorm van stenen, kienhout of dichte begroeiing. De mannetjes kunnen ongeïnteresseerde vrouwtjes behoorlijk opjagen. Als de diertjes in zoetwater worden gehouden, zijn Corydoras soorten of grondeltjes heel geschikt als gezelschap. Hele fraaie grondels zijn Tateurndina ocellicauda uit Nieuw Guinea en Chlamydogobius eremius (Woestijn grondel) uit Australië. Voor een brakwater milieu is natuurlijk het bekende Geelbandgrondeltje (Brachygobius nunus) uit Indonesië een leuke afwisseling in het bakje.

 

Voeding

Vooral afwisselend, levende muggenlarven, watervlooien, diepvries blokjes artemia, goed droogvoer. Dan houdt u deze visjes gezond.

 

Kweek

Is gemakkelijk bij regelmatig voeren 1-2 keer per dag met levend voor dan zijn de visjes zo in paar stemming. Bij een goede verzorging kunt u dit dagelijks zien, en ook in de gezelschapsbak! Het mannetje zwemt met schokkerige bewegingen voor het vrouwtje langs, als zij dan op zijn uitnodiging ingaat volgt ze hem naar een door hem uitgezocht plekje in fijn groen. De visjes zwemmen naast elkaar waarbij het mannetje heftig met zijn borstvinnen "slaat". Daarna, in het groen, worden de eitjes afgezet en bevrucht, waarbij de visjes zij aan zij liggen. De eitjes (vrij groot 1,4 - 1,8 mm) worden in de onderste 10 cm van het aquarium in fijnbladerig groen afgezet. Het vrouwtje legt verspreid over een aantal dagen zo'n 10-12 eitjes per dag. P. signifer is een eiereter dus ; zo snel mogelijk de eitjes verwijderen. De eitjes zijn voorzichtig met de vingers uit het groen te halen en kunnen, mits vochtig gehouden !, 10 to 15 min. buiten de bak verblijven. Het verwijderen van de eitjes uit javamos kan een lastig karweitje zijn, de eitjes bezitten een plakkerig draadje en blijven gemakkelijk aan je handen kleven. De eitjes komen uit na twee tot drie weken. Ik breng de eitjes meestal over in een klein bakje van 20 cm met een klein laagje water (2-3 cm). Op deze manier kan ik de ontwikkeling van de eitjes goed in de gaten houden. Zorg er wel voor dat het bakje op een goed verwarmde plek staat, minimaal kamertemperatuur. Om te voorkomen dat eitjes verschimmelen kun het bakje het beste op een wat donkere plaats zetten. Een beetje (2-3 druppels) methyleenblauw kan ook geen kwaad om verschimmelen te voorkomen. De pas uitgekomen jongen zijn prima door de eerste twee weken te brengen met pantoffeldiertjes en hard gekookte eidooier. Daarna breng je de jongen groot met fijn droogvoer (bijvoorbeeld: Tetra Micromin) en levend voer (bijvoorbeeld: artemia). Na 3 maanden zijn de visjes 2-3 cm, na nog eens drie maanden geslachtsrijp. Bij een goede verzorging worden ze ongeveer 4 jaar oud. P. signifer is een taai visje waar u veel plezier aan kunt beleven!

Atom

Licentie: Creative Commons Attribution-ShareAlike 4.0 International License.