Сегодня я покажу вам как можно очень просто установить последнюю версию WordPress задействовав простенький Bash-скриптик, который сделает за нас всю работу.
Установка WordPress 5 последняя версия
Я много раз устанавливал WordPress и для этого заходил на сайт https://ru.wordpress.org в поисках последней версии. Далее все всегда шло по намеченному маршруту. Я либо скачивал архив и заливал его через FTP, либо брал ссылку и на сервере выполнял команду типа
wget https://ru.wordpress.org/wordpress-5.0.3-ru_RU.tar.gz
Но теперь я понял, что это не самый лучший вариант и необходимо сделать более быструю загрузку и распаковку WordPress. С этой мыслей я нашел официальную ссылку на последнюю версию WordPress (latest version of WordPress). Она оказалась весьма логичной
http://wordpress.org/latest.tar.gz
Bash скрипт установки WordPress
И теперь настала пора набросать bash-скрипт выполняющий следующие действия:
- Скачать архив содержащий последнюю версию
- Распаковать его
- Почистить за собой удалив скачанный архив
- Переименовать wp-config-sample.php в wp-config.php
wget http://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
rm latest.tar.gz
cd wordpress
mv wp-config-sample.php wp-config.php
Остается только заменить данные для подключения к базе и сгенерировать ключи по ссылке
https://api.wordpress.org/secret-key/1.1/salt/
Задача не сложная, так что возьмем следующий Bash-скрипт для получения salt в конфиг WordPress
SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
STRING='put your unique phrase here'
printf '%s\n' "g/$STRING/d" a "$SALT" . w | ed -s wp-config.php
Можно было бы сделать немного по другому, например не переименовывать файл конфига, а использовать его для генерации нового с получением salt. Получилось бы вот такое
grep -A 1 -B 50 'since 2.6.0' wp-config-sample.php > wp-config.php
wget -O - https://api.wordpress.org/secret-key/1.1/salt/ >> wp-config.php
grep -A 50 -B 3 'Table prefix' wp-config-sample.php >> wp-config.php
Выбирайте любой вариант. Я остановлюсь на первом.
Далее потребуется заменить параметры подключения к базе. Для меня привычна следующая структура. По такому принципу я обычно создавал новые конфиги для nginx
cat wp-config.php | sed 's/old_string/new_string/g' > wp-config.php
Если мы будем использовать параметры, то вполне возможен такой вариант:
- Меняем имя базы
cat wp-config.php | sed 's/database_name_here/$2/g' > wp-config.php
- Меняем имя пользователя базы
sed -i "s/username_here/$3/g" "wp-config.php"
- Генерируем пароль для пользователя базы
PASSWDDB=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
Что касается создания базы и пользователя для нее
USER_DB=$3
MAINDB=$2
echo "Please enter root user MySQL password!"
read rootpasswd
mysql -uroot -p${rootpasswd} -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
mysql -uroot -p${rootpasswd} -e "CREATE USER ${USER_DB}@localhost IDENTIFIED BY '${PASSWDDB}';"
mysql -uroot -p${rootpasswd} -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${USER_DB}'@'localhost';"
mysql -uroot -p${rootpasswd} -e "FLUSH PRIVILEGES;"
Остальные элементы автоматизации добавлю позже. Полный скрипт можно посмотреть на GitHub
https://github.com/ZakharovAndrew/Bash-WordPress-Install