-
-
Save bgallagh3r/2853221 to your computer and use it in GitHub Desktop.
#!/bin/bash -e | |
clear | |
echo "============================================" | |
echo "WordPress Install Script" | |
echo "============================================" | |
echo "Database Name: " | |
read -e dbname | |
echo "Database User: " | |
read -e dbuser | |
echo "Database Password: " | |
read -s dbpass | |
echo "run install? (y/n)" | |
read -e run | |
if [ "$run" == n ] ; then | |
exit | |
else | |
echo "============================================" | |
echo "A robot is now installing WordPress for you." | |
echo "============================================" | |
#download wordpress | |
curl -O https://wordpress.org/latest.tar.gz | |
#unzip wordpress | |
tar -zxvf latest.tar.gz | |
#change dir to wordpress | |
cd wordpress | |
#copy file to parent dir | |
cp -rf . .. | |
#move back to parent dir | |
cd .. | |
#remove files from wordpress folder | |
rm -R wordpress | |
#create wp config | |
cp wp-config-sample.php wp-config.php | |
#set database details with perl find and replace | |
perl -pi -e "s/database_name_here/$dbname/g" wp-config.php | |
perl -pi -e "s/username_here/$dbuser/g" wp-config.php | |
perl -pi -e "s/password_here/$dbpass/g" wp-config.php | |
#set WP salts | |
perl -i -pe' | |
BEGIN { | |
@chars = ("a" .. "z", "A" .. "Z", 0 .. 9); | |
push @chars, split //, "!@#$%^&*()-_ []{}<>~\`+=,.;:/?|"; | |
sub salt { join "", map $chars[ rand @chars ], 1 .. 64 } | |
} | |
s/put your unique phrase here/salt()/ge | |
' wp-config.php | |
#create uploads folder and set permissions | |
mkdir wp-content/uploads | |
chmod 775 wp-content/uploads | |
echo "Cleaning..." | |
#remove zip file | |
rm latest.tar.gz | |
#remove bash script | |
rm wp.sh | |
echo "=========================" | |
echo "Installation is complete." | |
echo "=========================" | |
fi |
hi,
i would like to use your bash shell script above, please, if that would be o.k., to run a wordpress install during a Vagrant/PuPHPet script of installing a VM on an AWS/EC2 server?
however, i do have a question, and please pardon my shell script ignorance here — i all ready know the db name, user name & password, have that all set-up, and Vagrant/PuPHPet will install the correct versions of PHP & MySQL for me. so i would like to just have the db, user name & and password in the script without any of the echo & read requests, and just have it do the install. so to do that, would i, instead of running...
...
echo "Database Name: "
read -e dbname
...
...etc., would i do it as variables like this —
...
$dbname = my_mysql_wordpress_db_name
...
...etc.? would that be how to do it?
or would i just delete all the echo & read stuff and put it somewhere in these statements —
#set database details with perl find and replace
perl -pi -e "s/database_name_here/[my_mysql_wordpress_db_name]/g" wp-config.php
perl -pi -e "s/username_here/[my_mysql_wordpress_db_user]/g" wp-config.php
perl -pi -e "s/password_here/[my_mysql_wordpress_db_password]/g" wp-config.php
if you could please advise on this, i would appreciate it. thank you in advance.
best,
— faddah wolf
portland, oregon, u.s.a.
https://github.com/faddah
@faddah I have no issue with you using this, as this is a script I found and altered to suit my needs.
@faddah sorry I didn't see your comment until now... weird I wasn't notified, but you were correct in doing it the last way by just replacing the "s/database_name/" lines with the actual user/password info. I don't really recommend it, it would likely be better to use an env variable or something instead but to each their own.
Hi are you able to create the sql database in this script as well ?
Thanks and congrats works very nice.
@bgallaghr3 - really useful gist, thanks!
@brunogui81 - that's exactly what I wanted in too so added it in my fork https://gist.github.com/emirpprime/37ef1f355ec5a7ecbb8f
You'll probably need to modify it for your use (and that wasn't the only change), but it should get you going.
This is a fantastic script. One oddity I've noticed:
It seems like the password field being written to wp-config.php is stripping out meta characters. So if I enter a password that looks like: wordpr355u$3r, the dollar sign and the character following it are stripped out becoming:
wordpr355ur
I've tried something like:
perl -pi -e "s/password_here/\\Q${dbpass}/g" wp-config.php
But that doesn't solve the issue, and my Perl isn't very good. Any thoughts?
I've been looking for such.. need to try it out
This script builds a VM: https://github.com/enoch85/wordpress-vm
Here is another version with clear installation from scratch.
If you have just clean server on Debian or Ubuntu - than this script will be useful for you :)
It helps to create user, group, install and configure Apache, MySQL, firewall, latest version of WordPress, some popular plugins and some other stuff.
https://github.com/sm0k3net/Useful-Scripts/blob/master/wordpress.sh
Hello, first I want to thanks for this script!
However, how to deal with password that contain special character?
e.g. when I type "P@$$word" at prompt, then it generate wp-config that contain:
/** MySQL database password */
define('DB_PASSWORD', 'p');
Great script thank you
Mint script, thanks.
hi, i want install wordpress after user creat acount in whmcs ? is posible
dbf name, and user and password is not important, just install wordpress account with username, password same whmcs username and password , and email username and pasword wordpress email for user account whmcs .
thank you
اه
Hi, another updated version. This one where can create the database and asks to use if it already exists.
https://gist.github.com/FeChagas/54b0cdf354b197dc8e417357d7687e8b
Another installer for Shell perspective: https://github.com/cconversion/wp-installer
Inspired by, not forked from, this here @bgallagh3r gist.
Here is High Traffic wordpress server configuration bash script
https://github.com/bajpangosh/High-Traffic-wordpress-server-configuration
Wow, this Gist is still at the top of Google for "WordPress installer script" after 5+ years...
A simpler way to generate the salts via OpenSSL (albeit slightly less secure, but less chance of conflict due to symbols):
sed -i "s/put your unique phrase here/$(openssl rand -hex 48)/g"
Please check out SlickStack (any feedback appreciated):
Great gist :). Inspired me to fork it and modify it by adding support for wp-cli
https://gist.github.com/rjekic/2d04423bd167f8e7afd26f8982609378
Hi,
I am new to Perl and I want to change the table prefix as well.
Can you please tell me, how can I change the table prefix?
Worked like a charm and quickest installation of WordPress I have achieved so far. Thanks
Simple, direct, and reliable
Great work. Thanks!
I took this a step further by allowing it to configure my nginx server block. See here:
I wish there was something this simple for bind9 as well haha
Add this to your
~/.bashrc
alias wpinstall="curl -L -o 'wp.sh' https://gist.githubusercontent.com/bgallagh3r/2853221/raw/f3e2f2fa3048bbeb6d35799af068965bc5fd9b26/wp.sh && bash wp.sh"
thensource ~/.bashrc
Go into a dir you want to install WP in and just type wpinstall It's that easy!Update:
I've updated the URL to the gist in this comment, WP changed the latest.tar.gz to use HTTPS (finally) as such trying to grab a copy from http::// broke the scriptUpdate: July 8 2015
I've modified the script to add the salts automatically now thanks to @emirpprime's fork.
the new command should bealias wpinstall="curl -L -o 'wp.sh' https://gist.githubusercontent.com/bgallagh3r/2853221/raw/eb5070c1a4f06dc106847f2e53f1b207f8ec7cad/wp.sh && bash wp.sh"
Note that my script does NOT create the MySQL database for you as I currently use WHM/cPanel on our server to manage databases. If you want that functionality please use @emirpprime's fork here: https://gist.github.com/emirpprime/37ef1f355ec5a7ecbb8f.
I think the link above for @emirpprime's fork is broken. A google search suggest that he has changed his github handle?
I think the new link is: https://gist.github.com/phlbnks/37ef1f355ec5a7ecbb8f
Hi pal! I think you must add a database host URL to the script. Usually, it's localhost in wp-config.php and not work for me.
Add this to your
~/.bashrc
alias wpinstall="curl -L -o 'wp.sh' https://gist.githubusercontent.com/bgallagh3r/2853221/raw/f3e2f2fa3048bbeb6d35799af068965bc5fd9b26/wp.sh && bash wp.sh"
thensource ~/.bashrc
Go into a dir you want to install WP in and just type wpinstall It's that easy!Update:
I've updated the URL to the gist in this comment, WP changed the latest.tar.gz to use HTTPS (finally) as such trying to grab a copy from http::// broke the script
Update: July 8 2015
I've modified the script to add the salts automatically now thanks to @emirpprime's fork.
the new command should be
alias wpinstall="curl -L -o 'wp.sh' https://gist.githubusercontent.com/bgallagh3r/2853221/raw/eb5070c1a4f06dc106847f2e53f1b207f8ec7cad/wp.sh && bash wp.sh"
Note that my script does NOT create the MySQL database for you as I currently use WHM/cPanel on our server to manage databases. If you want that functionality please use @emirpprime's fork here: https://gist.github.com/emirpprime/37ef1f355ec5a7ecbb8f.