summaryrefslogtreecommitdiff
path: root/localezcreate
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2001-12-12 19:52:40 +0000
committerJonas Smedegaard <dr@jones.dk>2001-12-12 19:52:40 +0000
commitc81b7f986867db292d62a1757123723b5ef66518 (patch)
treea217cf2f481ab7b3099ef76b519a4cc8e1786096 /localezcreate
Initial revision
Diffstat (limited to 'localezcreate')
-rwxr-xr-xlocalezcreate178
1 files changed, 178 insertions, 0 deletions
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 <dr@jones.dk>
+
+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 <host>.$defaultdomain)"
+ echo " db: MySQL database name"
+ echo " mailuser: User part of mail address (default is <dbuser>)"
+ 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 <uid>"
+ 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 &copy; 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)
+<VirtualHost *>
+ 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
+</VirtualHost>
+<VirtualHost *>
+ 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
+</VirtualHost>
+<VirtualHost *>
+ ServerName www.$fqdn
+ RewriteEngine On
+ RewriteRule / http://$fqdn/ [R]
+</VirtualHost>" > $webcfg
+
+echo "Done!"
+echo "Remember to reload Apache..."