summaryrefslogtreecommitdiff
path: root/localezcreate
blob: b10725fb4bed7477c39cb499237ad3d170c93646 (plain)
  1. #!/bin/bash
  2. #
  3. # /usr/local/sbin/localezcreate
  4. # Copyright 2001-2002 Jonas Smedegaard <dr@jones.dk>
  5. #
  6. # $Id: localezcreate,v 1.5 2002-03-07 16:22:51 jonas Exp $
  7. #
  8. # Create local eZ Publish site
  9. #
  10. set -e
  11. # Defaults
  12. defaultmaildomain=`dnsdomainname`
  13. defaultdomain="ez.$defaultmaildomain"
  14. defaultuid="www-data"
  15. # Input
  16. dbuser="$1"
  17. host="$2"
  18. fqdn="$3"
  19. db="$4"
  20. mailuser="$5"
  21. maildomain="$6"
  22. uid="$7"
  23. gid="$8"
  24. dbpasswd="$9"
  25. #ezpasswd="$10"
  26. if [ $# \< 2 -o $# \> 9 ]; then
  27. echo "\$#: $#"
  28. # echo "Usage: `basename $0` dbuser host [fqdn [db [mailuser [maildomain [ uid [ gid [dbpasswd [ezpasswd]]]]]]]]"
  29. echo "Usage: `basename $0` dbuser host [fqdn [db [mailuser [maildomain [ uid [ gid [dbpasswd ]]]]]]]"
  30. echo
  31. echo " dbuser: MySQL database user"
  32. echo " host: hostname (and only that - no dots!)"
  33. echo " fqdn: Fully qualified domain name (default on this host is <host>.$defaultdomain)"
  34. echo " db: MySQL database name"
  35. echo " mailuser: User part of mail address (default is <dbuser>)"
  36. echo " maildomain: Domain part of mail address (default on this host is $defaultmaildomain)"
  37. echo " uid: System user id (default is $defaultuid)"
  38. echo " gid: System group id (default is <uid>"
  39. echo " dbpasswd: MySQL database password (default is to ask for it)"
  40. # echo " ezpasswd: Web password (default is to ask for it)"
  41. echo
  42. echo " Example: `basename $0` bilbo news news.forum.com"
  43. exit 1
  44. fi
  45. if [ -f /root/.my.cnf ]; then
  46. dbrootpw=$(grep password /root/.my.cnf | awk -F= '{print $2}' | head -1 | sed 's/^ //g')
  47. else
  48. echo -n "Enter MySQL root password: "
  49. read -s dbrootpw
  50. echo
  51. fi
  52. pkg="ezpublish"
  53. #src="/usr/local/src/$pkg/ezpublish_2_2_beta_1.tar.gz"
  54. srcdir="/usr/share/ezpublish"
  55. sqldir="$srcdir/sql"
  56. #webdir="$srcdir/lib"
  57. tarballs="lib data install www"
  58. sqlfile="publish_mysql.sql"
  59. sqlfile2="data_mysql.sql"
  60. [ "x$uid" == "x" ] && uid="$defaultuid"
  61. gid="$uid"
  62. [ "x$fqdn" == "x" ] && fqdn="$host.$defaultdomain"
  63. [ "x$db" == "x" ] && db="ez_2_2_$host"
  64. [ "x$mailuser" == "x" ] && mailuser="$uid"
  65. [ "x$maildomain" == "x" ] && maildomain="$defaultmaildomain"
  66. if [ "x$dbpasswd" == "x" ]; then
  67. echo -n "Enter MySQL password for $dbuser: "
  68. read -s dbpasswd
  69. echo
  70. fi
  71. #if [ "x$ezpasswd" == "x" ]; then
  72. # echo -n "Enter eZ admin password for $dbuser: "
  73. # read -s ezpasswd
  74. # echo
  75. #fi
  76. home=`getent passwd $uid | awk -F: '{print $6}';`
  77. basedir="$home/web_$fqdn"
  78. adminhost="admin.$fqdn"
  79. adminbasedir="$basedir/admin"
  80. webcfg="/etc/apache/vhosts/$fqdn"
  81. #TODO: Make sure $basedir, $db, $dbuser and $webcfg doesn't exist
  82. if [ "$(basename $0)" = "${pkg}betarecreate" ]; then
  83. mysqladmin -uroot -p$dbrootpw drop $db
  84. rm -rf $basedir
  85. fi
  86. echo "Creating database $db"
  87. mysqladmin -uroot -p$dbrootpw create $db
  88. echo "GRANT SELECT,INSERT,UPDATE,DELETE ON $db.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpasswd';" | mysql -uroot -p$dbrootpw
  89. #echo "Copying initial files to $basedir"
  90. #su $uid -c "cp -a $webdir $basedir"
  91. echo "Adding initial data to database"
  92. #dbstring="INSERT INTO eZUser_User VALUES (1,'$dbuser',password('$ezpasswd'),'$dbuser@$maildomain','admin','user','false','',0,0);"
  93. #cat $sqldir/$sqlfile | sed "s/^INSERT INTO eZUser_User VALUES.*\$/$dbstring/" | mysql -uroot -p$dbrootpw $db
  94. #cat $sqldir/$sqlfile | sed "s/'0c947f956f7aa781','postmaster@yourdomain'/password('$ezpasswd'),'$dbuser@$maildomain'/" | mysql -uroot -p$dbrootpw $db
  95. cat $sqldir/$sqlfile | mysql -uroot -p$dbrootpw $db
  96. #cat $basedir/sql/publish.sql | sed -e "s/^INSERT INTO eZUser_User VALUES.*\$/$dbstring/" -e 's/ PACK_KEYS=1//' | mysql -uroot -p$dbrootpw $db
  97. #su $uid -c "zcat $basedir/data.tar.gz | tar -xv -C $basedir"
  98. echo -n "Unpacking tarballs:"
  99. su $uid -c "
  100. mkdir $basedir
  101. cd $basedir
  102. for tarball in $tarballs; do
  103. echo -n \" \$tarball\"
  104. tar -xz -C $basedir -f $srcdir/\$tarball.tar.gz
  105. done
  106. echo
  107. "
  108. echo "Adding demo data to database"
  109. #su - $uid -c "mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2"
  110. mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2
  111. echo "Configuring website"
  112. su $uid -c "
  113. cd $basedir
  114. $srcdir/bin/modfix.sh >/dev/null
  115. $srcdir/bin/clearcache.sh >/dev/null
  116. mkdir -p override
  117. echo \"[site]
  118. SiteURL=$fqdn
  119. AdminSiteURL=admin.$fqdn
  120. UserSiteURL=$fqdn
  121. SiteTitle=$host eZ site
  122. Keywords=$host $maildomain
  123. SiteAuthor=someone at $maildomain
  124. SiteCopyright=someone &copy; 2001
  125. SiteDescription=a web application suite
  126. SiteKeywords=Content Management System, CMS, e-commerce
  127. Database=$db
  128. User=$dbuser
  129. Password=$dbpasswd
  130. [eZUserMain]
  131. DefaultCountry=58
  132. [eZTradeMain]
  133. OrderSenderEmail=$mailuser@$maildomain
  134. OrderReceiverEmail=$mailuser@$maildomain
  135. mailToAdmin=$mailuser@$maildomain
  136. ForceSSL=disabled
  137. ApacheUser=UserApacheRunsAs
  138. [eZForumMain]
  139. ReplyAddress=$mailuser@$maildomain
  140. \" > override/site.ini.append
  141. "
  142. echo "Configuring Apache"
  143. echo "# Generated for $pkg by $(basename $0)
  144. <VirtualHost *>
  145. ServerName $fqdn
  146. ServerAdmin $mailuser@$maildomain
  147. DocumentRoot $basedir
  148. user $uid
  149. group $gid
  150. <Directory $basedir>
  151. Options FollowSymLinks
  152. AllowOverride None
  153. </Directory>
  154. php_flag magic_quotes_gpc off
  155. RewriteEngine On
  156. RewriteRule ^/stats/store/(.*).gif\$ $basedir/ezstats/user/storestats.php [S=4]
  157. RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)\$ $basedir/ezfilemanager/files/\$1 [T=\"application/oct-stream\",S=3]
  158. RewriteRule .*/ezmediacatalogue/catalogue/(.*)\$ $basedir/ezmediacatalogue/catalogue/\$1 [T=\"application/oct-stream\",S=2]
  159. RewriteRule ^/xmlrpc.*\$ $basedir/index_xmlrpc.php [S=1]
  160. RewriteRule !\.(gif|css|jpg|png|jar)\$ $basedir/index.php
  161. </VirtualHost>
  162. <VirtualHost *>
  163. ServerName $adminhost
  164. ServerAdmin $mailuser@$maildomain
  165. DocumentRoot $basedir
  166. user $uid
  167. group $gid
  168. <Directory $basedir>
  169. Options FollowSymLinks
  170. AllowOverride None
  171. </Directory>
  172. php_flag magic_quotes_gpc off
  173. RewriteEngine On
  174. RewriteRule .*/ezmediacatalogue/catalogue/(.*)\$ $basedir/ezmediacatalogue/catalogue/\$1 [T=\"application/oct-stream\",S=1]
  175. RewriteRule !\.(gif|css|jpg|png|jar) $basedir/index_admin.php
  176. </VirtualHost>
  177. <VirtualHost *>
  178. ServerName www.$fqdn
  179. RewriteEngine On
  180. RewriteRule / http://$fqdn/ [R]
  181. </VirtualHost>" > $webcfg
  182. echo "Done!"
  183. echo "Remember to reload Apache..."