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

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

23.01.2013 283 comments » Views: 222,391

Website

В этом посте я опишу, настройку домена, создание базы данных, и простого скрипта с использованием 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++

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

Создаем 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) можете просто его скопировать отсюда:

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


Внимание: Код написанный ниже не будет работать на версиях PHP 7.0+, т.к. в этих версиях удалена поддержка семейства функций mysql_*. Для корректной работы, либо поставьте в настройках OpenServer-а версию PHP < 5.5, либо используйте код из этой статьи "Пример создания простого приложения на php и mysql 2018", где я рассказал, как работать с базой данных еще проще (не надо писать запросы), используя ORM Idiorm.


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

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

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

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

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

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

Урааа!!!!!

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

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

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

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

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

Ввиду того, что семейство функций mysql_* устарело, написал новый пост "Пример создания простого приложения на php и mysql 2018", там рассказал, как работать с базой данных еще проще (не надо писать запросы), используя ORM Idiorm.

Author: | Rating: 5/5 | Tags: , ,

283 comments.

Write a comment
  1. Иван Reply
    03.09.2022 в 3:11 pm
    Помогите пожалуйста написать БД для доски объявлений
    • Vitaliy Orlov Reply
      11.09.2022 в 10:57 am
      Привет, минимальная структура

      users
      - id
      - name
      - email
      - password

      categories
      - id
      - name

      adverts
      - id
      - category_id -> categories.id
      - user_id -> users.id
      - title
      - text
      - created_at
      - is_active
  2. Александр Reply
    16.02.2019 в 4:26 am
    Есть ли возможность задать несколько вопросов?
    • Vitaliy Orlov Reply
      18.02.2019 в 12:22 pm
      привет, пиши в комментариях
  3. Сергей Reply
    02.06.2018 в 9:20 pm
    У меня после всех манипуляций Open Server выдаёт в браузере:

    ( ! ) Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\OSPanel\domains\itrem\index.php on line 10
    ( ! ) Error: Call to undefined function mysql_connect() in C:\OSPanel\domains\itrem\index.php on line 10
    Call Stack
    # Time Memory Function Location
    1 0.1060 358000 {main}( ) ...\index.php:0
    Dump $_SERVER
    $_SERVER['REMOTE_ADDR'] =
    string '127.0.0.1' (length=9)
    $_SERVER['REQUEST_METHOD'] =
    string 'GET' (length=3)
    Dump $_SESSION
    $_SESSION['*'] =
    undefined
    Dump $_REQUEST


    И всё! Что не верно?
    • Vitaliy Orlov Reply
      03.06.2018 в 9:38 am
      В настройках Open Server нужно выбрать младшую версию php. Начиная с версии 7.0.0 семейство функций mysql_* было удалено. Им на замену пришли функции mysqli_* (i на конце) или pdo. Подробнее написано в справке.
  4. Сергей Reply
    04.11.2017 в 8:44 am
    Помогите пожалуйста,
    Создал сайт на Wordpress и Open Server, потом перенес его на VDS и начались проблемы.
    На Open Server не нашел пользователя сайта а на VDS он есть не пользователя базы данных а пользователя сайта. После переноса сайта на VDS Wordpress перестал обновляться и обновлять плагины.
    • Vitaliy Orlov Reply
      04.11.2017 в 4:01 pm
      Привет!

      Отвечу тут, но у тебя сильно специфичная ситуация, поэтому лучше создай отдельную ветку на форуме.

      1) Если под пользователем сайта, ты понимаешь пользователя который может войти на сайт через site.com/wp-admin, то всего скорее просто кто-то зарегистрировался. Удалить лишние учетки ты можешь через админку WP, раздел "Пользователи". Если ты имеешь ввиду пользователя которому принадлежат файлы сайта (обычно имя для входа в админку совпадает с этим пользователем), то это не относится к веб-серверу, а относится к операционной системе. Чтобы найти его в Windows надо зайти в свойства файла, затем на вкладку "Безопасность", там кнопка "Дополнительно" и там будет пункт "Владелец" (для созданных тобой файлов совпадает с именем входа в систему).

      2) Для того, чтобы WP обновлялся, надо зайти в админке WP в раздел "Консоль > Обновления" и там нажать кнопку "Проверить снова". Ниже этой кнопки будет надпись, что-то типа "Доступно обновление" или "У Вас свежая копия WP"

      Если останутся вопросы, пиши на форум, в отдельную ветку, твоя проблема всего скорее не относится к OpenServer.
  5. Сергей Reply
    27.10.2017 в 6:08 pm
    пишет Index/ of ...
    Что делать?
    • Vitaliy Orlov Reply
      28.10.2017 в 12:09 am
      Напиши подробнее, а лучше создай ветку на форуме с подробным описанием проблемы. Так будет тебе проще помочь.
  6. Инна Reply
    25.07.2017 в 11:28 pm
    Добрый вечер!
    Помогите, пож-та, понять в чем проблема. В браузере почему-то не выполняются команды, которые задаются в редакторе, т.е. надпись 'Hello world", и другие команды, как в вашем примере отображается так:
    >?php //phpinfo(); echo '
    Hello,world!

    '; echo print '
    Hello!

    ' echo 'Здравствуйте!'; /* Многострочный комментарий */

    Пробовала переключать ctrl+U - выводится код страницы, как в редакторе, может это тоже какой-то "режим".
    Операции (сложения/вычитание и прочее) тоже не выполняет, просто выводит, как в редакторе, только за исключением html кодов, таких как , . Их выполняет. Не могу найти нигде решение этой проблемы.
    • Vitaliy Orlov Reply
      26.07.2017 в 10:23 am
      В приведенном примере, не верно открыт тег php скрипта, надо так (угловая кавычка в другую сторону):

      <?php
      echo 'Hello world';
  7. Евгений Reply
    01.06.2017 в 7:22 am
    Здравствуйте.Подскажите что очерёдность установки
    Оpen Server -phpmyadmin или наоборот? Я установил open_server_5_2_6_ultimate на диск С.Создалась папка.Запустил -нажимаю на вход -phpmyadmin- и вижу от это http://SSMaker.ru/d09a3820/ -Как это лечиться? скачал phpmyadmin последней версии распокавал в папку домена и не чего не происходит.Как запустить Оpen Server и phpmyadmin? В какую папку распаковывать phpmyadmin?
    • Vitaliy Orlov Reply
      02.06.2017 в 9:32 am
      Привет,
      1) В комплекте с openserver-ом уже идем phpmyadmin, дополнительно его ставить не обязательно
      2) Если же нужна установка, то просто создаешь домен и разархивируешь туда файл скачанный с сайта phpmyadmin. Там есть нюансы по натсройкам, но минимально уже все будет работать.
      3) Для того, чтобы открыть phpmyadmin который ставится с openserver, в трее нажми на значок Openserver и там посмотри, будет что-то типа "Tools" или "Инструменты"
      4) В случае ошибки, как на твоем скриншоте, нужно выбрать более новую версию php, делается это в настройках Openserver, на вкладке "Модули" (см картинку #3 тут)
  8. Давид Reply
    29.05.2017 в 8:22 am
    пожалуйста помогите,не могу понять почему функция header(Location)не работает,выдает ошибку: заголовок уже задан,но я нечего не прописывал.
    • Vitaliy Orlov Reply
      29.05.2017 в 11:20 am
      header можно использовать только ДО отправки какого-либо контента в браузер, т.е.:

      <?php
      echo '123';
      header(..)
      будет ошибка, надо делать так

      <?php
      // php код
      header(..)
      echo '123';
      если все и так по второму варианту, то проверь два момента: перед <?php не должно быть пробела и кодировка файла должна быть UTF-8 Without BOM или ASCII
      • Давид Reply
        30.05.2017 в 9:29 am
        дело в том что utf8 без вом выдает закарючки,вопросики,а utf 8 header не принимает,да и я все сделал как в видео,он все равно не хочет.
      • Давид Reply
        30.05.2017 в 9:33 am
        я даже проверил файл localhost,поменял надпись 'он работает' на другую он сразу начал выдавать ошибку,а в нем как раз пример php,в начале стоит header.
      • Давид Reply
        30.05.2017 в 12:12 pm
        спс на этом примере получилось!!
      • Давид Reply
        30.05.2017 в 12:13 pm
        utf8 без вом надо было
        • Vitaliy Orlov Reply
          30.05.2017 в 12:17 pm
          Да, все правильно, "UTF-8 без BOM" (или на англ UTF-8 without BOM). Можешь в редакторе посмотреть, обычно можно поставить в опциях, создавать все новые файлы в UTF8 и открывать в UTF8. Например, есть такое в Notepad++. Один раз настраиваешь и все файлы создаются и открываются в правильном формате.
      • Давид Reply
        30.05.2017 в 12:14 pm
        но в большом коде где много связок"include"почему то не получается
        • Vitaliy Orlov Reply
          30.05.2017 в 12:20 pm
          возможно, где в инклудах, есть файл который либо выводит пробел, либо у него проблема с кодировкой - выход нужно искать где именно проблема, поочередно отключая или смотреть лог ошибок (или саму ошибку), там обычно пишется где был вывод сделан ранее.
          • Давид
            30.05.2017 в 12:27 pm
            создал отдельный файл setting.php туда закинул пароли базы данных,
            а в index.php прописал
            include_once 'setting.php';
            $CONNECT = mysqli_connect(HOST,USER,PASS,DB);а потом код предыдущий(header) выдает ошибку и отсылается почемуто на setting.php
          • Давид
            30.05.2017 в 1:02 pm
            очень странно,я нашел ошибку,все встало на свои места,просто не надо было setting отдельно ставить,функция include вызывала ошибку,пришлось пароли в index прописывать
          • Давид
            31.05.2017 в 1:23 pm
            а можете помочь,как сделать регистрацию на сайте через почту,на этом сервере??
          • Vitaliy Orlov
            02.06.2017 в 9:40 am
            Я тебе вкратце напишу алгоритм:
            - делаешь табличку пользователей в базе, например с такой структурой: id, email, password, confirmed
            - делаешь форму регистрации
            - при отправке данных из формы:
            - - - создаешь пользователя в таблице, например: 1, test@test.com, abc, 0
            - - - формируешь письмо, в котором будет ссылка вида site.com/?confirm=$id&hash=$hash , $id - это номер в базе, хеш уникальный код, сгенерировать его можно например функцией md($id+$passowrd)
            - - - отправляешь письмо, например функцией mail
            - при переходе по ссылке, ищешь пользователя с указанным id, и сверяешь хеш. Если совпадает, значит почта подтверждена, меняешь в базе confirmed с 0 на 1

            Вот это краткий алгоритм. Демонстрационный пример, написать времени нет. И еще просьба, по таким вопросам писать на форум. Там будет твоя личная ветка, где будет удобнее задавать вопросы по разработке.
          • Давид
            03.06.2017 в 10:06 am
            спасибо за помощь,буду знать теперь.
      • Давид Reply
        30.05.2017 в 12:21 pm
        создаю страницу с регистрацией,мне надо сделать защиту от входа пустого логина и пороля, с помощью
        if ($p1 == 1) $p1 = 'ошибка';
        else if ($p1 == 2) $p1 = 'подсказка';
        else if ($p1 == 3) $p1 = 'информация';
        $_SESSION['message'] = ''.$p1.': '.$p2.'';
        exit(header('Location:'.$_SERVER['HTTP_REFERER']));
        но в последней строке ехит почему то выдает ошибку
  9. DobriyZhuk Reply
    03.04.2017 в 5:56 pm
    Добрый день. Помогите, пожалуйста решить проблему. Установил 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 все равно безуспешно(((
    • Vitaliy Orlov Reply
      04.04.2017 в 12:52 pm
      Привет, ответил на форуме
  10. Евгений Reply
    28.03.2017 в 9:58 pm
    Здравствуйте, дело в том что захожу через 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 Reply
      29.03.2017 в 2:51 am
      Зайди вот сюда Open Server, список вкладок. Найди там скриншот №3 (вкладка "Модули").
      Там есть выпадающий список "PHP", выбери там версию выше 5.5, сохрани настройки и перезагрузи опенсервер.
      P.S. В эти настройки, можно попасть, нажав на красный флажок в трее и выбрав пункт "Настройки".
    • Виталий Reply
      05.03.2019 в 3:53 pm
      Здравствуйте ! Что нужно настроить что бы домен работал в локальной сети, а не только на ПК с опенсервером ? Сеть 3 ПК подключеные через роутер.
      • Vitaliy Orlov Reply
        05.03.2019 в 4:17 pm
        Привет, вот из справки

        OSPanel может работать в локальных сетях и сети Интернет как веб-сервер. Для работы в сети Интернет необходим статический(белый) IP адрес. Чтобы открыть доступ к серверу извне необходимо указать * в качестве IP адреса в настройках OSPanel, в этом случае доступ откроется сразу для всех сетей, к которым подключён ваш компьютер. Если вы хотите открыть доступ только для одной конкретной сети (например локальной), то укажите в настройках программы IP адрес выданный вашему компьютеру в этой сети.


        Т.е. надо зайти в настройки и указать чтобы OpenServer работал на IP адресе локальной сети. Т.к. у тебя комп за роутером, то с IP адресом можно не париться и указать * (работать на всех IP адресах). Далее, тебе надо на других компах прописать в hosts маппинг домен-ip, что-то типа: 192.168.0.50 mysite.loc www.mysite.loc . Либо, если роутер такое умеет (например роутеры Mikrotik), то добавить эти DNS записи туда.
  11. Сергей Reply
    15.02.2017 в 1:56 pm
    Доброе время, Виталий.
    Не могу подключить базы ни одним способом, включая твой. Весь инет уже облазил.
    Все сделано как в статье выше, но выводит:
    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 Reply
      15.02.2017 в 4:48 pm
      В ошибке написано, что php не знает о функции mysql_connect. Всего скорее, это связанно с тем, что ты используешь версию php 7, а в нем данный набор функций удален навсегда. Исправить можно, либо выбрав версию php ниже 7 в настройках OpenServer-а, либо использовать современные функции, которые пришли на замену. Например, вместо mysql_connect использовать mysqli_connect.
  12. Алексей Reply
    13.01.2017 в 6:35 am
    У меня пишет разными закорючьками что делать?
    ����� ���������
    ���������
    �� ���� ����������� � ����� ������
    �� ���� ����� ���� ������
    • Vitaliy Orlov Reply
      16.01.2017 в 8:26 pm
      1) Если это твоя страничка, измини в редакторе кодировку на UTF-8 Without BOM (например в Notepad++)
      2) Если не твоя страничка, тогда в браузере попробуй изменить кодировку на Windows-1251, UTF-8 или KOI8 всего скорее одна из них поможет.
      Затем, разберись почему страница не открывается в кодировке о которой думает браузер (чаще всего это UTF-8), возможно в странице отсутствует соответствующий meta тег (гугли "meta charset"), либо если это php скрипт, то неверно укзан заголовок (гугли "php header charset")
  13. Сергей Reply
    09.01.2017 в 6:46 am
    У меня при входе phpmyAdmin в браузере появляется надпись PHP 5.5+ is required.
    Currently installed version is: 5.3.29. Т.е. я не могу создать базу данных т.к. не появляется таблица с настройками
    • Vitaliy Orlov Reply
      09.01.2017 в 5:30 pm
      Привет, есть несколько вариантов
      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) и попробовать работать в ней.
  14. Александр Reply
    01.11.2016 в 8:51 pm
    Был на форуме. Не понравилось. Поддержки нет. А вопрос то всего был как сделать свой сервер, вместо нескольких программ воспользоваться одним Open Server.
    • Vitaliy Orlov Reply
      01.11.2016 в 9:35 pm
      На форуме, как и тут, я не отвечаю на просьбы написать мануал по интересующей тебя тематике. Попробуй поискать информацию самостоятельно, изучить готовые решения и реализации. Попробуй сам настроить. А вот когда столкнешься, с конкретной проблемой, тогда сформулируй её и создай тему, которая будет заключать в себе конкретный вопрос: описание того что ты хотел сделать, что сделал и где происходит ошибка и в чем она заключается.
  15. LILIYA Reply
    15.08.2016 в 6:15 pm
    Наверное, я не в ту тему написала

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>


Links to this post:
  1. Pingback from Пример создания простого приложения на php и mysql 2018 04.07.2018