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