|
PCCS MySQLDatabase Admin Tool version 1.3.4
|
/installscript/ -> mysqldb_phpinstallscript.php
1 <?php
2 ///////////////////////////////////////////////////////////////////////////////////// 3 // coder: cthorn 4 // mysqldb_admin.php 5 // 6 /************************************************************************
7 PCCS MySQLDatabase Admin Tool
8 Copyright (C) 1999 Chauncey Thorn
9
10 This program is free software; you can redistribute it and/or
11 modify it under the terms of the GNU General Public License
12 as published by the Free Software Foundation; either version 2
13 of the License, or (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA , USA.
23 **************************************************************************/
24
25 // updated 10-23-2000 26 // -- moving to a single file for global include files 27
28 require('../mysqldb_app_includes.php');
29
30 common_header($_title);
31 pageTop("PCCS MySQLAdmin Tool: CREATE PHP INSTALLSCRIPTS","600");
32
33 $link_array = array(
34 "$str_mainMenu" => "../",
35 "$str_installscriptlink" => "mysqldb_installscript.php",
36 "LOGOUT" => "logout.php"
37 );
38
39 print "<BR>";
40 print "<CENTER>";
41 navBar($link_array);
42 print "</CENTER>";
43 print "<BR>";
44
45
46 if($action == "start") {
47
48
49 print "
50 <H3 align=center>PHP Application Install Script Creator</H3>
51 <center>
52
53 PHP developer / Web Hosting Admin.<br>
54 Using this script you can create an PHP application Install Script<P>\n
55
56 ";
57
58 print "
59
60 <FORM ACTION=mysqldb_phpinstallscript.php?action=create_script
61 METHOD=POST>
62 <p><BR>
63 <table>
64 <tr>
65 <td><font face=\"Verdana\" size=\"2\">Application Name:</font></td>
66 <td><INPUT TYPE=\"text\" NAME=\"installapptitle\"></td>
67 </tr>
68 <tr>
69 <td><font face=\"Verdana\" size=\"2\">Your Email Address:</font> </td>
70 <td><INPUT TYPE=\"text\" NAME=\"installemail\"></td>
71 </tr>
72 <tr>
73 <td><font face=\"Verdana\" size=\"2\">Application Web Site Address:</font></td>
74 <td><INPUT TYPE=\"text\" NAME=\"installwebsite\"></td>
75 </tr>
76 <tr>
77 <td><font face=\"Verdana\" size=\"2\">Application Install Help:</font></td>
78 <td><INPUT TYPE=\"text\" NAME=\"installwebsitehelp\"><br>
79 </tr>
80 <tr>
81 <td><font face=\"Verdana\" size=\"2\">Application Database Name:</font></td>
82 <td>
83 <SELECT NAME=installappdbname SINGLE>";
84
85 $qry = "SHOW DATABASES";
86 $res = mysqlquery("mysql",$qry) or die("Error running query");
87 for ($i = 0; $i < mysql_numrows($res); $i++):
88 $db_output = mysql_result($res,$i,"Database");
89
90 print "<OPTION VALUE=\"$db_output\">$db_output</OPTION>";
91 endfor;
92
93 print "
94 </SELECT>
95 </td>
96 </tr>
97 <tr>
98 <td><font face=\"Verdana\" size=\"2\">Application Database UserName:</font> </td>
99 <td><INPUT TYPE=\"text\" NAME=\"installappdbuser\"></td>
100 </tr>
101 <tr>
102 <td><font face=\"Verdana\" size=\"2\">Application Database User Password:</font> </td>
103 <td><INPUT TYPE=\"text\" NAME=\"installappdbpassword\"></td>
104 </tr>
105 <tr>
106 <td colspan=2><INPUT TYPE=submit VALUE=\"CREATE SCRIPT\"></td>
107 </tr>
108 </table>
109 </FORM>
110
111 ";
112
113 $nav_links = array(
114 "Main Menu" => "../",
115 "Database" => "../mysqldb_admin.php"
116 );
117
118 navBar($nav_links);
119
120 print "</center>";
121 }
122
123 if($action == "create_script") {
124
125 $scriptdir = $app_dir . "installscript";
126
127 /* Install Filename */
128 $install_filename="install.php";
129
130 $f = fopen($install_filename,"w");
131 fputs($f,"<?php\n//** Generated by PCCS-MyAppGen $today\n");
132
133 fputs($f,"/////////////////////////////////////////////////////////////////////////////////////\n");
134 fputs($f,"// Initial Install Script Coded: Chauncey Thorn (cthorn)\n");
135 fputs($f,"//\n");
136 fputs($f,"// Sunday, July 30, 2000 - John B. Abela (support)");
137 fputs($f,"// Upgdate to PHP4, Total Rework of Variable Settings,\n");
138 fputs($f,"// Addition of INPUT fields for end-user, & author credit.\n");
139 fputs($f,"//\n");
140
141 fputs($f,"\$install_apptitle = \"$installapptitle\"; // Your Application Name\n");
142 fputs($f,"\$install_email = \"$installemail\"; // Your Email Address\n");
143 fputs($f,"\$install_website = \"$installwebsite/\"; // Your Application Web Site Address\n");
144 fputs($f,"\$install_websitehelp = \"$installwebsitehelp\"; // Application Install Help (if it exists)");
145 fputs($f,"\$install_db_name = \"$installappdbname\"; // ** Set This if your script requires a Hard-Coded Database Name!! **\n");
146
147 fputs($f,"\$install_mysql_dump = \"visitlog.mysql\"; // Replace with your mysqldump file\n");
148 fputs($f,"\$install_index_file = \"index.php\"; // Main File to your application\n");
149 fputs($f,"\$install_mysql_exec = \"-u root\"; // Execute mysql client as this\n");
150
151 fputs($f,"/////////////////////////////////////////////////////////////////////////////////////\n");
152 fputs($f,"// No Need To Edit Anything Below Here!\n");
153 fputs($f,"/////////////////////////////////////////////////////////////////////////////////////\n");
154 fputs($f,"?>\n");
155 fputs($f,"\n");
156 fputs($f,"<HTML><HEAD>\n");
157 fputs($f,"<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=ISO-8859-1\">\n");
158 fputs($f,"<TITLE><?php echo \$install_apptitle ?> Installation Script</TITLE></HEAD>\n");
159 fputs($f,"<BODY BGCOLOR=\"#EEEEEE\" text=\"black\" link=\"blue\" vlink=\"blue\">\n");
160 fputs($f,"\n");
161 fputs($f,"<center><br><font face=\"Verdana\" color=\"black\" size=\"+2\"><?php echo \$install_apptitle; ?> Installation Script</font>\n");
162 fputs($f,"<br><font face=\"Verdana\" color=\"blue\" size=\"1\"><a href=\"<?php echo \$install_websitehelp; ?>\" target=\"\$install_websitehelp\">Installation Help</a> | </font>\n");
163 fputs($f,"<font face=\"Verdana\" color=\"blue\" size=\"1\"><a href=\"<?php echo \$install_website; ?>\" target=\"_blank\"><?php echo \$install_apptitle;?> Web Site</a></font>\n");
164 fputs($f,"<P>\n");
165 fputs($f,"<?php if(\$argv[0] == \"\"):?>\n");
166 fputs($f,"<CENTER>\n");
167 fputs($f,"<FORM ACTION=$install_filename?action=install METHOD=POST>\n");
168 fputs($f,"<p><BR>\n");
169 fputs($f,"<font face=\"Verdana\" size=\"2\">MySQL Server:</font> <INPUT TYPE=\"text\" NAME=\"install_mysql_server\" VALUE=\"localhost\"><br>\n");
170 fputs($f,"<font face=\"Verdana\" size=\"2\">MySQL UserName:</font> <INPUT TYPE=\"text\" NAME=\"install_mysql_user\" VALUE=\"root\"><br>\n");
171 fputs($f,"<font face=\"Verdana\" size=\"2\">MySQL Password:</font> <INPUT TYPE=\"text\" NAME=\"install_mysql_passwd\"><br>\n");
172 fputs($f,"<font face=\"Verdana\" size=\"2\">MySQL Location:</font> <INPUT TYPE=\"text\" NAME=\"install_mysql_location\" VALUE=\"/usr/local/bin/mysql\"><br>\n");
173 fputs($f,"<font face=\"Verdana\" size=\"2\">Database Name:</font> <INPUT TYPE=\"text\" NAME=\"install_db_name\" VALUE=\"$install_db_name\"><br>\n");
174 fputs($f,"<font face=\"Verdana\" size=\"2\">Database UserName:</font> <INPUT TYPE=\"text\" NAME=\"install_db_user\"><br>\n");
175 fputs($f,"<font face=\"Verdana\" size=\"2\">Database User Password:</font> <INPUT TYPE=\"text\" NAME=\"install_db_password\"><p>\n");
176 fputs($f,"<INPUT TYPE=submit VALUE=\"Install <?php echo \$install_apptitle; ?>\">\n");
177 fputs($f,"</FORM>\n");
178 fputs($f,"</CENTER>\n");
179 fputs($f,"<?php endif; ?>\n");
180
181 fputs($f,"<center><br><font face=\"Verdana\" color=\"black\" size=\"1\">\n");
182 fputs($f,"Installation Script by: <a href=\"http://www.4cm.com/\" target=\"_blank\">www.4cm.com</a>\n");
183 fputs($f," & <a href=\"mailto:cthorn\\">Chauncey Thorn</a></font></center></BODY></HTML>\n");
184
185 fputs($f,"<?php \n");
186 fputs($f," if(\$action == \"install\"): \n");
187 fputs($f," \$mysql_server =\"localhost\"; // mysql server \n");
188 fputs($f," \$mysql_user =\"install_mysql_user\"; // mysql user name\n");
189 fputs($f," \$mysql_passwd = \"install_mysql_passwd\"; // mysql password\n");
190 fputs($f," \$db_name = \"$installappdbname\"; // db database name\n");
191 fputs($f," \$db_user = \"installappdbpassword\"; // db user name\n");
192 fputs($f," \$db_password = \"install_db_password\"; // db user passwd\n");
193 fputs($f," \$mysql_location = \"install_mysql_location\"; // Location of mysql client\n");
194 fputs($f," \$mysql_exec = \"\$install_mysql_exec\"; // Execute mysql client as\n");
195 fputs($f," \$mysql_dump = \"\$install_mysql_dump\"; // mysqldump \n");
196 fputs($f," \$index_file = \"\$install_index_file\"; // Main Index File (something.php)\n");
197 fputs($f,"/////////////////////////////////////////////////////////////////////////////////\n");
198 fputs($f,"// Connect to Database\n");
199 fputs($f,"\n");
200 fputs($f," function connectDB() {\n");
201 fputs($f," global \$mysql_server, \$mysql_user, \$mysql_passwd;\n");
202 fputs($f," mysql_pconnect(\$db_name, \$mysql_user, \$mysql_passwd);\n");
203 fputs($f," }\n");
204 fputs($f," connectDB();\n");
205 fputs($f,"\n");
206 fputs($f," \$create_webdb = \"CREATE DATABASE \$db_name\";\n");
207 fputs($f," \$cwebdb = mysql_query(\$create_webdb);\n");
208 fputs($f," if (!empty(\$cwebdb)) {\n");
209 fputs($f," // Do Nothing \n");
210 fputs($f," } else {\n");
211 fputs($f," echo mysql_error().\"<BR>\n\";\n");
212 fputs($f," }\n");
213 fputs($f,"\n");
214 fputs($f," \$create_webuser = \"GRANT SELECT,INSERT,UPDATE,DELETE on \$db_name.* \n");
215 fputs($f," TO \$db_user@\$mysql_server \n");
216 fputs($f," IDENTIFIED by \'\$db_password\'\";\n");
217 fputs($f," \$cwebuser = mysql_query(\$create_webuser);\n");
218 fputs($f," if (!empty(\$cwebuser)) {\n");
219 fputs($f," // Do Nothing \n");
220 fputs($f," } else {\n");
221 fputs($f," echo mysql_error().\"<BR>\n\";\n");
222 fputs($f," }\n");
223 fputs($f,"\n");
224 fputs($f," \$create_tbl = \"\$mysql_location \$mysql_exec \$db_name < \$mysql_dump\";\n");
225 fputs($f," exec(\$create_tbl);\n");
226 fputs($f,"/////////////////////////////////////////////////////////////////////////////////\n");
227 fputs($f," print \"\$install_apptitle has been installed.\";\n");
228 fputs($f," print \" Click <a href=./\$index_file>here</a> to test it out\";\n");
229 fputs($f," print \"<BR>Please Email Any Bugs and Comments to: <a href=mailto:\$install_email>\$install_email</a>.\";\n");
230 fputs($f,"/////////////////////////////////////////////////////////////////////////////////\n");
231 fputs($f,"endif;\n");
232 fputs($f,"?>\n");
233 fclose($f);
234
235
236 $backup_filename="backup.php";
237
238 $fb = fopen($backup_filename,"w");
239 fputs($fb,"<?php\n//** Generated by PCCS-MyAppGen $today\n");
240 fputs($fb,"/////////////////////////////////////////////////////////////////////////////////////\n");
241 fputs($fb,"// coder: cthorn\n");
242 fputs($fb,"////////////////////////////////////////////////////////////////////////////\n");
243 fputs($fb,"//\n");
244 fputs($fb,"//\n");
245 fputs($fb,"if (\$argv[0] ==\"\"):\n");
246 fputs($fb," print \"<CENTER>\";\n");
247 fputs($fb," print \"This Page allows you to make a backup of your database App\";\n");
248 fputs($fb," print \"<br>\";\n");
249 fputs($fb," print \"<A HREF=$backup_filename?action=backup>BACKUP APPLICATION</A>\";\n");
250 fputs($fb," print \"</CENTER>\";\n");
251 fputs($fb," \n");
252 fputs($fb,"\n");
253 fputs($fb,"endif;\n");
254
255
256 fputs($fb,"\$dbname = \"$installappdbname\"; //your Application Database Name\n");
257
258 fputs($fb,"\$_time = date(\"His\");\n");
259 fputs($fb,"\$_date = date(\"Ymd\");\n");
260 fputs($fb,"\$dump_filename = \"\$_date\$_time_\$dbname.sql\";\n");
261 fputs($fb,"\$_admtool = \"/usr/local/bin/mysqldump\";\n");
262 fputs($fb,"\$_gzip = \"/bin/tar\";\n");
263 fputs($fb,"\$dump_filename = \"\$_date\$_time_\$dbname.sql\";\n");
264 fputs($fb,"//\n");
265 fputs($fb,"// Below are the paramaters for mysqldump\n");
266 fputs($fb,"\$par1 = '--opt';\n");
267 fputs($fb,"\$par2 = '-uroot';\n");
268 fputs($fb,"\$db_dump = \"\$_admtool \$par1 \$par2 \$dbname > ./\$dump_filename\";\n");
269 fputs($fb,"\$gz_dump = \"\$_gzip -czf ./\$dump_filename.tar.gz ./\$dump_filename\";\n");
270 fputs($fb,"\n");
271 fputs($fb,"if (\$action == \"backup\"):\n");
272 fputs($fb,"\t\theader(\"Content-type: application/gzip\");\n");
273 fputs($fb,"\t\theader(\"Content-Disposition: attachment; filename=\$dump_filename.tar.gz\");\n");
274 fputs($fb,"\n");
275
276 fputs($fb,"\t\texec(\"\$db_dump\");\n");
277 fputs($fb,"\t\texec(\"\$gz_dump\");\n");
278
279 fputs($fb,"\t\treadfile(\"\$dump_filename.tar.gz\");\n");
280 fputs($fb,"\t\tunlink(\"\$dump_filename.tar.gz\");\n");
281 fputs($fb,"endif;\n");
282 fputs($fb,"\n");
283
284 fputs($fb,"//\n");
285 fputs($fb,"//////////////////////////////////////////////////////////////////////////\n");
286 fputs($fb,"?>\n");
287 fclose($fb);
288
289
290
291
292
293
294 $dumpdir = $app_dir . "installscript";
295
296 $dumpdb = "/usr/local/bin/mysqldump --opt -u$db_user $installappdbname > $dumpdir/$installappdbname.mysql";
297 $dumpdbpw = "/usr/local/bin/mysqldump --opt -u$db_user -p$db_password $installappdbname > $dumpdir/$installappdbname.mysql";
298
299 if($db_password == "") {
300 passthru($dumpdb,$result);
301 } else {
302 passthru($dumpdbpw,$result);
303 }
304
305 echo "A PHP Install Script has been created for" . $install_apptitle . "!<BR><BR>\n";
306 echo "The install script code is saved as <A HREF=$install_filename><B>$install_filename</B></A> <BR><BR>\n";
307 echo "The backup script code is saved as <A HREF=$backup_filename><B>$backup_filename</B></A> <BR><BR>\n";
308 echo "The SQL Dump is saved as <A HREF=$installappdbname.mysql><B>$installappdbname.mysql</B></A> <BR><BR>\n";
309 echo "<A HREF=$app_url>Back to Main</a>";
310 }
311
312 // footer();
313
314 pageBottom();
315 ?>
316
| |