Palvelimemme käyttävät Shared Redis palvelua. Jos haluat käyttää Redistä verkkosovelluksessasi, sinun tulee aktivoida tililläsi paikallinen Redis-palvelu tietoturvasuositusten mukaisesti. Tätä varten:
1. Avaa cPanelin hallintapaneelissa Files -> File Manager
2. Kaksoisnapsauta “etc” kansiolle
3. Napsauta vasemmassa yläkulmassa “+ Folder” painiketta ja lisää kansio nimeltä “redis” (ilman lainausmerkkejä).
4. Siirry redis-kansioon ja napsauta vasemmasta yläkulmasta “+ Folder” painiketta ja lisää kansio nimeltä “data” (ilman lainausmerkkejä).
5. Lisää “redis” kansioon uusi tiedosto – napsauta vasemmasta yläkulmasta “+ File” -painiketta ja lisää tiedosto nimeltä “redis.conf” (ilman lainausmerkkejä)
6. Napsauta hiiren kakkospainikkeella “redis.conf” tiedostolle ja napsauta “Edit”
7. Lisää rivit tiedostoon:

port 0
unixsocket /home/YOURUSERNAME/etc/redis/redis.sock
unixsocketperm 740
daemonize yes
requirepass SECUREPASSWORD
dir /home/YOURUSERNAME/etc/redis/data/
pidfile /home/YOURUSERNAME/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. Tarkista, että “YOURUSERNAME” on korvattu oikein kaikissa osissa tiedostossa cPanel-tilisi käyttäjätunnuksella (joko np12345 tai r12345).
9. Tarkista, että “SECUREPASSWORD” on muutettu valitsemaasi suojattuun salasanaan (muuten on edelleen mahdollista päästä helposti käsiksi redis-tietokannan tietoihin!)
10. Tallenna tiedosto “Save Changes” painikkeella ja napsauta “Close”
11. Siirry cPanelissa kohtaan: Advanced -> Cron Jobs
12. Lisää sivulle uusi merkintä valitsemalla ensimmäisestä avattavasta valikosta “Once Per Minute” ja lisäämällä rivin “Command” tekstikenttään:

/usr/bin/flock -n /home/YOURUSERNAME/etc/redis/redis.lock /bin/redis-server /home/YOURUSERNAME/etc/redis/redis.conf > /dev/null 2>&1

13. Tarkista, että “YOURUSERNAME” “Command”-rivillä on korvattu oikein kaikissa paikoissa cPanel-tilisi käyttäjätunnuksella (joko np12345 tai r12345).
14. Napsauta painiketta “Add New Cron Job” <- tämä toiminto lisää uuden automaattisen työn/tarkistuksen, joka käynnistää instanssisi uudelleen, jos se ei jostain syystä toimi!
Onnittelut, Redis-instanssisi aktivoituu noin. 1 minuutin sisällä ja voidaan käyttää liittimen kautta, jonka määritit conf-tiedostossa “unixsocket” rivillä ja käyttää salasanaa, jonka määritit saman tiedoston “requirepass” rivillä

 

Ohjeet tarkistamiseen, toimiiko Redis-instanssi oikein:
– Siirry cPanelissa kohtaan Advanced -> Terminal ja kirjoita komentoriville:

redis-cli -s /home/YOURUSERNAME/etc/redis/redis.sock -a SECUREPASSWORD PING

(Jos “YOURUSERNAME” ja “SECUREPASSWORD” on korvattu cPanel-käyttäjätunnuksella ja suojatulla salasanalla, jotka on tallennettu .conf-tiedostoon, vastaavasti)
– Jos kaikki toimii, seuraavaksi retiisinäytöllä näkyy “PONG” – Redis-instanssisi toimii ja sille on mahdollista lähettää pyyntöjä/dataa.

 

Rediksen käyttäminen:
– määritä Socket TCP-yhteyden sijaan käyttöön otetun komentosarjan/lisäosan asetuksissa
– Syötä asetuksiin lisäksi Socket sijainti (.conf-tiedostossa rivi ilman välilyöntiä muodossa “/home/YOURUSERNAME/etc/redis/redis.sock”) ja liittimen salasana esiintymä (se, jonka määritit .conf-tiedostossa SECUREPASSWORD sanan sijaan!)
– Esimerkkejä:
Advanced cache (wp-options.php)
define('WP_REDIS_SCHEME','unix');
define('WP_REDIS_PATH','/home/YOURUSERNAME/etc/redis/redis.sock');
define('WP_REDIS_DATABASE',2);
define('WP_REDIS_PASSWORD','SECUREPASSWORD');

Powered cache (wp-options.php)
$redis_server = array(
'host' => '/home/YOURUSERNAME/etc/redis/redis.sock',
'port' => null,
'auth' => 'SECUREPASSWORD',
'database' => 2, // Oletuksena kannan numero on 0 (mahdollista käyttää 0-16).
);

W3 Total Cache (W3TC asetusten kautta WP admin sivulta)
Tulisi tarkistaa kaikki Cache osiot ja määritellä “hosts” laatikkoon IP:n tai FQDN tilalle suoraan:
/home/YOURUSERNAME/etc/redis/redis.sock
Ja salasanan kentalle:
SECUREPASSWORD
 

Esimerkkiskripti rediksen käyttämiseen PHP:n kautta:

<?php
//Yhteyden muodostaminen paikallisen Redis-instanssiin
 $redis = new Redis();
 $redis->connect('/home/YOURUSERNAME/etc/redis/redis.sock');
 $redis->auth('SECUREPASSWORD');
 echo "Yhteys palvelimeen onnistui";
 //tarkista, onko palvelin käynnissä vai ei
 echo "Palvelin käynnissä: ".$redis->ping();
?>

 

Jos hallinnoit useita cPanel-tilejä palveluissamme:
Ja haluat aktivoida paikallisen Rediksen automaattisesti per käyttäjätiliä – sinun tulee lisätä seuraava koodi käyttäjätilin juurikansioon ja tallentaa sen Bash-skriptin .sh loppuisella nimellä:

#!/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

 

Radicenter 2024