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