Am un script bash care preia informațiile din baza mea de date, pe baza informațiilor pe care le primește creează niște foldere care conțin fișierele WP pe fiecare și apoi efectuează setarea. Scriptul funcționează perfect când îl apelez manual, totuși WP CLI funcționează atunci când este apelat din Cronjob-ul meu ubuntu
Iată scriptul bash:
#!/bin/bash
set -f # dezactivează globbing
IFS=$'\n' # setați separatorul de câmpuri la NL (doar)
arr=($(sudo mysql -u root -h localhost -e "USE mysite;SELECT * FROM sites WHERE status = 'pending'" | awk 'NR>1'))
pentru i în „${arr[@]}”
do
siteid=$(echo $i | awk '{print $1}')
instance=$(echo $i | awk '{print $2}')
proprietar=$(echo $i | awk '{print $3}')
stare=$(echo $i | awk '{print $4}')
temporaryurl=$(echo $i | awk '{print $5}')
url=$(echo $i | awk '{print $6}')
dbname=$(echo $i | awk '{print $7}')
dbuser=$(echo $i | awk '{print $8}')
dbpass=$(echo $i | awk '{print $9}')
dbprefix=$(echo $i | awk „{printează $10}”)
title=$(echo $i | awk '{print $11}')
admin_user=$(echo $i | awk '{print $12}')
admin_password=$(echo $i | awk '{print $13}')
admin_email=$(echo $i | awk '{print $14}')
sudo mysql -u root -h localhost -e "CREAȚI baza de date $url; Acordați toate privilegiile pe $url.* lui $dbuser@'localhost' identificat prin '$dbpass'"
sudo cp -r /var/www/mysite.com/wordpressfiles /var/www/mysite.com/$url
sudo chown iosef:iosef -R /var/www/mysite.com/$url
sudo find /var/www/mysite.com/$url -type d -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url -type f -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url/wp-content/ -type d -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url/wp-content/ -type f -exec chmod 777 {} \;
cd /var/www/mysite.com/$url && /usr/local/bin/wp core config --dbname=$url --dbuser=$dbuser --dbpass=$dbpass --dbprefix=$dbprefix;
cd /var/www/mysite.com/$url && /usr/local/bin/wp core install --url=www.mysite.com/$url --title=$title --admin_user=$admin_user --admin_password =$admin_parola --admin_email=$admin_email;
Terminat
Și aici este cronjob (este rulat ca root)
* * * * * /bin/bash /home/iosef/createinstanceinfolder.sh >/dev/null 2>&1
Vreo idee?