blob: 7e4c2e12281e43f810c3f811ee270e9c86671fc0 (
plain)
- #!/bin/bash
- #
- # /usr/local/sbin/localezcreate
- # Copyright 2001-2002 Jonas Smedegaard <dr@jones.dk>
- #
- # $Id: localezcreate,v 1.14 2002-12-05 04:41:24 jonas Exp $
- #
- # Create local eZ Publish site
- #
- # This script makes use of the Debian package wwwconfig-common if installed
- set -e
- # Defaults
- pkg="ezpublish"
- srcdir="/usr/src/ezpublish"
- sqldir="/usr/share/ezpublish/sql"
- bindir="/usr/share/ezpublish/bin"
- tarballs="lib data tpl www"
- sqlfile="publish_mysql.sql"
- sqlfile2="data_mysql.sql"
- defaultmaildomain=`cat /etc/mailname 2> /dev/null || hostname -d`
- defaultdomain="ez."`hostname -d`
- defaultuid="www-data"
- defaultgid="www-data"
- dbserver="localhost"
- dballow="$dbserver"
- template_tarballs=""
- language_tarballs="en_GB en_GB_org"
- if [ -e /etc/local/localezcreate.conf ]; then
- . /etc/local/localezcreate.conf
- fi
- # Input
- host="$1"
- uid="$2"
- fqdn="$3"
- maildomain="$4"
- dbname="$5"
- dbuser="$6"
- mailuser="$7"
- gid="$8"
- if [ $# \< 1 -o $# \> 8 ]; then
- echo "Usage: `basename $0` host [ uid [ fqdn [ maildomain [ dbname [ dbuser"
- echo " [ mailuser [ gid ]]]]]]"
- echo
- echo " OPTION DESCRIPTION DEFAULT VALUE"
- echo " host: hostname (without domain)"
- echo " uid: System user id ($defaultuid)"
- echo " fqdn: Complete domain name (<host>.$defaultdomain)"
- echo " maildomain: Domain part of mail address ($defaultmaildomain)"
- echo " dbname: MySQL database name (ez_2_2_<host>)"
- echo " dbuser: MySQL database user (<uid>)"
- echo " mailuser: User part of mail address (<dbuser>)"
- echo " gid: System group id ($defaultgid"
- echo
- echo " MySQL password for <dbuser> can be stored in $HOME/.my.cnf of <uid>."
- echo
- echo " Example: `basename $0` bilbo news news.forum.com"
- exit 1
- fi
- # Attempt to figure out dbadmin and dbadmpass, else ask for them
- if [ -e /usr/share/wwwconfig-common/mysql-localadmpass.get -a "$dbserver" = "localhost" ] ; then
- status=""
- . /usr/share/wwwconfig-common/mysql-localadmpass.get
- if [ "$status" = "error" ] ; then
- echo "$error"
- fi
- fi
- if [ -z "$dbadmpass" ]; then
- echo -n "Enter MySQL administrator (usually root): "
- read -s dbadmin
- echo
- echo -n "Enter MySQL root password: "
- read -s dbadmpass
- echo
- fi
- uid=${uid:-$defaultuid}
- gid=${gid:-$defaultgid}
- fqdn=${fqdn:-$host.$defaultdomain}
- dbname=${dbname:-ez_2_2_$host}
- mailuser=${mailuser:-$uid}
- maildomain=${maildomain:-$defaultmaildomain}
- home=`getent passwd $uid | awk -F: '{print $6}';`
- if [ -z "$dbpass" ]; then
- if [ -f $home/.my.cnf ]; then
- dbpass=$(grep password $home/.my.cnf | awk -F= '{print $2}' | head -1 | sed 's/^ //g')
- fi
- if [ -z "$dbpass" ]; then
- echo -n "Enter MySQL password for $uid: "
- read -s dbpass
- echo
- fi
- fi
- basedir="$home/webphpsites/$fqdn"
- adminhost="admin.$fqdn"
- adminbasedir="$basedir/admin"
- webcfg="/etc/apache/vhosts.d/$fqdn"
- #TODO: Make sure $basedir, $dbname, $dbuser and $webcfg doesn't exist
- if [ "$(basename $0)" = "${pkg}betarecreate" ]; then
- mysqladmin -u$dbadmin -p$dbadmpass drop $dbname
- rm -rf $basedir
- fi
- echo "Creating database $dbname"
- if [ -e /usr/share/wwwconfig-common/mysql-createdb.sh ] ; then
- status=""
- . /usr/share/wwwconfig-common/mysql-createdb.sh
- if [ "$status" = "error" ] ; then
- echo "$error"
- exit 1
- fi
- else
- mysqladmin -u$dbadmin -p$dbadmpass create $dbname
- fi
- if [ -e /usr/share/wwwconfig-common/mysql-createuser.sh ] ; then
- status=""
- . /usr/share/wwwconfig-common/mysql-createuser.sh
- if [ "$status" = "error" ] ; then
- echo "$error"
- exit 1
- fi
- echo "GRANT INDEX ON $dbname.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass
- else
- echo "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON $dbname.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass
- fi
- echo "Inject initial data into database"
- if [ -e /usr/share/wwwconfig-common/mysql-exec.sh ] ; then
- status=""
- (cd $sqldir && . /usr/share/wwwconfig-common/mysql-exec.sh)
- if [ "$status" = "error" ] ; then
- echo "$error"
- exit 1
- fi
- else
- cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $dbname
- fi
- echo -n "Unpacking tarballs:"
- mkdir $basedir
- chown $uid:$gid $basedir
- su $uid -c "
- set -e
- cd $basedir
- for tarball in $tarballs; do
- echo -n \" \$tarball\"
- tar -xz -C $basedir -f $srcdir/\$tarball.tar.gz
- done
- for tarball in $language_tarballs; do
- echo -n \" \$tarball\"
- tar -xz -C $basedir -f $srcdir/lang/\$tarball.tar.gz
- done
- for tarball in $template_tarballs; do
- echo -n \" \$tarball\"
- tar -xz -C $basedir -f $srcdir/templates/\$tarball.tar.gz
- done
- echo
- "
- echo "Adding demo data to database"
- sqlfile=$sqlfile2
- if [ -e /usr/share/wwwconfig-common/mysql-exec.sh ] ; then
- status=""
- (cd $sqldir && . /usr/share/wwwconfig-common/mysql-exec.sh)
- if [ "$status" = "error" ] ; then
- echo "$error"
- exit 1
- fi
- else
- cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $dbname
- fi
- echo "Configuring website"
- su $uid -c "
- set -e
- cd $basedir
- $bindir/modfix.sh >/dev/null
- $bindir/secure_modfix.sh $uid $gid >/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=$dbname
- User=$dbuser
- Password=$dbpass
- [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
- <Directory $basedir>
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- 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|wbmp)\$ $basedir/index.php
- </VirtualHost>
- <VirtualHost *>
- ServerName $adminhost
- ServerAdmin $mailuser@$maildomain
- DocumentRoot $basedir
- user $uid
- group $gid
- <Directory $basedir>
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- 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|wbmp) $basedir/index_admin.php
- </VirtualHost>
- <VirtualHost *>
- ServerName www.$fqdn
- RewriteEngine On
- RewriteRule / http://$fqdn/ [R]
- TransferLog /dev/null
- </VirtualHost>" > $webcfg
- echo "Done!"
- echo "Remember to reload Apache..."
|