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