From c81b7f986867db292d62a1757123723b5ef66518 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 12 Dec 2001 19:52:40 +0000 Subject: Initial revision --- localezcreate | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100755 localezcreate (limited to 'localezcreate') diff --git a/localezcreate b/localezcreate new file mode 100755 index 0000000..09c270f --- /dev/null +++ b/localezcreate @@ -0,0 +1,178 @@ +#!/bin/bash +# /usr/local/sbin/localezcreate: create local eZ Publish site +# Written by Jonas Smedegaard + +set -e + +# Defaults +defaultmaildomain=`dnsdomainname` +defaultdomain="ez.$defaultmaildomain" +defaultuid="www-data" + +# Input +dbuser="$1" +host="$2" +fqdn="$3" +db="$4" +mailuser="$5" +maildomain="$6" +uid="$7" +gid="$8" +dbpasswd="$9" +ezpasswd="$10" + +if [ $# \< 2 -o $# \> 8 ]; then + echo "\$#: $#" + echo "Usage: `basename $0` dbuser host [fqdn [db [mailuser [maildomain [ uid [ gid [dbpasswd [ezpasswd]]]]]]]]" + echo + echo " dbuser: MySQL database user" + echo " host: hostname (and only that - no dots!)" + echo " fqdn: Fully qualified domain name (default is .$defaultdomain)" + echo " db: MySQL database name" + echo " mailuser: User part of mail address (default is )" + echo " maildomain: Domain part of mail address (default is $defaultmailname)" + echo " uid: System user id (default is $defaultuid)" + echo " gid: System group id (default is " + echo " dbpasswd: MySQL database password (default is to ask for it)" + echo " ezpasswd: Web password (default is to ask for it)" + + exit 1 +fi + +if [ -f /root/.my.cnf ]; then + dbrootpw=$(grep password /root/.my.cnf | awk -F= '{print $2}' | head -1 | sed 's/^ //g') +else + echo -n "Enter MySQL root password: " + read -s dbrootpw + echo +fi + +pkg="ezpublish" +#src="/usr/local/src/$pkg/ezpublish_2_2_beta_1.tar.gz" +srcdir="/usr/share/ezpublish" +sqldir="$srcdir/sql" +webdir="$srcdir/lib" +tarballs="data install www" +sqlfile="publish_mysql.sql" +sqlfile2="data_mysql.sql" + +[ "x$uid" == "x" ] && uid="$defaultuid" +gid="$uid" +[ "x$fqdn" == "x" ] && fqdn="$host.$defaultdomain" +[ "x$db" == "x" ] && db="ez_2_2_$host" +[ "x$mailuser" == "x" ] && mailuser="$uid" +[ "x$maildomain" == "x" ] && maildomain="$defaultmaildomain" +if [ "x$dbpasswd" == "x" ]; then + echo -n "Enter MySQL password for $dbuser: " + read -s dbpasswd + echo +fi +[ "x$ezpasswd" == "x" ] && ezpasswd="$dbpasswd" +home=`getent passwd $uid | awk -F: '{print $6}';` +basedir="$home/web_$fqdn" +adminhost="admin.$fqdn" +adminbasedir="$basedir/admin" +webcfg="/etc/apache/vhosts/$fqdn" + +#TODO: Make sure $basedir, $db, $dbuser and $webcfg doesn't exist + +if [ "$(basename $0)" = "${pkg}betarecreate" ]; then + mysqladmin -uroot -p$dbrootpw drop $db + rm -rf $basedir +fi + +echo "Creating database $db" +mysqladmin -uroot -p$dbrootpw create $db +echo "GRANT SELECT,INSERT,UPDATE,DELETE ON $db.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpasswd';" | mysql -uroot -p$dbrootpw + +echo "Copying initial files to $basedir" +su $uid -c "cp -a $webdir $basedir" + +echo "Adding initial data to database" +#dbstring="INSERT INTO eZUser_User VALUES (1,'$dbuser',password('$ezpasswd'),'$dbuser@$maildomain','admin','user','false','',0,0);" +#cat $sqldir/$sqlfile | sed "s/^INSERT INTO eZUser_User VALUES.*\$/$dbstring/" | mysql -uroot -p$dbrootpw $db +#cat $sqldir/$sqlfile | sed "s/'0c947f956f7aa781','postmaster@yourdomain'/password('$ezpasswd'),'$dbuser@$maildomain'/" | mysql -uroot -p$dbrootpw $db +cat $sqldir/$sqlfile | mysql -uroot -p$dbrootpw $db +#cat $basedir/sql/publish.sql | sed -e "s/^INSERT INTO eZUser_User VALUES.*\$/$dbstring/" -e 's/ PACK_KEYS=1//' | mysql -uroot -p$dbrootpw $db +#su $uid -c "zcat $basedir/data.tar.gz | tar -xv -C $basedir" + +echo -n "Unpacking tarballs:" +su $uid -c " + for tarball in $tarballs; do + echo -n \" \$tarball\" + tar -xz -C $basedir -f $srcdir/\$tarball.tar.gz + done + echo +" + +echo "Adding demo data to database" +#su - $uid -c "mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2" +mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2 + +echo "Configuring website" +su $uid -c " + cd $basedir + $srcdir/bin/modfix.sh >/dev/null + $srcdir/bin/clearcache.sh >/dev/null + mkdir -p override + echo \"[site] +SiteURL=$fqdn +AdminSiteURL=admin.$fqdn +UserSiteURL=$fqdn +SiteTitle=$host eZ site +Keywords=$host $maildomain +SiteAuthor=someone at $maildomain +SiteCopyright=someone © 2001 +SiteDescription=a web application suite +SiteKeywords=Content Management System, CMS, e-commerce +Database=$db +User=$dbuser +Password=$dbpasswd + +[eZUserMain] +DefaultCountry=58 + +[eZTradeMain] +OrderSenderEmail=$mailuser@$maildomain +OrderReceiverEmail=$mailuser@$maildomain +mailToAdmin=$mailuser@$maildomain +ForceSSL=disabled +ApacheUser=UserApacheRunsAs + +[eZForumMain] +ReplyAddress=$mailuser@$maildomain +\" > override/site.ini.append +" + +echo "Configuring Apache" +echo "# Generated for $pkg by $(basename $0) + + ServerName $fqdn + ServerAdmin $mailuser@$maildomain + DocumentRoot $basedir + user $uid + group $gid + php_flag magic_quotes_gpc off + RewriteEngine On + RewriteRule ^/stats/store/(.*).gif\$ $basedir/ezstats/user/storestats.php [S=2] + RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)\$ $basedir/ezfilemanager/files/\$1 [T="application/oct-stream",S=1] + RewriteRule !\.(gif|css|jpg|png)\$ $basedir/index.php + + + ServerName $adminhost + ServerAdmin $mailuser@$maildomain + DocumentRoot $basedir + user $uid + group $gid + php_flag magic_quotes_gpc off + RewriteEngine On + RewriteRule !\.(gif|css|jpg|png)\$ $basedir/index_admin.php + + + ServerName www.$fqdn + RewriteEngine On + RewriteRule / http://$fqdn/ [R] +" > $webcfg + +echo "Done!" +echo "Remember to reload Apache..." -- cgit v1.2.3