Многие из вебмастеров кто сталкивался с установкой различных PHP скриптов для создания своего сайта, а так же известных CMS движков, наверное, заметили, что для облегчения установки и запуска используется автоматический
установщик install. Так что в этом уроке мы разберёмся с тем как он устроен и как самому создать простой установщик install для PHP движков.
1. Начнем с самого простого создаем css и заполняем :body { /* Общий стиль страницы */background: #101010; /* Цвет фона */}a { /* оформление тэг "a" */color: #fff;/* Цвет */}h5 { /* оформение тэга "h5" */font: 16px Arial, Verdana, Tahoma, sans-serif; /* Настройка шрифта */color: #fff; /* Цвет шрифта */margin: 0 auto 40px;padding: 0;text-align: center; /* Размещение по центру */width: 80%; /* Ширина */}h6 { /* Оформление тэга "р6" */font: 12px Arial, Verdana, Tahoma, sans-serif; /* Настройка шрифта */color: #fff; /* Цвет шрифта */margin: 0 auto 40px;padding: 0;text-align: center; /* Размещение по центру */width: 80%;/* Ширина */}h2 {/* Оформление тэга "р2" */font: 28px tahoma, verdana, arial, sans-serif;/* Настройка шрифта */font-weight: bold;color: #84e03a;/* Цвет шрифта */margin: 0;padding: 0 0 10px 0;}div { /* Оформление БЛОГа */border: 2px solid #1d1d1d; padding: 10px;font: 12px Verdana, Tahoma, Arial, sans-serif;/* Шрифт */width: 600px;/* Ширина*/margin: 10px auto;color: #fff;/* цвет */}/* Далее все по примеру выше :) Все просто учим CSS если не понятно что то */label, input {font: 14px Verdana, Tahoma, Arial, sans-serif;}label {display: block;width: 100px;float: left;color: #fff;}input {border: 0;padding: 2px;}input#install {display: block;background-color: #101010;color: #84e03a;font: 32px Verdana, Tahoma, Arial, sans-serif;margin: 0 auto;text-decoration: underline;}input#username, input#password, input#email, label {margin-top: 10px;}input#username {clear: right;}div.error {color: #ff0000;text-align: center;}div.success {color: #84e03a;text-align: center;}
Как видите все очень просто обычное оформление CSS быть мастером не надо чтоб оформить installer , главное фантазия.
2. Далее создадим install.phpШаг 1 - создаем шапку
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><!-- Скрипт проверки принятия соглашения / лицензии --><script type="text/javascript">function agreeForm(f) { // Если поставлен флажок, снимаем блокирование кнопки if (f.agree.checked) f.install.disabled = 0 // В противном случае вновь блокируем кнопку else f.install.disabled = 1 } </script><!-- Кодировка --><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><!-- Название установщика --><title>Установка</title><!-- Подключаем CSS (оформление) --><link rel="stylesheet" type="text/css" href="1.css">
Далее проверка существует ли файл конфигурации , если скрипт обнаружит config.php в указаной вами дирриктории то попросит удалить его чтоб продолжить! (если конфигураций нет скрипт продолжит установку)
*Это не обязательно для установщика но можно сделать, как создавать дополнительные поля расскажу позже.
<?//Если файл конфигураций пресуцтвует то просим его удалить :D$filename = 'conf/config.php';/* Папка/Файл.php */if (file_exists($filename)) { print "<div><h2>Ошибка</h2><h5>Для того что бы продолжить установку удалите $filename и <a href=install.php >обновите</a> страницу.</h5></div>";} else {?>
Можно создать блоги (О скрипте / Конфигурации / Соглашение)
<body><h5> Лого </h5><?phpif(!$_GET['go']) {?><form method="post" action="install.php?go=true"><!--Форма ( необходимо для шага 2)--><div><h2>О скрипте</h2><h6>Текст в блоге</h6> </div><div><h2>Конфигурации</h2><table><tr> <td align=right>Название скрипта</td><td align=left><input type=text name=sitename value=<?=Sitename?>></td></tr> <tr><td align=right>Хост</td><td align=left><input type=text name=mysql_host value=<?=Localhost?>> </td></tr> <tr><td align=right>Логин</td><td align=left><input type=text name=mysql_user value=<?=mysql_user?>></td></tr> <tr><td align=right>Пароль</td><td align=left><input type=password name=mysql_password> </td></tr> <tr><td align=right>База</td><td align=left><input type=text name=my_database value=<?=my_database?> > </td></tr><tr><td align=right>Префикс</td><td align=left><input type=text name=SQL_PREFIX value=<?=KFG_?> > </td></tr> </table></div><div><h2>Лицензия</h2><p><center><textarea cols="60" rows="4" readonly>Нарушите авторские права и ваша душа наша!</textarea></center></p> <p><input type="checkbox" name="agree" onclick="agreeForm(this.form)"> Я согласен</p> <p> <input type="submit" name="install" value="Далее" disabled> <input type="submit" value="Обновить" disabled> </div></form>
Создание файлов и заливание в базу Установка...echo 'Файл config.php '; $fp = fopen ("conf/config.php","w"); //Желательно не менять , но если заменили то ниже там где заполнение бд укажите путь к конфигуflock($f,LOCK_EX); fputs($fp,"nr"); flock($f,LOCK_UN); fclose($fp);echo '<font color="green">создан</font>';// Создадим файл .htaccess и укажем в нем// что по умолчанию нужно открывать файл index.phpecho 'Файл .htaccess ';$f=fopen('.htaccess','w');flock($f,LOCK_EX);fputs($f,"DirectoryIndex index.phpn");flock($f,LOCK_UN);fclose($f);echo '<font color="green">создан</font>';
Думаю с созданием файлов все ясно :) Теперь к базам!
require 'conf/config.php'; //путь к конфигу указаному при создании файла$link = mysql_connect($mysql_host , $mysql_user, $mysql_password ); //конектимся к DBmysql_select_db($my_database);//Начинаем заполнять базы$table_messages = 'CREATE TABLE `'.$SQL_PREFIX.'Название базы` ( `recipient` text, `sender` text, `message` text, `type` text, `stamp` text, `id` bigint(20) unsigned NOT NULL auto_increment, UNIQUE KEY `id` (`id`) );';if(!mysql_query($table_messages)) {if(mysql_errno() == 1050) {print "Table '".$SQL_PREFIX."messages' уже существует! Удалите ее или смените префикс базы.n";$problem = true;} else {print("[b]A MySQL error occured:[/b] (" . mysql_errno() . ") " . mysql_error() . "n");$error = true;}} else {mysql_query('ALTER TABLE `'.SQL_PREFIX.'messages` CHANGE `message` `message` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL');print "Table '".SQL_PREFIX."testbase' added successfully!n";}if ($maxBuddyIconSize > 0) {if (trim(substr(sprintf('%o', fileperms('./buddyicons/')), -4)) != 777) {$error = true;print "[b]Права:[/b]: CHMOD buddyicons/ to 0777[/b]";} else {print "Вы должны иметь права доступа!/";}}mysql_close();
Далее завершающие шаги установки это проверка файлов и папок на сервере (для коректной работы должны быть все!)<div><h2>Проверка файлов...</h2><h5>Файлы <BR></h5><?$filename = 'conf/config.php'; //Путь и файл который проверяемif (file_exists($filename)) { print "Файл <b>$filename</b> существует"; //Если найден} else { print "Файл <b>$filename</b> // Если не найден НЕ существует";}Echo '<BR>';$filename = 'conf/function.php';//Путь и файл который проверяемif (file_exists($filename)) { print "Файл <b>$filename</b> существует"; //Если найден} else { print "Файл <b>$filename</b> // Если не найден НЕ существует";}Echo '<BR>';?><h5>Папки</h5><?php$catname = 'conf'; //Название папкиif (is_dir("$catname")) { print "Папка <b>$catname</b> существует"; //Если найдена} else { print "Файл <b>$catname</b> // Если не найден НЕ существует";}Echo '<BR>';$catname = 'scripts'; // название папкиif (is_dir("$catname")) { print "Папка <b>$catname</b> существует"; //Если найдена} else { print "Файл <b>$catname</b> // Если не найден НЕ существует";}Echo '<BR>';?></div>
Теперь завершающий шаг вывод об окончании установки :) (или ошибка или успешно!)<div class="<?php if($error) print 'error'; else print 'success'; ?>"><h2>Установка окончена!</h2><?phpif($error)print 'Ошибка при установки!';elseprint 'Установка движка окончена! <a href="index.php">главная</a> <a href=admincp.php>Админ центр</a>';?></div><?php } ?><?php } ?></body></html>
Отзывы