Главная > MySQL | OpenServer | PHP | Базы данных | Сервера > Open Server, создание домена, базы данных и простого приложения на php

Open Server, создание домена, базы данных и простого приложения на php

23.01.2013 251 комментарий » Просмотры: 156 839
 

В этом посте я опишу, настройку домена, создание базы данных, и простого скрипта с использованием Open Server - платформы WAMP для веб разработчика. Итак поехали..

Давайте создадим новый тестовый домен, базу данных и подключимся к ней. Для этого, нажимаем правой кнопкой на флажок в трее, выбираем пункт "Папка с сайтами", открывается папка, в которой хранятся все данные по нашим доменам.

По-умолчанию путь этой директории: C:\Progr\OpenServer\domains\

Папка с доменами

Папка с доменами

Те кто работал до этого на Denwer-e не должны испытать трудностей с пониманием структуры. Тем кто не работал объясню: это корневая папка, в которой хранятся другие папки, название которых совпадает с именем домена по которому мы будем заходить.

Например, сразу после установки Open Server, мы можем зайти по адресу http://localhost

Проверка работы Open Server-а

Проверка работы Open Server-а

Так вот, скрипты которые запустятся, находятся именно в папке:
C:\Progr\OpenServer\domains\localhost\

Папка со скриптами домена localhost

Папка со скриптами домена localhost

 

Теперь мы хотим создать домен http://itrem, так же хотим создать базу itrem, подключиться к ней и выполнить какие-нибудь SQL команды.

Поехали по-порядку:

а) Создаем папку C:\Progr\OpenServer\domains\itrem\, она будет являться нашим доменом, т.е. http://itrem

Добавляем папку itrem

Добавляем папку itrem

б) В ней создаем файл index.php открываем его в редакторе, например в Notepad++, который можно запустить из контекстного меню Open Server-а, раздела "Офис"

Запуск Notepad++

Запуск Notepad++

и пишем в нем следующий, проверочный код

<?php
 echo 'Hello world';
Создаем index файл в папке домена

Создаем index файл в папке домена

в) Перезапускаем сервер

Перезапуск Open Server-а

Перезапуск Open Server-а

в случае успешного запуска, в разделе "Мои сайты", вы увидите наш сайт itrem

Список доступных доменов

Список доступных доменов

Если же Вам не удалось увидеть список сайтов после проделанных манипуляций, попробуйте следующий вариант запуска: Open server, ограничение на работу с файлом hosts

г) Проверяем работу сайта в броузере, заходим по адресу: http://itrem

Проверка работы домена itrem в броузере

Проверка работы домена itrem в броузере

Обратите внимание, что в некоторых броузерах (например Chrome) необходимо задавать адрес включая название протокола ( т.е. http://itrem, а не itrem) иначе он просто перекинет вас на поиск гугла, с именем домена в качестве ключевого слова.

д) Входим в phpmyadmin.

Он находится по адресу: http://localhost/openserver/phpmyadmin/index.php (так же он доступен из контекстного меню OpenServer-а, пункт "Дополнительно>PhpMyAdmin")

Запуск phpMyAdmin

Запуск phpMyAdmin

Для авторизации используем такие данные:

  • пользователь/пароль = root / -пустой пароль-
  • пользователь/пароль = mysql / mysql

Можно использовать оба варианта, но я бы рекомендовал второй, а именно mysql/mysql, т.к. для супер пользователя не применяются некоторые настроенные конфиги, например не устанавливается автоматически  кодировка соединения с базой, поэтому при его использовании нужно дополнительно, в скриптах писать, что-то типа: mysql_query('SET NAMES "utf8"') либо использовать php функцию: mysql_set_charset('utf8').

Связанно это с тем, что суперпользователям не устанавливается кодировка, через параметр init-connect, который обычно прописывается в секции [mysqld], конфигурационного файла my.cnf (подробнее тут: 10.1.5. Configuring the Character Set and Collation for Applications). В данный момент именно так настроен OpenServer.

Так же, я писал пост, про то, как убрать авторизацию на совсем, пост тут: Openserver, phpmyadmin автовход

е) Создаем базу itrem

Создаем таблицу в phpMyAdmin

Создаем таблицу в phpMyAdmin

ж) Создаем таблицу messages

Создаем таблицу messages

Создаем таблицу messages

следующим шагом, указываем какие нам нужны поля (часть столбцов, я пропустил там оставляем значения по-умолчанию)

Создание структуры таблицы messages

Создание структуры таблицы messages

нажимаем Сохранить.

Если Вам проще будет выполнить SQL код (на вкладке SQL) можете просто его скопировать отсюда:

# создаем базу
CREATE DATABASE `itrem`;

# переключаем на базу
USE `itrem`;

# создаем таблицу
CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `message` varchar(255) NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ж) пишем такой код, в файл C:\Progr\OpenServer\domains\itrem\index.php

Обратите внимание на кодировку файла, она должна быть "UTF-8 без BOM", проверить в Notepad++ это можно в верхнем меню, в разделе "Кодировки". При создании этого поста, я попался в эту ловушку, и долго не мог понять в чем проблема, подробнее тут: Openserver, MySQL, Notepad++ и пропадающая кириллица

<?php
	header('Content-Type: text/html; charset=utf-8');

	$db_host = 'localhost';
	$db_username = 'mysql';
	$db_password = 'mysql';
	$db_name = 'itrem';
	$db_charset = 'utf8';

	$is_connected = @mysql_connect($db_host, $db_username, $db_password);
	$is_db_selected = $is_connected ? @mysql_select_db($db_name) : FALSE; 

	$errors = array();

	if (!$is_connected) $errors[] = 'Не могу соединиться с базой данных';
	if (!$is_db_selected) $errors[] = 'Не могу найти базу данных';

	if (!empty($_POST['f_submit']) AND $is_connected AND $is_db_selected)
	{
		if (empty($_POST['f_text']) OR !trim($_POST['f_text']))
		{
			$errors[] = 'Не введен текст сообщения!';		
		}
		else
		{
			if (mb_strlen(trim($_POST['f_text']), 'utf-8')>255)
			{
				$errors[] = 'Текст сообщения не может превышать 255 символов!';
			}
			else
			{
				$sql = 'INSERT INTO `messages` SET
							`message`="'.mysql_real_escape_string(trim($_POST['f_text'])).'",
							`date`=NOW()
				';

				$result = mysql_query($sql) 
					  or die('Query error: <code>'.$sql.'</code>');

				Header('Location:?');
			}
		}
	}
?>
<html>
<head>
  <style type="text/css">
	body {font-size:11px; font-family:Arial;}
	.errors {color:red;}
	div.message {padding-bottom:5px; margin-bottom:5px; border-bottom:1px dotted silver;}
	div.message .date {color:blue;}
	div.message .text {color:green;}
  </style>
</head>
<body>
	<form action="?" method="post">
		Текст сообщения <input type="text" name="f_text" value="" />
		<input type="submit" name="f_submit" value="Отправить"/>
	</form>
<?php	

	if (!empty($errors))
	{
		echo '<hr /><ul class="errors">';
		foreach ($errors as $err)
		{
			echo '<li>'.htmlspecialchars($err).'</li>';
		}
		echo '</ul>';
	}

	if ($is_connected AND $is_db_selected)
	{

		$sql = 'SELECT * FROM `messages` ORDER BY `id` DESC';
		$result = mysql_query($sql) 
				  or die('Query error: <code>'.$sql.'</code>');
		if ( is_resource($result) ) 
		{
			echo '<hr />';
			while ( $row = mysql_fetch_assoc($result) )
			{
			?>
				<div class="message">
					<span class="date"><?=date('d.m.Y',strtotime($row['date']))?></span> -
					<span class="text"><?=htmlspecialchars($row['message'])?></span>
				</div>

			<?php
			}
		}
	}

?>
</body>
</html>

Лучше использовать MySQLi, но в большинстве учебников пишут про работу именно с старыми MySQL функциями, поэтому тут используем именно такой код. Ознакомиться с MySQLi после изучения MySQL функций, можно, например тут: MySQLi раскладываем все по полочкам. У кого будет желание, перепишите этот скрипт на MySQLi, выложите на pastebin и пришлите мне ссылочку в комментарии - добавлю в пост с указанием вашего авторства :).

з) проверяем в броузере

Тестовый скрипт в броузере

Тестовый скрипт в броузере

На этом наш маленький тест закончился: мы создали новый домен, базу данных, таблицу в ней, а так же написали скрипт, который работает с этой базой данных.

Урааа!!!!!

--[добавлено 10.02.2014]--

Записал небольшое видео к данному уроку,  смотреть "на весь экран":

--[добавлено 03.08.2016]--

Добавил пост с скриншотами всех вкладок одной из последних версия Openserver: Список вкладок Openserver

Автор: | Теги: , ,

Важно

У нас заработал ФОРУМ. Все вопросы, которые не касаются статьи, а так же вопросы по конкретно вашему случаю нужно задавать и обсуждать именно там, в разделе "Помощь пользователям".

251 комментарий

Написать свой
  1. DobriyZhuk Ответить
    03.04.2017 в 5:56 пп
    Добрый день. Помогите, пожалуйста решить проблему. Установил OpenServer, флажок загорелся зеленый, кидаю любой сайт в корневую папку OpenServer или domains, сайты не открываются, пробовал по вашему примеру сделать пробный itrem, безуспешно. Выдается ошибка:
    Object not found!

    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

    If you think this is a server error, please contact the webmaster.

    Error 404

    localhost
    Apache
    Пробовал в hostе внемти данные сайты с ip 127.0.0.1 все равно безуспешно(((
  2. Евгений Ответить
    28.03.2017 в 9:58 пп
    Здравствуйте, дело в том что захожу через OS - Дополнительно - phpMyAdmin - і мне открывается только (http://127.0.0.1/openserver/phpmyadmin/index.php) а в нем единственное что показывает, так это только этот текст: PHP 5.5+ is required.
    Currently installed version is: 5.3.29
    . Подскажите пожалуйста как решить эту проблему..
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      29.03.2017 в 2:51 дп
      Зайди вот сюда Open Server, список вкладок. Найди там скриншот №3 (вкладка "Модули").
      Там есть выпадающий список "PHP", выбери там версию выше 5.5, сохрани настройки и перезагрузи опенсервер.
      P.S. В эти настройки, можно попасть, нажав на красный флажок в трее и выбрав пункт "Настройки".
  3. Сергей Ответить
    15.02.2017 в 1:56 пп
    Доброе время, Виталий.
    Не могу подключить базы ни одним способом, включая твой. Весь инет уже облазил.
    Все сделано как в статье выше, но выводит:
    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\OpenServer\domains\itrem\index.php:10 Stack trace: #0 {main} thrown in C:\OpenServer\domains\itrem\index.php on line 10
    Это как раз подключение $is_connected = @mysql_connect($db_host, $db_username, $db_password);
    Кроме Open Server нихрена не установлено. Может дополнительно чет поставить надо?
    Заранее признателен за помощь!
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      15.02.2017 в 4:48 пп
      В ошибке написано, что php не знает о функции mysql_connect. Всего скорее, это связанно с тем, что ты используешь версию php 7, а в нем данный набор функций удален навсегда. Исправить можно, либо выбрав версию php ниже 7 в настройках OpenServer-а, либо использовать современные функции, которые пришли на замену. Например, вместо mysql_connect использовать mysqli_connect.
  4. Алексей Ответить
    13.01.2017 в 6:35 дп
    У меня пишет разными закорючьками что делать?
    ����� ���������
    ���������
    �� ���� ����������� � ����� ������
    �� ���� ����� ���� ������
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      16.01.2017 в 8:26 пп
      1) Если это твоя страничка, измини в редакторе кодировку на UTF-8 Without BOM (например в Notepad++)
      2) Если не твоя страничка, тогда в браузере попробуй изменить кодировку на Windows-1251, UTF-8 или KOI8 всего скорее одна из них поможет.
      Затем, разберись почему страница не открывается в кодировке о которой думает браузер (чаще всего это UTF-8), возможно в странице отсутствует соответствующий meta тег (гугли "meta charset"), либо если это php скрипт, то неверно укзан заголовок (гугли "php header charset")
  5. Сергей Ответить
    09.01.2017 в 6:46 дп
    У меня при входе phpmyAdmin в браузере появляется надпись PHP 5.5+ is required.
    Currently installed version is: 5.3.29. Т.е. я не могу создать базу данных т.к. не появляется таблица с настройками
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      09.01.2017 в 5:30 пп
      Привет, есть несколько вариантов
      1) Если используешь Openserver, зайди в настройки и выбери версию PHP > 5.5
      2) Используй вместо phpmyadmin - Adminer (https://www.adminer.org):
      - Создаешь папку, например www/adminer/
      - Скачиваешь туда файлик с сайта и называешь его index.php
      - заходишь по адресу: site . com/adminer/index.php
      - вводишь имя пользователя базы и пароль
      3) Если пробуешь это сделать у себя на ПК и у тебя Windows, можешь скачать программу HeidiSQL(http://www.heidisql.com) и попробовать работать в ней.
  6. Александр Ответить
    01.11.2016 в 8:51 пп
    Был на форуме. Не понравилось. Поддержки нет. А вопрос то всего был как сделать свой сервер, вместо нескольких программ воспользоваться одним Open Server.
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      01.11.2016 в 9:35 пп
      На форуме, как и тут, я не отвечаю на просьбы написать мануал по интересующей тебя тематике. Попробуй поискать информацию самостоятельно, изучить готовые решения и реализации. Попробуй сам настроить. А вот когда столкнешься, с конкретной проблемой, тогда сформулируй её и создай тему, которая будет заключать в себе конкретный вопрос: описание того что ты хотел сделать, что сделал и где происходит ошибка и в чем она заключается.
  7. LILIYA Ответить
    15.08.2016 в 6:15 пп
    Наверное, я не в ту тему написала

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>