-
-
Save choyer/1108591 to your computer and use it in GitHub Desktop.
ExpressionEngine 2.x Upgrade Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Run this at your site root to upgrade EE 2.x | |
# http://expressionengine.com/user_guide/installation/update.html | |
# Inspired by https://gist.github.com/51633 | |
# WORK IN PROGRESS! USE WITH CAUTION! | |
#!/bin/bash | |
CHECK_FILE=index.php | |
echo "\033[44m[====> ExpressionEngine 2.x Upgrade Script by Carl Hoyer <====]\033[0;37m" | |
echo | |
if [ -f $CHECK_FILE ]; | |
then | |
echo "\033[32m$CHECK_FILE exists!\033[0;37m Assuming script run from web root." | |
echo | |
WWW_PATH=. | |
else | |
echo "Enter the FULL path to the WWW ROOT (HTDOCS) folder: \c" | |
read WWW_PATH | |
fi | |
# location of the release | |
echo "Enter the FULL path to the decompressed ExpressionEngine NEW RELEASE folder: \c" | |
read RELEASE_PATH | |
echo "Enter the FULL path of your ExpressionEngine SYSTEM folder: \c" | |
read SYS_PATH | |
echo "Enter the NAME of the ExpressionEngine ADMIN FILE (typically: admin.php): \c" | |
read ADMIN_FILE | |
echo "Enter the FULL path of your ExpressionEngine THEME folder: \c" | |
read THEME_PATH | |
# take site offline | |
echo "Take site offline ... \c" | |
cp "$SYS_PATH"/expressionengine/utilities/offline.html ./index.html | |
echo "\033[32mdone.\033[0;37m" | |
# backup files | |
echo "Backing up files (safety measure) ..." | |
cp "$WWW_PATH"/index.php "$WWW_PATH"/index.php.bak | |
echo " 1) index.php ... \033[32mdone.\033[0;37m" | |
cp "$ADMIN_FILE" ./"$ADMIN_FILE".bak | |
echo " 2) $ADMIN_FILE ... \033[32mdone.\033[0;37m" | |
# backup database | |
read -p "Backup Database? (y/n) " DB_RESP | |
if [ "$DB_RESP" = "y" ]; then | |
echo "Backing up database ... \c" | |
mysqldump -u $DATABASE_USER -h localhost -p $DATABASE_NAME | gzip -9 > $DATABASE_NAME_backup_db.sql.gz | |
echo "\033[32mdone.\033[0;37m" | |
else | |
echo "\033[91m!!! Database backup SKIPPED !!!\033[0;37m" | |
fi | |
echo | |
# update files | |
echo "\033[93mBeginning ExpressionEngine file updates ... \033[0;37m" | |
echo " 1) System folder: backup beginning ... \c" | |
cp -R "$RELEASE_PATH"/system "$SYS_PATH"_new | |
mv "$SYS_PATH" "$SYS_PATH"_old | |
mv "$SYS_PATH"_new "$SYS_PATH" | |
echo "\033[32mdone.\033[0;37m" | |
echo " 2) Themes folder: backup beginning ... \c" | |
cp -R "$RELEASE_PATH"/themes ./themes_new | |
mv "$THEME_PATH" "$THEME_PATH"_old | |
mv "$THEME_PATH"_new "$THEME_PATH" | |
echo "\033[32mdone.\033[0;37m" | |
echo " 3) Root index.php: backup beginning ... \c" | |
cp "$WWW_PATH"/index.php "$WWW_PATH"/index_old.php | |
cp -f "$RELEASE_PATH"/index.php "$WWW_PATH"/index.php | |
echo "\033[32mdone.\033[0;37m" | |
echo " 4) Admin access: backup beginning ... \c" | |
cp "$WWW_PATH"/"$ADMIN_FILE" "$WWW_PATH"/"$ADMIN_FILE"_old.php | |
cp -f "$RELEASE_PATH"/admin.php "$WWW_PATH"/"$ADMIN_FILE" | |
echo "\033[32mdone.\033[0;37m" | |
# Restore 3rd Party folders (system & themes) | |
read -p " 5) Restore previous 3rd-party add-on folders [system & themes]? (y/n) " THIRDPARTY_RESP | |
if [ "$THIRDPARTY_RESP" = "y" ]; then | |
echo " --> Restoring SYSTEM third_party folder ... \c" | |
cp -rf "$SYS_PATH"_old/expressionengine/third_party/* "$SYS_PATH"/expressionengine/third_party | |
echo "\033[32mdone.\033[0;37m" | |
echo " --> Restoring THEMES third_party folder ... \c" | |
cp -rf "$THEME_PATH"_old/third_party/* "$THEME_PATH"/third_party | |
echo "\033[32mdone.\033[0;37m" | |
else | |
echo "\033[91m!!! Database backup SKIPPED !!!\033[0;37m" | |
fi | |
echo | |
echo "Restoring config & database settings ...\c" | |
cp -f "$SYS_PATH"_old/expressionengine/config/config.php "$SYS_PATH"/expressionengine/config/config.php | |
cp -f "$SYS_PATH"_old/expressionengine/config/database.php "$SYS_PATH"/expressionengine/config/database.php | |
echo "\033[32mdone.\033[0;37m" | |
echo | |
#Set recommended file permissions | |
echo "Setting file permissions ... \c" | |
chmod 666 "$SYS_PATH"/expressionengine/config/config.php | |
chmod 666 "$SYS_PATH"/expressionengine/config/database.php | |
chmod 777 "$SYS_PATH"/expressionengine/cache/ | |
echo "\033[32mdone.\033[0;37m" | |
echo | |
echo "\033[32mUpgrade finished!\033[0;37m" | |
echo "\033[96mPlease perform the following post update steps:" | |
echo "\033[96m 1. Restore any modifications (eg. system folder path) to index.php & admin.php." | |
echo "\033[96m 2. Go to http://yoursite.com/$ADMIN_FILE and run the update wizard." | |
echo "\033[96m 3. Remove the $SYS_PATH/installer/ folder." | |
echo "\033[96m 4. Remove the index.html maintenance notice file." | |
echo "\033[96m 5. Remove OLD & BAK files and directories once full testing is completed successfully." | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment