#!/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 on this host is .$defaultdomain)" echo " db: MySQL database name" echo " mailuser: User part of mail address (default is )" echo " maildomain: Domain part of mail address (default on this host is $defaultmaildomain)" 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="lib 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 " mkdir $basedir 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 Options FollowSymLinks AllowOverride None php_flag magic_quotes_gpc off RewriteEngine On RewriteRule ^/stats/store/(.*).gif\$ $basedir/ezstats/user/storestats.php [S=4] RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)\$ $basedir/ezfilemanager/files/\$1 [T=\"application/oct-stream\",S=3] RewriteRule .*/ezmediacatalogue/catalogue/(.*)\$ $basedir/ezmediacatalogue/catalogue/\$1 [T=\"application/oct-stream\",S=2] RewriteRule ^/xmlrpc.*\$ $basedir/index_xmlrpc.php [S=1] RewriteRule !\.(gif|css|jpg|png|jar)\$ $basedir/index.php ServerName $adminhost ServerAdmin $mailuser@$maildomain DocumentRoot $basedir user $uid group $gid Options FollowSymLinks AllowOverride None php_flag magic_quotes_gpc off RewriteEngine On RewriteRule .*/ezmediacatalogue/catalogue/(.*)\$ $basedir/ezmediacatalogue/catalogue/\$1 [T=\"application/oct-stream\",S=1] RewriteRule !\.(gif|css|jpg|png|jar) $basedir/index_admin.php ServerName www.$fqdn RewriteEngine On RewriteRule / http://$fqdn/ [R] " > $webcfg echo "Done!" echo "Remember to reload Apache..."