source: trunk/install/index.php @ 782

Revision 782, 18.8 KB checked in by r2, 13 months ago (diff)

копирайты

  • Property svn:executable set to *
Line 
1<?php 
2/******************************************************************************/
3//                                                                            //
4//                             InstantCMS v1.8                                //
5//                        http://www.instantcms.ru/                           //
6//                                                                            //
7//                   written by InstantCMS Team, 2007-2010                    //
8//                produced by InstantSoft, (www.instantsoft.ru)               //
9//                                                                            //
10//                        LICENSED BY GNU/GPL v2                              //
11//                                                                            //
12/******************************************************************************/
13
14        define('VALID_CMS', 1);
15
16    define('PATH', $_SERVER['DOCUMENT_ROOT']);
17    define('HOST', 'http://' . $_SERVER['HTTP_HOST']);
18
19    include('../core/cms.php');
20
21    $inCore     = cmsCore::getInstance(true);
22   
23    $inCore->loadClass('config');
24
25    $inConf     = cmsConfig::getInstance();
26
27    //Ìèíèìàëüíàÿ âåðñèÿ PHP
28    $php_req = array();
29    $php_req['major']       = '5';
30    $php_req['minor']       = '2';
31    $php_req['release']     = '0';
32
33    $php_req_ver = $php_req['major'] * 10000 + $php_req['minor'] * 100 + $php_req['release'];
34
35    //Ñïèñîê íåîáõîäèìûõ ðàñøèðåíèé PHP
36    $ext_req = array();
37    $ext_req['mbstring']    = 'mbstring';
38    $ext_req['iconv']       = 'iconv';
39    $ext_req['GD']          = 'gd';
40    $ext_req['SimpleXML']   = 'simplexml';
41
42        if (isset($_POST['install'])){
43       
44                $msg = '';
45       
46                if(!empty($_REQUEST['sitename'])) { $sitename = $_REQUEST['sitename']; } else { $sitename = 'Ìîé ñàéò'; }
47                if(!empty($_REQUEST['db_server'])) { $db_server = $_REQUEST['db_server']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü ñåðâåð ÁÄ!<br/>'; }
48                if(!empty($_REQUEST['db_base'])) { $db_base = $_REQUEST['db_base']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü íàçâàíèå ÁÄ!<br/>'; }
49                if(!empty($_REQUEST['db_user'])) { $db_user = $_REQUEST['db_user']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü ïîëüçîâàòåëÿ ÁÄ!<br/>'; }                             
50                if(!empty($_REQUEST['db_password'])) { $db_password = $_REQUEST['db_password']; } else { $db_password = ''; }
51                if(!empty($_REQUEST['db_prefix'])) { $db_prefix = $_REQUEST['db_prefix']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü ïðåôèêñ ÁÄ!<br/>'; }                             
52                if(!empty($_REQUEST['admin_login'])) { $admin_login = $_REQUEST['admin_login']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü ëîãèí àäìèíèñòðàòîðà!<br/>'; }
53                if(!empty($_REQUEST['admin_password'])) { $admin_password = $_REQUEST['admin_password']; } else { $msg .= 'Íåîáõîäèìî óêàçàòü ïàðîëü àäìèíèñòðàòîðà!<br/>'; }
54
55                if(!$msg){
56               
57                        //INSTALL SYSTEM
58                        $_CFG = array(); 
59                        $_CFG['sitename']   = $sitename;
60                        $_CFG['db_host']    = $db_server;
61                        $_CFG['db_base']    = $db_base;
62                        $_CFG['db_user']    = $db_user;
63                        $_CFG['db_pass']    = $db_password;
64                        $_CFG['db_prefix']  = $db_prefix;
65                        $_CFG['template']   = '_default_';
66                        $_CFG['tooltips']   = '1';
67                        $_CFG['index_pw']   = '0';
68                        $_CFG['show_pw']    = '1';
69                        $_CFG['short_pw']   = '1';
70                        $_CFG['splash']     = '0';
71                        $_CFG['stats']      = '0';
72                        $_CFG['slight']     = '0';
73                        $_CFG['siteoff']    = '0';
74                        $_CFG['offtext']    = 'Ïðîèçâîäèòñÿ îáíîâëåíèå ñàéòà';
75                        $_CFG['keywords']   = 'InstantCMS, ñèñòåìà óïðàâëåíèÿ ñàéòîì, áåñïëàòíàÿ CMS, äâèæîê ñàéòà, CMS, äâèæîê ñîöèàëüíîé ñåòè';
76                        $_CFG['metadesc']   = 'InstantCMS - áåñïëàòíàÿ ñèñòåìà óïðàâëåíèÿ ñàéòîì ñ ñîöèàëüíûìè ôóíêöèÿìè';
77                        $_CFG['fastcfg']    = '1';
78            $_CFG['debug']      = '0';
79            $_CFG['lang']       = 'ru';
80            $_CFG['wmark']      = 'watermark.png';
81            $_CFG['back_btn']   = '0';
82            $_CFG['timezone']   = 'Europe/Moscow';
83            $_CFG['timediff']   = '0';
84
85            $inConf->saveToFile($_CFG);
86                       
87                        $GLOBALS['db'] = @mysql_connect($_CFG['db_host'], $_CFG['db_user'], $_CFG['db_pass']);
88                       
89                        if (mysql_error()) { 
90                                $msg .= 'Íå óäàëîñü óñòàíîâèòü ñîåäèíåíèå c MySQL.<br/>
91                                                 Ïðîâåðüòå àäðåñ ñåðâåðà MySQL è ïðàâèëüíîñòü ïîëüçîâàòåëÿ è ïàðîëÿ ÁÄ.<br/>
92                                                 Çà óòî÷íåíèåì ýòèõ ïàðàìåòðîâ âû ìîæåòå îáðàòèòüñÿ ê ñâîåìó õîñòåðó.'; }
93                        else {
94                                @mysql_select_db($_CFG['db_base'], $GLOBALS['db']);
95                                if (mysql_error()) { 
96                                        $msg .= 'Íå óäàëîñü îòêðûòü ÁÄ MySQL.<br/>
97                                                         Áàçà äàííûõ "'.$_CFG['db_base'].'" íå íàéäåíà íà óêàçàííîì ñåðâåðå.<br/>
98                                                         Çà óòî÷íåíèåì ýòèõ ïàðàìåòðîâ âû ìîæåòå îáðàòèòüñÿ ê ñâîåìó õîñòåðó.'; 
99                                }
100                        }
101                       
102                        if(!$msg){
103                                                                       
104                $sql_file = ((int)$_REQUEST['demodata']==1 ?'sqldumpdemo.sql' : 'sqldumpempty.sql');
105                               
106                include($_SERVER['DOCUMENT_ROOT'].'/includes/database.inc.php');
107                include($_SERVER['DOCUMENT_ROOT'].'/includes/dbimport.inc.php');
108
109                mysql_query("SET NAMES cp1251");
110
111                dbRunSQL($_SERVER['DOCUMENT_ROOT'].'/install/'.$sql_file, $db_prefix);
112
113                $sql = "UPDATE {$db_prefix}_users
114                        SET password = md5('{$admin_password}'),
115                            login = '{$admin_login}'
116                        WHERE id = 1";
117           
118                mysql_query($sql);
119
120                $installed = (mysql_error() ? 0 : 1);
121
122                $sql = "UPDATE {$db_prefix}_users
123                        SET password = md5('{$admin_password}')
124                        WHERE id > 1";
125
126                mysql_query($sql);
127
128                        }
129                                       
130                }
131       
132        }
133
134// =================================================================================================== //
135
136function getPHPVersion(){
137    $version['text'] = phpversion();
138    $version['int']  = $version['text'][0] * 10000 + $version['text'][2] * 100 + $version['text'][4];
139    return $version;
140}
141
142function installCheckFolders(){
143        $folders = array();
144        $folders[] = '/images';
145        $folders[] = '/upload';
146        $folders[] = '/includes';
147        $folders[] = '/backups';
148    $folders[] = '/cache';
149       
150        echo '<table align="center">';
151                echo '<tr>';
152                        echo '<th width="260">Ïàïêà</th>';
153                        echo '<th style="text-align:center" width="170">Äîñòóïíà äëÿ çàïèñè</th>';
154                echo '</tr>';
155
156        foreach($folders as $key=>$folder){     
157                $right = true;
158                if(!@is_writable($_SERVER['DOCUMENT_ROOT'].$folder)){
159                        if (!@chmod($_SERVER['DOCUMENT_ROOT'].$folder, 0777)){
160                                $right = false;;
161                        }
162                }
163                echo '<tr>';
164                        echo '<td class="folder">'.$folder.'</td>';
165                        echo '<td style="text-align:center">'.($right ? '<span style="color:green">Äà</span>' : '<span style="color:red">Íåò</span>').'</td>';
166                echo '</tr>';
167        }
168       
169        echo '</table>';
170}
171
172// =================================================================================================== //
173
174function installCheckExtensions(){
175
176    global $ext_req;
177    global $php_req;
178    global $php_req_ver;
179
180        echo '<table align="center">';
181                echo '<tr>';
182                        echo '<th width="300">Ðàñøèðåíèå PHP</th>';
183                        echo '<th style="text-align:center" width="70">Óñòàíîâëåíî</th>';
184                echo '</tr>';
185       
186    $all_right = true;
187
188        foreach($ext_req as $name=>$ext){
189                $right = true;
190                if(!extension_loaded($ext)){
191            $right = false;
192            $all_right = false;
193                }
194                echo '<tr>';
195                        echo '<td class="extension"><a href="http://ru.php.net/manual/ru/book.'.$ext.'.php" title="Ïîñìîòðåòü îïèñàíèå íà ñàéòå PHP">'.$name.'</td>';
196                        echo '<td style="text-align:center">'.($right ? '<span style="color:green">Äà</span>' : '<span style="color:red">Íåò</span>').'</td>';
197                echo '</tr>';
198        }
199
200        echo '</table>';
201
202    if (!$all_right){
203        echo '<p>Äëÿ óñòàíîâêè îòñóòñòâóþùèõ ðàñøèðåíèé îáðàòèòåñü ê âàøåìó õîñòåðó.</p>';
204        echo '<p><a href="http://www.instantcms.ru/forum/0/thread1345-1.html">Êàê óñòàíîâèòü mbstring íà Äåíâåð</a> ÷èòàéòå íà íàøåì ôîðóìå.</p>';
205    }
206
207    $php_ver = getPHPVersion();
208
209    $right = true;
210    $php53 = false;
211   
212    if ($php_ver['int'] < $php_req_ver) { $right=false; }
213
214    echo '<p><strong>Âåðñèÿ PHP:</strong> '.$php_ver['text'].' &mdash '.($right ? '<span style="color:green">Îk</span>' : '<span style="color:red">òðåáóåòñÿ '.$php_req['major'].'.'.$php_req['minor'].'.'.$php_req['release'].' èëè âûøå</span>').'</p>';
215
216    if (!$right){
217        echo '<p>Äëÿ îáíîâëåíèÿ PHP îáðàòèòåñü ê ñâîåìó õîñòåðó.</p>';
218    }
219   
220}
221
222// =================================================================================================== //
223?>
224
225<html xmlns="http://www.w3.org/1999/xhtml">
226<head>
227        <title>InstantCMS - Óñòàíîâêà</title>
228        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
229        <script src='/includes/jquery/jquery.js' type='text/javascript'></script>
230        <script src='/install/js/jquery.wizard.js' type='text/javascript'></script>
231        <script src='/install/js/install.js' type='text/javascript'></script>
232        <link type='text/css' href='/install/css/styles.css' rel='stylesheet' media='screen' />
233</head>
234
235<body>
236
237        <table id="wrapper" align="center">
238        <tr><td>
239
240                <h1 id="header">
241                        Óñòàíîâêà InstantCMS <?php echo CORE_VERSION; ?>
242                </h1>
243               
244                <?php if(!isset($msg)){ ?>
245               
246                <form class="wizard" action="#" method="post" >
247                        <div class="wizard-nav"  align="center">                       
248                                <a href="#start">Íà÷àëî</a>
249                                <a href="#php">Ïðîâåðêà PHP</a>
250                                <a href="#folders">Ïðîâåðêà ïðàâ</a>
251                                <a href="#install">Óñòàíîâêà</a>
252                        </div>
253                        <!-- ================================================================ -->
254                                       
255                        <div id="start" class="wizardpage">
256                                <h2>Äîáðî ïîæàëîâàòü</h2>
257                                <img src="/install/images/start.gif" border="0" />
258                                <p>
259                                        Cêðèïò óñòàíîâêè ïðîâåðèò ñåðâåð íà ñîîòâåòñòâèå òåõíè÷åñêèì òðåáîâàíèÿì è ñîâåðøèò âñå
260                                        íåîáõîäèìûå äåéñòâèÿ äëÿ íà÷àëà ðàáîòû ñ InstantCMS.
261                                </p>
262                <p>Óñòàíàâëèâàòü InstantCMS ìîæíî òîëüêî â êîðíåâóþ ïàïêó ñàéòà.</p>
263                                <p>
264                                        Ïåðåä íà÷àëîì óñòàíîâêè ñîçäàéòå íîâóþ áàçó äàííûõ MySQL íà âàøåì õîñòèíãå.
265                                </p>
266                                <p>Êàê óñòàíîâèòü ñèñòåìó íà ëîêàëüíûé êîìïüþòåð ñ ÎÑ Windows&trade; äëÿ òåñòèðîâàíèÿ, ÷èòàéòå â <a href="http://www.instantcms.ru/wiki/doku.php/%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B4%D0%B5%D0%BD%D0%B2%D0%B5%D1%80" target="_blank">èíñòðóêöèè</a> íà îôèöèàëüíîì ñàéòå.</p>
267
268                <p>InstantCMS ðàñïðîñòðàíÿåòñÿ ïî ëèöåíçèè GNU/GPL âåðñèè 2. Âû äîëæíû ñîãëàñèòüñÿ ñ óñëîâèÿìè ýòîé ëèöåíçèè äëÿ óñòàíîâêè ñèñòåìû.</p>
269
270                <table cellpadding="0" cellspacing="0" border="0">
271                    <tr>
272                        <td width="20"><input type="checkbox" id="license_agree" onClick="checkAgree()"/></td>
273                        <td>
274                            <label for="license_agree">ß ñîãëàñåí ñ óñëîâèÿìè</label>
275                            <a target="_blank" href="/license.rus.win.txt">ëèöåíçèè GNU/GPL</a>
276                            (<a target="_blank" href="http://www.gnu.org/licenses/gpl-2.0.html">îðèãèíàë íà àíãëèéñêîì</a>)</p></td>
277                    </tr>
278                </table>
279
280                        </div>
281
282                        <!-- ================================================================ -->
283
284                        <div id="php" class="wizardpage">
285
286                <h2>Ïðîâåðêà ðàñøèðåíèé PHP</h2>
287                <img src="/install/images/extensions.gif" border="0" />
288
289                <p>
290                                        Äëÿ êîððåêòíîé ðàáîòû InstantCMS íåîáõîäèìî ÷òîáû PHP íà âàøåì ñåðâåðå èìåë óñòàíîâëåííûå ðàñøèðåíèÿ, ïåðå÷èñëåííûå íèæå.
291                                </p>
292
293                <?php installCheckExtensions(); ?>
294
295                        </div>
296
297                        <!-- ================================================================ -->
298                       
299                        <div id="folders" class="wizardpage">
300                                <h2>Ïðîâåðêà ïðàâ íà ïàïêè</h2>
301                                <img src="/install/images/folders.gif" border="0" />
302
303                <p>
304                                        Äëÿ êîððåêòíîé ðàáîòû InstantCMS óêàçàííûå íèæå ïàïêè äîëæíû áûòü äîñòóïíû äëÿ çàïèñè.
305                                        Ñìåíèòü ïðàâà íà ïàïêè ìîæíî ñ ïîìîùüþ FTP-êëèåíòà, íàïðèìåð Total Commander èëè FAR.
306                                </p>
307
308                                <?php installCheckFolders(); ?>
309
310                                <p>
311                                        Åñëè âû íå çíàåòå èëè ñîìíåâàåòåñü êàêèå ïðàâà íóæíî óñòàíîâèòü, ÷òîáû ñäåëàòü ïàïêó äîñòóïíîé äëÿ çàïèñè, îáðàòèòåñü
312                    â òåõíè÷åñêóþ ïîääåðæêó âàøåãî õîñòèíãà.
313                                </p>
314
315                                <p>
316                                        Óñòàíîâêó ìîæíî ïðîèçâåñòè è íå âûñòàâëÿÿ ïðàâà, íî ïîëíîöåííîå ôóíêöèîíèðîâàíèå ñèñòåìû ïðè ýòîì íå ãàðàíòèðóåòñÿ.
317                                </p>
318
319                        </div>
320
321                        <!-- ================================================================ -->
322                       
323                  <div id="install" class="wizardpage">
324                <h2>Óñòàíîâêà</h2>
325                <p>Çàïîëíèòå ôîðìó è íàæìèòå "Óñòàíîâèòü" äëÿ çàâåðøåíèÿ ïðîöåññà.</p>
326
327                <table cellpadding="0" cellspacing="0" border="0" width="100%">
328                    <tr>
329                        <td width="140" valign="top">
330                            <img src="/install/images/install.gif" border="0" />
331                        </td>
332                        <td valign="top">
333                            <table width="" border="0" cellpadding="4" cellspacing="0" style="margin-bottom:10px">
334                              <tr>
335                                <td width="220">Íàçâàíèå ñàéòà:</td>
336                                <td width="" align="center"><input name="sitename" type="text" class="txt" value="Ìîÿ ñîöèàëüíàÿ ñåòü"></td>
337                              </tr>
338                              <tr>
339                                <td>Ëîãèí àäìèíèñòðàòîðà ñàéòà:</td>
340                                <td align="center"><input name="admin_login" type="text" class="txt" value="admin"></td>
341                              </tr>
342                              <tr>
343                                <td>Ïàðîëü àäìèíèñòðàòîðà ñàéòà:</td>
344                                <td align="center"><input name="admin_password" type="password" class="txt"></td>
345                              </tr>
346                            </table>
347                            <table width="" border="0" cellpadding="4" cellspacing="0" style="margin-bottom:0px">
348                              <tr>
349                                <td width="220">Ñåðâåð MySQL: </td>
350                                <td align="center"><input name="db_server" type="text" class="txt" value="localhost"></td>
351                              </tr>
352                              <tr>
353                                <td>Áàçà äàííûõ: </td>
354                                <td align="center"><input name="db_base" type="text" class="txt"></td>
355                              </tr>
356                              <tr>
357                                <td>Ïîëüçîâàòåëü ÁÄ: </td>
358                                <td align="center"><input name="db_user" type="text" class="txt" value="root"></td>
359                              </tr>
360                              <tr>
361                                <td>Ïàðîëü ïîëüçîâàòåëÿ ÁÄ: </td>
362                                <td align="center"><input name="db_password" type="password" class="txt"></td>
363                              </tr>
364                              <tr>
365                                <td>Ïðåôèêñ òàáëèö â áàçå äàííûõ: </td>
366                                <td align="center"><input name="db_prefix" type="text" class="txt" value="cms"></td>
367                              </tr>
368                              <tr>
369                                <td>Äåìî-äàííûå:</td>
370                                <td align="center" valign="top">
371                                    <label><input name="demodata" type="radio" value="1" checked /> Äà</label>
372                                    <label><input name="demodata" type="radio" value="0" /> Íåò</label>
373                                </td>
374                              </tr>
375                            </table>
376                        </td>
377                    </tr>
378                </table>
379
380                                <p style="color:gray">
381                    Ïðè óñòàíîâêå ñ äåìî-äàííûìè âñåì ïîëüçîâàòåëÿì áóäåò óñòàíîâëåí îäèíàêîâûé ïàðîëü, ñîâïàäàþùèé ñ ïàðîëåì àäìèíèñòðàòîðà.
382                    Ëîãèí êàæäîãî ïîëüçîâàòåëÿ ìîæíî óçíàòü èç àäðåñà åãî ïðîôèëÿ èëè èç ïàíåëè óïðàâëåíèÿ.
383                </p>
384
385                <p>Óñòàíîâêà ìîæåò çàíÿòü îò ñåêóíä äî íåñêîëüêèõ ìèíóò, â çàâèñèìîñòè îò ñêîðîñòè âàøåãî ñåðâåðà.</p>
386                               
387                                </div>
388                </form>
389               
390                <?php }
391                                       
392                        if (isset($msg) && @$msg != ''){ 
393                                echo '<div style="margin-left:52px;_margin-left:0px">';
394                                echo '<h2>Îáíàðóæåíà îøèáêà!</h2>';
395                                echo '<p style="color:red">'.$msg.'</p>';
396                                echo '<p><a href="index.php">Ïîâòîðèòü ââîä äàííûõ</a></p>';
397                                echo '</div>';
398                        }
399                       
400                        if (isset($installed)){
401                                if($installed){
402                                        echo '<div style="margin-left:52px;_margin-left:0px">';
403                                        echo '<h2>Óñòàíîâêà çàâåðøåíà!</h2>';
404                                        echo '<div>';
405                                        echo '<p>Ñèñòåìà óñòàíîâëåíà è ãîòîâà ê ðàáîòå.</p>';
406                                        echo '<div style="background:url(/install/images/cron.png) no-repeat;padding-left:24px;margin-top:30px;margin-bottom:30px;">
407                            <div style="margin-bottom:6px;"><strong>Ñîçäàéòå çàäàíèå äëÿ CRON</strong></div>
408                            <div>
409                                Äîáàâüòå ôàéë <strong>/cron.php</strong> â ðàñïèñàíèå çàäàíèé CRON â ïàíåëè âàøåãî õîñòèíãà.<br/>
410                                Èíòåðâàë âûïîëíåíèÿ &mdash; 24 ÷àñà. Ýòî ïîçâîëèò ñèñòåìå âûïîëíÿòü ïåðèîäè÷åñêèå ñåðâèñíûå çàäà÷è.
411                                Îáû÷íî êîìàíäà, êîòîðóþ íóæíî äîáàâèòü â CRON, âûãëÿäèò òàê:
412                                <pre class="cron">  php -f /ïîëíûé/ïóòü/äî/ñàéòà/cron.php > /dev/null</pre>
413                            </div>
414                            <div>
415                                 ñëó÷àå çàòðóäíåíèé îáðàòèòåñü â òåõíè÷åñêóþ ïîääåðæêó õîñòèíãà.
416                            </div>
417                          </div>';
418                                        echo '<div style="background:url(/install/images/warning.png) no-repeat;padding-left:24px;margin-top:30px;margin-bottom:30px;">
419                            <div style="margin-bottom:6px;"><strong>Âíèìàíèå!</strong></div>
420                            Äî ïåðåõîäà íà ñàéò íåîáõîäèìî óäàëèòü êàòàëîãè "install" è "migrate"<br/>
421                            íà ñåðâåðå âìåñòå ñî âñåìè íàõîäÿùèìèñÿ â íèõ ôàéëàìè!
422                          </div>';
423                                        echo '<p style="font-size:18px"><a href="/">Ïåðåéòè íà ñàéò</a> | <a href="/admin">Ïåðåéòè â ïàíåëü óïðàâëåíèÿ</a></p>';
424                                        echo '<p>
425                            <a id="tutorial" href="http://www.instantcms.ru/articles/quickstart.html">Ó÷åáíèê äëÿ íà÷èíàþùèõ</a>
426                            <a id="video" href="http://www.instantcms.ru/video-lessons.html">Âèäåî-óðîêè</a>
427                          </p>';
428                                        echo '</div>';
429                                        echo '</div>';
430                                }
431                        }
432                ?>
433       
434                <div id="footer">
435                        <a href="http://www.instantcms.ru/" target="_blank"><strong>InstantCMS</strong></a> &copy; 2007-2011
436                </div>
437               
438        </div>
439        </td></tr></table>
440</body>
441</html>
Note: See TracBrowser for help on using the repository browser.