downshiftertech.eu

Describe your website

Email LinkedIn

/* Title: PhileCMS seadistamine Raspberry Pi mudel B peal koos piCore 6’ga Description: An off-topic article that hopefully makes it to a whole new website Date: 2015/12/07 Category: System administration Keywords: Linux, RaspberryPi, piCore, TinyCoreLinux Template: post_est */

Mõni aeg tagasi sain sõpradelt sünnipäevakingituseks Raspberry Pi mudel B‘i, mis kahjuks kogus tolmu enamus ajast, kuna sellest ei tulnud väga hea meediakeskus välja.

Seega otsustasin migreerida sellesama veebilehe minu praeguselt majutuspakkujalt zone.ee‘lt, mis maksab mulle 6.60 EUR mittemillegi eest.

Mul ei ole väga palju tarvis: see veebileht jookseb PhileCMS‘il ega vaja MySQL‘i või midagi taolist, ning ei kasuta midagi muud peale puhta Markdown‘i.

Ja nii ühel pimedal ja külmal detsembri õhtul otsustasin ma Raspberry Pi‘i proovile panna.

Minu Raspberry Pi‘i omadused:

Protsessor: 700 MHz
Operatiivmälu: 512 MB
Võrk: 10/100 Mbit/s

Mina arvasin, et sellest peab piisama lihtsa Apache‘i serveri jaoks.


piCore‘i seadistamine

Alustame sellest, et läheme Tiny Core veebilehele ja tõmbame alla piCore-6.0-SSH.zip. See versioon annab meile openssh ja mc otse karbist, mis on väga mugav.

Pakime arhiivi lahti ja kirjutame .img faili SD kaardile, mis vedeleb kuskil nurgas (mul oli üks 128 MB suurune kaart ja sellest täiesti piisab).

Kui Teie arvutil jookseb Linux, siis saate seda teha käsuga sudo dd if=*path_to_img* of =/dev/*mmcblk0* && sudo sync

Ärge unustada asendada /dev/mmcblk0 Teie enda SD kaardiga.

Järgige juhiseid, et suurendada teist SD kaardi partitsiooni, kus hakatakse kõik Teie programmid säilitada (esimene partitsioon on kirjutuskaitstud).

Kui soovite mitu terminali akna ühe sessiooni käigus avada, siis peate SD kaardi esimesel partitsioonil asuva cmdline.txt faili multivt rea lõppu lisama.


USB mälupulga ettevalmistamine

Tiny Core toetab ainult ext2, ext3 ja ext4 failisüsteeme, seega Teie tavaline FAT32 mälupulk ei hakka tööle. Mina formattisin minu pulga ext2 failisüsteemi, sest failide ajatemplid oluliselt lühendavad mälupulga eluiga. Otsige internetist kuidas oma mälupulga ext2 failisüsteemi formattida, mina ei hakka sellest kirjutama.

Tekitage mälupulgal /opt kaust, et Tiny Core leiaks selle üles.


Buudime ülesse

Te võite nüüd panna oma SD kaardi ja mälupulga, kus hakkab hiljem /opt olema, Raspberry Pi sisse panna ning seda sisse lülitada.

Süsteem peaks päris kiiresti ülesse bootima ja Teid automaatselt sisse logima kasutajana tc. Peale esimest starti pannakse openssh server käima ning genereeritakse avalikud ja privaatsed võtmed.

Mõned failid, mis on Tiny Core‘i töö jaoks vajalikud:

  • /opt/.filetool.lst
  • /opt/.xfiletool.lst
  • /opt/bootlocal.sh
  • /opt/bootsync.sh
  • /opt/shutdown.sh
  • /opt/tcemirror

Kui need ei ole kuskil püsival andmekandjal salvestatud, hakkab Tiny Core neid automaatselt genereerima iga kord, kui see käivitub.

Mõned neist ei pea ilmtingimata mälupulga /opt kaustas asuma, kuid bootlocal.sh ja .filetool.lst peavad olema mälupulgale kopeeritud. Mina kopeerisin kõik need failid mälupulgale korraga, et asjad oleksid lihtsamad.


SSH võtmete seadistamine

piCore eelinstalleeritud SSH‘ga hakkab uusi SSH võtmeid genereerima iga süsteemi käivitamisel, kui Teil ei ole seadistatud püsiv andmehoidla ja valmis võtmed ei ole sinna kopeeritud.

  1. Automaatselt genereeritud võtmed lähevad /usr/local/etc/ssh kausta. Te võite kävitada mc ja neid kõiki mälupulgale kopeerida. Juhul, kui soovite avada uue terminali, võite vajutada Ctrl + Alt + F2, et avada teise terminali akna (kui soovite näiteks tekitada /opt kausta mälupulgal).

    Mugavuse pärast tekitasin mälupulgal olevasse /opt kausta uue kausta nimega ssh ja kopeerisin kõik võtmed sinna.

  2. Järgimine asi, mida peame tegema, on andma piCore‘le teada, kus SSH võtmed asuma hakkavad. Selleks lisame /opt/bootlocal.sh faili selliseid ridu enne # Start openssh daemon:

		# Symlink keys
		ln -sf /opt/ssh/ssh_host_dsa_key /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_dsa_key.pub /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_ecdsa_key /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_ecdsa_key.pub /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_ed25519_key /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_ed25519_key.pub /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_rsa_key /usr/local/etc/ssh/
		ln -sf /opt/ssh/ssh_host_rsa_key.pub /usr/local/etc/ssh/

See tekitab iga süsteemi käivitamisel symlink’e võtmete failidele ja kirjutab need üle, kui failid on /usr/local/etc/ssh kaustas juba olemas.

Avage fail /opt/.filetool.lst ning kustutage read:

/usr/local/etc/ssh/ssh_host_dsa_key
/usr/local/etc/ssh/ssh_host_dsa_key.pub
/usr/local/etc/ssh/ssh_host_ecdsa_key
/usr/local/etc/ssh/ssh_host_ecdsa_key.pub
/usr/local/etc/ssh/ssh_host_ed25519_key
/usr/local/etc/ssh/ssh_host_ed25519_key.pub
/usr/local/etc/ssh/ssh_host_rsa_key
/usr/local/etc/ssh/ssh_host_ed25519_key.pub

Kasutajate muutmine ja paroolide seadistamine

piCore vaikimisi logib Teid sisse tc kasutaja all ega küsi parooli, kuigi parooliks on ‘piCore’. Te peate seda vahetama, kui süsteem on live‘is, et keegi ei saaks root õigusi. Sisestage sudo passwd tc terminalis ning sisestage uus parool. Kui see on tehtud, kopeerige need failid /opt/etc kausta:

  • /etc/passwd
  • /etc/group
  • /etc/shadow
  • /etc/gshadow

Seda on mugav mc abil teha.

Järgmisena lisage need read /opt/bootlocal.sh faili pärast # ------ Put other system startup commands below this line:

# Load users and passwords
ln -sf /opt/etc/shadow /etc/
ln -sf /opt/etc/gshadow /etc/
ln -sf /opt/etc/passwd /etc/
ln -sf /opt/etc/group /etc/

Siis kustutage need read /opt/.filetool.lst failist:

/etc/shadow
/etc/gshadow
/etc/passwd
/etc/group

Pakettide installimine

Nagu ma juba mainisin, hakkame kasutama PhileCMS‘i, mis vajab PHP 5.4‘i. Ma tahtsin alguses seda lighttpd peal jooksutama, kuid ei soovinud PHP seadistamisega aega raisata.

Heaks uudiseks on see, et piCore‘l on apache2.4-mod-php5 pakett juba olemas, mis lihtsustab meie ülesannet. Meil läheb rsync‘i vaja ka, sellest räägin hiljem. Käivitage käsu tce-load -wi apache2.4-mod-php5 rsync. See tõmbab alla vajalikku paketti ja kõiki teisi vajalikke pakette otse internetist ning installib neid teisele SD kaardi partitsioonile.


Apache‘i seadistamine

Apache konfigureerimisfailid asuvad /usr/local/etc/httpd/ kaustas. *.html failid ise on kaustas /usr/local/apache2/htdocs/

Kopeerige /usr/local/etc/httpd/httpd.conf /opt/apache2/ kausta ning lisage need read /opt/bootlocal.sh faili lõppu:

# Apache
rm /usr/local/apache2/htdocs/index.html
ln -sf /opt/apache2/httpd.conf /usr/local/etc/httpd/
apachectl start

Peate samuti mod_rewrite sisse lülitama, sest see on PhileCMS‘i jaoks vajalik. Avage /opt/apache2/httpd.conf ja kommenteerige välja #LoadModule rewrite_module modules/mod_rewrite.so


PhileCMS‘i konfigureerimine

Tõmmake PhileCMS projekti veebiliehelt alla ja pakkige seda mälupulga /opt/apache/htdocs/ kausta lahti. Veenduge, et config.php failis on krüpteerimisvõti määratud ja et kõigile kaustadele on vajalikud ligipääsuõigused antud. Vastavad juhendid on dokumentatsioonis kirjas. Kaustade ligipääsuõigused on paragrahvis Post Installation->Permissions.


Veebilehe sisu sünkimine mälupulgalt operatiivmällu

PhileCMS‘l on oma sisseehitatud cache-algorütm, kuid see meile ei sobi, kuna kasutame mälupulka, millel on teatud lugemise/kirjutamise tsüklite arv, ja meie soov on, et selle tööiga oleks võimalikult kauem.

Meie parem lahendus on sükima terve htdocs kaust operatiivmällu. See peaks asjad ka natuke kiiremaks muuta.

Selleks, et failid mälupulgalt sünkima panna, peama sellise rea /opt/bootlocal.sh faili lõppu lisama:

rsync -av /opt/apache2/htdocs/phile/ /usr/local/apache2/htdocs >> /usr/local/var/logs/rsync.log 

Te võite seda protseduuri ka cron‘i abil automatiseerida, et see käivituks iga 5, 10 või 15 minuti tagant. Siis uuendatakse veebileht automaatselt kui laete uusi Markdown faile ülesse. Rsync on väga nutikas ning hakkab ainult muudetud faile sünkima, seega on see kiirem, kui kõiki /opt/apache2/htocs/ kaustas asuvaid faile iga kord üle kopeerima.


piCore‘i tuuma käivitamise parameetrite muutmine

Selleks, et piCore‘i tuuma parameetreid seadistama, peame SD kaardi piCore partitsioonil oleva cmdline.txt faili sisu muutma.

Mina lisasin sinna: showapps multivt tz=EET-2EEST opt=UUID="cc39f15a-fe96-47d1-9002-0d3f4ad45174"

Jörgmisena seletan lahti, mida see teeb:

showapps näitab pakette, mida starditakse süsteemi käivitamisel reaalajas. See on eriti kasulik, kui tahate veenduda, et kõik töötab nii, nagu ta peab. Võite seda vabal kustutada kui süsteem on live’s.

multivt annab Teile lisa terminali aknaid. See on jällegi väga mugav süsteemi seadistamise faasis. On väga tõenäoline, et hakate ühes aknas Midnight Commander‘ga faile muuta, teises aga Apache‘i taaskäivitada vms. Kui Teil tekib soov näiteks teisele aknale üle minema, vajutage Ctrl + Alt + F2.

tz=EET-2EEST määrab ajatsooni, kus mina viibin (Eesti). Kui asute mujal, siis kasutage interneti, et õige tsooni üles leida.

opt=UUID=... on minu mälupulga UUID identifikaator. Seal asuvad kõik minu serveri seadistused ja Markdown failid PhileCMS‘i jaoks. Selleks, et leida Teie mälupulga UUID, peate sudo blkid -S UUID */dev/sdb1* käsu käivitama. Asendage /dev/sdb1 oma mälupulgaga.

Tiny Core lubab ka teisi süsteemseid kaustasid välistel andmekandjadel hoida, ehkki mul tekkisid probleemid, kui üritasin /tce asukohaks sedasama mälupulka määrata. Sel juhul saate panna ka mälupulga /dev aadressi sisse (ainult juhul, kui see on ainuke väline seade, sest süsteem ei pruugi iga kord konkreetsele seadmele ühe ja sama aadressi omistada; aadressid jagatakse süsteemi käivitamisel automaatselt elavas järjekorras).


Kokkuvõte

Teil on nüüd olemas CMS mis otsib /opt/apache2/htdocs/content kaustast Markdown faile ning genereerib nendest valmis veebilehte. Minu lehtede genereerimiseks kuulub ca 3 sekundit, mis on päris hea riiulil igavleva Raspberry Pi jaoks.

Teie aga võite nüüd välja mõtlema uusi ja põnevaid viise, kuidas oma Raspberry Pi ja Tiny Core Linux koos tööle panna.