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
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 "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

 

IP Info:
Radicenter 2024