Meie serveritel on kasutuses jagatud Redis (Shared Redis) teenus. Kui soovite oma veebirakenduses Redist kasutada, tuleks vastavalt turvalisus-soovitustele aktiveerida oma kontol lokaalne Redis instanss. Selleks:
1. Ava cPanel halduspaneelis Files -> File Manager
2. Tee topeltklikk kaustal “etc”
3. Vasakult ĂĽlevalt, kliki “+ Folder” nupule ja lisa kaust nimega “redis” (ilma jutumärkideta)
4. Mine kausta redis ja vasakult ĂĽlevalt, kliki “+ Folder” nupule ja lisa kaust nimega “data” (ilma jutumärkideta)
5. Samas kaustas “redis”, lisa uus fail – vasakult ĂĽlevalt, kliki “+ File” nupule ja lisa fail nimega “redis.conf” (ilma jutumärkideta)
6. Tee parem hiireklõps failil “redis.conf” ja kliki “Edit”
7. Lisa faili read:
port 0 unixsocket /home/SINUKASUTAJANIMI/etc/redis/redis.sock unixsocketperm 740 daemonize yes requirepass TURVALINEPAROOL dir /home/SINUKASUTAJANIMI/etc/redis/data/ pidfile /home/SINUKASUTAJANIMI/etc/redis/redis.pid maxmemory 512mb maxmemory-policy allkeys-lru databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb
8. Kontrolli, et “SINUKASUTAJANIMI” oleks failis vahetatud korrektselt kõikides kohtades sinu cPanel halduspaneeli kasutajatunnusega (kujul kas np12345 või r12345)
9. Kontrolli, et “TURVALINEPAROOL” oleks vahetatud sinu poolt valitud turvalise parooli vastu (vastasel juhul on siiski võimalik lihtsalt ligi pääseda redis baasis olevatele andmetele!)
10. Salvesta fail nupuga “Save Changes” ja kliki “Close”
11. Liigu cPanel halduspaneelis kohta: Advanced -> Cron Jobs
12. Lisa uus kanne lehele, valides esimesest dropdownist “Once Per Minute” ja “Command” tekstikasti lisa rida:
/usr/bin/flock -n /home/SINUKASUTAJANIMI/etc/redis/redis.lock /bin/redis-server /home/SINUKASUTAJANIMI/etc/redis/redis.conf >/dev/null 2>&1
13. Kontrolli, et “SINUKASUTAJANIMI” oleks “Command” real vahetatud korrektselt kõikides kohtades sinu cPanel halduspaneeli kasutajatunnusega (kujul kas np12345 või r12345)
14. Kliki nupule “Add New Cron Job” <- antud toiming lisab uue automaatse töö/kontrolli, mis taaskäivitab sinu redis instanssi kui see ei ole mingil põhjusel toimiv!
Palju õnne, sinu Redis instanss aktiveerub ca. 1 minuti jooksul ning on ĂĽhendatav socketi kaudu, mille määrasid conf failis real “unixsocket” ning kasutab parooli, mille määrasid samas failis real “requirepass”
Näidisjuhend kontrollimaks kas sinu Redis instanss toimib korrektselt:
– Mine cPanelis Advanced -> Terminal ja kirjuta käsureale:
redis-cli -s /home/SINUKASUTAJANIMI/etc/redis/redis.sock -a TURVALINEPAROOL PING
(Kus siis “SINUKASUTAJANIMI” ja “TURVALINEPAROOL” on vahetatud vastavalt cPanel kasutajatunnuse ja .conf failis salvestatud turvalise parooliga)
– Kui kõik toimib, kuvab järgmisena redise ekraani vasteks “PONG” – sinu redise redise instanss toimiv ja võimalik sinna päringuid/andmeid saata.
Et kasutada Redist:
– tuleks oma kasutuselevõetavas skriptis/lisaosas ära määrata seadetes TCP ĂĽhenduse asemel Socket
– lisaks seadete all isada sinna socketi asukoht (.conf failis ilma tĂĽhikuta rida mis kujul “/home/SINUKASUTAJANIMI/etc/redis/redis.sock”) ning instanssi parool (see mille määrasid .conf failis “TURVALINEPAROOL” asemele!)
Näidisskript redise kasutamiseks PHP kaudu:
<?php //Connecting to Redis server on localhost $redis = new Redis(); $redis->connect('/home/SINUKASUTAJANIMI/etc/redis/redis.sock'); $redis->auth('TURVALINEPAROOL'); echo "Connection to server successfully"; //check whether server is running or not echo "Server is running: ".$redis->ping(); ?>
Kui haldate mitmeid cPanel kontosi meie teenustes:
Ning soovite aktiveerida automaatsemalt lokaalset Redist per kasutajakonto – tuleks kasutajakonto juurkausta lisada ja käivitada .sh faililaiendiga Bash script:
#!/bin/bash CONFIG_DIR="/home/$USER/etc/redis" CONFIG_FILE="$CONFIG_DIR/redis.conf" SOCK_FILE="$CONFIG_DIR/redis.sock" PID_FILE="$CONFIG_DIR/redis.pid" USER_REDIS_DIR="/home/$USER/etc/redis/data" REDIS_CLI=$(which redis-cli) # Update this path based on your redis-cli location REDIS_SERVER=$(which redis-server) # Update this path based on your redis-server location RCRON_TXT="/usr/bin/flock -n $CONFIG_DIR/redis.lock $REDIS_SERVER $CONFIG_FILE" echo "Step 1: Creating REDIS instance directories" mkdir -pv $CONFIG_DIR chmod 755 $CONFIG_DIR mkdir -pv $USER_REDIS_DIR chmod 755 $USER_REDIS_DIR echo "#################" echo "Step 2: Creating New Redis Config For $USER" touch $CONFIG_FILE chmod 644 $CONFIG_FILE PASSWORD=$(openssl rand -base64 15) if [ -f $config_file ]; then { echo "port 0" echo "unixsocket $SOCK_FILE" echo "unixsocketperm 740" echo "daemonize yes" echo "requirepass $PASSWORD" echo "dir $USER_REDIS_DIR" echo "pidfile $PID_FILE" echo "maxmemory 512mb" echo "maxmemory-policy allkeys-lru" echo "databases 16" echo "save 900 1" echo "save 300 10" echo "save 60 10000" echo "stop-writes-on-bgsave-error yes" echo "rdbcompression yes" echo "rdbchecksum yes" echo "dbfilename dump.rdb" } > $CONFIG_FILE else echo "Failed to create the config file $CONFIG_FILE" >&2 exit 1 fi echo "#################" echo "Step 3: Generating CRONTAB entry for $USER" (crontab -l 2>/dev/null; echo "* * * * * $RCRON_TXT >/dev/null 2>&1") | crontab - echo "#################" echo "Step 4: Everything is done, starting instance by command for $USER" echo $RCRON_TXT # Start Redis server and capture the output output=$($RCRON_TXT) echo "#################" if [ -f $CONFIG_DIR/redis.lock ]; then echo "#################" echo "Config for $USER is:" echo "#################" echo "Socket: $SOCK_FILE" echo "Password: $PASSWORD" echo "#################" else echo "FAILED to start Redis for $USER" exit 1 fi