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