summaryrefslogtreecommitdiff
path: root/localezcreate
blob: 09c270f0370d740e9a381035d46548936b6ab734 (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 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 is $defaultmailname)"
  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="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. 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. #su - $uid -c "mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2"
  95. mysql -u$dbuser -p$dbpasswd $db < $sqldir/$sqlfile2
  96. echo "Configuring website"
  97. su $uid -c "
  98. cd $basedir
  99. $srcdir/bin/modfix.sh >/dev/null
  100. $srcdir/bin/clearcache.sh >/dev/null
  101. mkdir -p override
  102. echo \"[site]
  103. SiteURL=$fqdn
  104. AdminSiteURL=admin.$fqdn
  105. UserSiteURL=$fqdn
  106. SiteTitle=$host eZ site
  107. Keywords=$host $maildomain
  108. SiteAuthor=someone at $maildomain
  109. SiteCopyright=someone &copy; 2001
  110. SiteDescription=a web application suite
  111. SiteKeywords=Content Management System, CMS, e-commerce
  112. Database=$db
  113. User=$dbuser
  114. Password=$dbpasswd
  115. [eZUserMain]
  116. DefaultCountry=58
  117. [eZTradeMain]
  118. OrderSenderEmail=$mailuser@$maildomain
  119. OrderReceiverEmail=$mailuser@$maildomain
  120. mailToAdmin=$mailuser@$maildomain
  121. ForceSSL=disabled
  122. ApacheUser=UserApacheRunsAs
  123. [eZForumMain]
  124. ReplyAddress=$mailuser@$maildomain
  125. \" > override/site.ini.append
  126. "
  127. echo "Configuring Apache"
  128. echo "# Generated for $pkg by $(basename $0)
  129. <VirtualHost *>
  130. ServerName $fqdn
  131. ServerAdmin $mailuser@$maildomain
  132. DocumentRoot $basedir
  133. user $uid
  134. group $gid
  135. php_flag magic_quotes_gpc off
  136. RewriteEngine On
  137. RewriteRule ^/stats/store/(.*).gif\$ $basedir/ezstats/user/storestats.php [S=2]
  138. RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)\$ $basedir/ezfilemanager/files/\$1 [T="application/oct-stream",S=1]
  139. RewriteRule !\.(gif|css|jpg|png)\$ $basedir/index.php
  140. </VirtualHost>
  141. <VirtualHost *>
  142. ServerName $adminhost
  143. ServerAdmin $mailuser@$maildomain
  144. DocumentRoot $basedir
  145. user $uid
  146. group $gid
  147. php_flag magic_quotes_gpc off
  148. RewriteEngine On
  149. RewriteRule !\.(gif|css|jpg|png)\$ $basedir/index_admin.php
  150. </VirtualHost>
  151. <VirtualHost *>
  152. ServerName www.$fqdn
  153. RewriteEngine On
  154. RewriteRule / http://$fqdn/ [R]
  155. </VirtualHost>" > $webcfg
  156. echo "Done!"
  157. echo "Remember to reload Apache..."