Меню Рубрики

Интернет магазин на php как написать

Пишем интернет магазин на php | php скрипт интернет магазина

Здравствуй уважаемый читатель блога LifeExample, в связи с моим не высоким опытом в современных web технологиях, и великим желанием его наверстать, предлагаю тебе дорогой читатель понаблюдать за процессом моего обучения. С публикацией данной статье о том как собственноручно написать интернет магазин, я начинаю цикл статей уроков, каждый из которых не только расскажет о конкретном модуле и скрипте интернет магазина, но и познакомит нас с новыми технологиями веб программирования.

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

Забегая вперед скажу, что у меня получилось реализовать задуманное, и как результат хочу представить вашему вниманию проект Moguta.CMS, который развился из цикла моих уроков.

В первой части мы поставим себе импровизированную, но востребованную задачу (написать php скрипт интернет магазина), и выделим некоторый ряд подзадач к ней.

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

Уже написанные уроки с готовыми php скриптами интернет магазина:

Лирическое отступление. (Ленивым можно не читать)

Раньше люди ходили на заводы работали на государство, приносили домой деньги и все были довольны, пока в тяжелые годы после перестройки не произошло разделение рабочего социального слоя на «Коммерсантов» и «Работяг».

КОММЕРСАНТ (от франц. commercant) — лицо, занимающееся частной торговлей, коммерцией, осуществляющее торговое предпринимательство.

В результате такого разделения простые люди стали работать на дядю коммерсанта, или как принято теперь на Бизнесмена. Многие хотели также открыть собственное дело и работать на себя, но далеко не у всех были возможности. В настоящий момент времени желание открыть свое дело, наконец пересеклось с возможностью и любой жизненный обыватель может за один день получить статус бизнесмена. Возможно, вы уже догадались, что говорю я о бизнесе в интернете, а именно об интернет магазине.

Постановка задачи:

Необходимо, написать платформу для валидного интернет магазина отвечающего запросам потребителя.
Платформа должна включать в себя:

  1. Две части интерфейса: публичную для пользователей, и административную для владельца магазина.
  2. Возможность хранить и изменять информацию о товарах в базе данных.
  3. Предоставлять потребителям форму оформления заказа.
  4. Публичная часть должна изменяться без перезагрузки страницы, в соответствии с технологией AJAX.

Я считаю, что при выполнении поставленных подзадач, можно будет ознакомиться с престижными технологиями нашего времени.

Технологии, которые должны быть разобраны в результате выполнения задачи:

  1. Шаблон программирования MVC. (Перейти к разделу статьи о MVC)
  2. JQuery (Перейти к разделу статьи о JQuery)
  3. AJAX (Перейти к разделу статьи о AJAX)

Готовым решением поставленной задачи будет являться, некая пародия на cms систему, отвечающая требованиям простенького интернет магазина. Все разработанные php скрипты интернет магазина будут выложенны в общий доступ.

Части статей я буду публиковать по мере изучения материала, надеюсь тебе читатель будет интересно писать интернет магазин на PHP, собственными силами.

Скачать скрипт интернет магазина можно будет частями, по мере публикации уроков.

Источник статьи: http://lifeexample.ru/php-primeryi-skriptov/pishem-internet-magazin-na-php.html

Делаем простейшее подобие интернет-магазина.

Хотя, конечно, вернее будет назвать это «система заказа товаров на сайте».
Но, глядя на сайты многочисленных российских фирм, которые работают
именно по такому принципу (www.dostavka.ru, www.depo.ru, www.wstore.ru),
мы тоже с пафосом назовем набор простеньких скриптов «ИНТЕРНЕТ-МАГАЗИН».
Что для этого потребуется: любой web-сервер, поддерживающий работу с cgi.
Вполне подойдет apache, eserv, pws. Установленный php версий 3.0.х — 4.0.х,
установленный сервер баз данных mysql (хотя, не имеет значения какой именно —
но этот пример написан исходя из того, что установлен именно mysql).
Платформа не имеет особого значения. Это будет работать и на win32, и на unix.
Что мы хотим получить: чтобы пользователи, путешествуя по нашему сайту,
могли заказать интересующие их товары, и чтобы этот заказ попал к нам в руки.
А дальше уже начинается обычная работа менеджеров.
Определим задачи:
1) Каждый пользователь при заходе на сайт должен получить уникальный идентификатор.
Мы же должны знать кто именно заказывает товары?
2) Для каждого пользователя у нас должна хранится виртуальная «корзина»,
где будет учитываться что заказано и в каком кол-ве.
3) В конце концов, весь заказ отправляется по e-mail менеждеру (с информацией кто, когда,
что и сколько заказал) и самому пользователю сделавшему заказ.

Делаем таблицы для базы данных товаров. Здесь нужна оговорка — идеальный случай,
если у вас каждый товар имеет свой уникальный код.
По всем правилам именно так и должно быть.
У вас не так? Сделайте поле auto_increment — сильно облегчите жизнь.
Вообщем, будем счиатать что с базой товаров у Вас все ок.
Для определенности, рассмотрим самый простой случай — у вас всего одна таблица с
примерно такой структурой:

Но никакой разницы принципиальной нет, конечно же.
1) Делаем файл, в котором у нас каждому пользователю присваивается идентификатор:

Этим мы устанавливаем файл cookie с именем cookie_tmp, значением $uid
и временем жизни 1 неделя с настоящего момента.
Этот файл вставляем ДО вывода ЛЮБЫХ тэгов html на все (или на какие надо)
страницы нашего сайта:

Если Вас не прельщает использование файлов cookie можно таскать
этот самый $uid по всему сайту через строку запроса или скрытые поля формы…

2) Делаем таблицу для хранения «корзины» заказов:

Поле activated пригодится для проверки когда была добавлена запись в таблицу
и удаления, если, к примеру, это произошло больше недели назад.

2.1) Делаем файл который добавляет в эту нашу таблицу информацию:

2.2) С учетом этого, теперь наш файл который выводит информацию
из базы данных выглядит примерно так:

2.3) Делаем файл basket.php3 — он у нас ответственный за добавление записей
в корзину и просмотр этой корзины:

3) Теперь осталось сформировать текст письма:

4) … и отправить письма (клиенту и менеджеру)
Да, необходимый комментарий. Я на первой странице своего сайта
указывал что это просто СОВЕТЫ, а никак не готовые решения.
И что необходимо почитать кое-что еще прежде чем браться за написание.
В данном случае, я намекаю на статью «приемы безопасного программирования на php».
Вот посмотрите листинг следующего файла и прочитайте то,
о чем я говорю — сразу станет ясно где дыра…

Ну что? Разумеется, опасность в том, что этому скрипту можно подсунуть
ЛЮБЫЕ данные и он их отправит спокойно..
Выход: не пересылать с предыдущей страницы содержимое заказа,
а формировать его непосредственно в этом скрипте.
Вообще, надо стараться таскать за собой как можно меньше данных.
Также, НИКОГДА не повредит проверка того, с какой страницы пришел запрос.
5) Все. Мы получили все что хотели. Теперь осталось только сделать функцию
которая будет чистить таблицу shop_tmp от старых заказов. Но это уже сами.

6) Перед всеми операциями с базой данных вызывается файл
для соединения с базой данных такого вида:

ps. Еще раз повторяю — все что здесь написано я проверил —
ЭТО работает. Если у вас не так — вы просто что-то неправильно сделали…
pps. По просьбам трудящихся, дописан пункт 4.
И немного поправлен пункт три..

Источник статьи: http://www.internet-technologies.ru/articles/delaem-prosteyshee-podobie-internet-magazina.html

Создание магазина PHP: разработка торгового функционала

От автора: недавно поспорил со знакомым программистом. Я ему «талдычу», что не все товары можно продавать через интернет. Например, горячие пирожки или свежее молоко. Потому что выпечка к моменту приобретения остынет, а молоко скиснет. Но разработчик настаивает на своем: мол, главное правильный магазин «построить». Вот так в споре и родилась тема этой статьи – создание магазина PHP.

Немного «опалим» крылья

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

Тем не менее, я постараюсь показать на практическом примере основные принципы создания динамического ресурса с уклоном на коммерческую специализацию. Сегодня мы рассмотрим, как создать слайдер товаров. При этом загрузка всех данных о товаре будет происходить из базы данных.

Данный функционал является основным средством для отображения ассортимента товаров, поэтому создание интернет магазина на языке PHP немыслимо без его «присутствия». Кроме этого рассматриваемый сегодня пример иллюстрирует на практике принцип реализации взаимосвязи MySQL и PHP. Именно тут чаще всего «оступаются» начинающие программисты.

Что будем создавать

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Мы создадим с вами слайдер товаров для фруктовой интернет-лавки. Конечно, я сомневаюсь в успешности такого проекта, но нас интересует другая сторона процесса – реализация. При наведении на изображение товара выводится его краткое описание. А при нажатии по «фрукту» мышей его изображение увеличивается.

Сразу попрошу дорогих профессионалов не судить строго «топорность» данного примера. Главное – это познакомить новичков с принципами создания интернет-магазина. На основе приведенного примера можно реализовать и другие составные части ресурса: корзину, динамичность сайта, создание формы обратной связи на PHP и т.п.

Код примера с пояснениями

Всего в нашем проекте будет 4 файла и папка, в которой мы сохраним изображения товаров.

Источник статьи: http://webformyself.com/sozdanie-magazina-php-razrabotka-torgovogo-funkcionala/

🔨 Как создавать интернет магазин. Разработка с нуля.

Если Вы попали на этот сайт и ищите разработчика, то Вы попали не по адресу, данный сайт посвящен обучению программистов, а статья — научить программистов делать качественные интернет-магазины.

Если у Вас ещё нет минимальной базы знаний, то добро пожаловать на базовый курс, где Вы получите этот самый минимальный уровень. После прохождения первого уровня у Вас уже будет минимальная техническая база, осталось лишь знания все объединить изучив «Как создавать интернет магазин». Идеально же пройти и оба курса второго уровня моей школы, но не обязательно. Данную статью я бы рассматривал как инструкцию, техническое задание на создание магазина без кода, код каждый напишет самостоятельно. И самое важное, это не «учебник для начинающих», а полноценная профессиональная статья предназначенная не только новичкам в помощь, но и высокой квалификации гуру. Итак, приступим:

Создание интернет-магазинов процесс не очень сложный, но имеет множество интересных деталей, из-за чего создавать сайт можно как 1 неделю сделав всё на низком уровне без должного функционала, так и работать до выпуска первой версии 3 месяца, а уже после дорабатывать, как поступили разработчики rozetka.com.ua.

Создание интернет магазина на базе готовой CMS

Быстрый и хороший способ получить готовый интернет магазин — купить готовую CMS (созданный интернет магазин сторонними разработчиками), где Вашей задачей будет: установить в несколько кликов мышкой, запустить и наслаждаться готовым сайтом. В CMS на подобии 1C-Bitrix, Amiro, OpenCart (свежий рейтинг CMS: http://www.ratingruneta.ru/cms/shop/) встроен весь базовый функционал, но любые доработки будут намного сложнее, чем в случаях самостоятельной разработки, так как Вам необходимо будет не только дописать этот сам функционал, но и разобраться как устроен базовый.

Объем необходимых знаний для штамповки сайта на любой CMS достаточно большой, допустим Bitrix создал целую школу: школу обучения CMS 1C-Bitrix. Если у Вас уже есть огромный опыт работа в Битриксе, допустим, то Вы без проблем сможете создавать новые интернет магазины любой сложности, но вот если их нет, то Вы так же много потратите время сопоставимое с созданием самостоятельно подобной сложности сайта. Хочу заметить, что именно самостоятельная разработка интернет магазина распространена среди любителей FrameWork Yii, Zend, Laravel по той причине, что толковых готовых CMS на базе данных фреймворков нет!

Самостоятельное создание магазина

Каталог товаров:

Одна из самых объемных тем. Если у нас простой магазин без разделения на категории, то создать простую таблицу `products` и поместить в неё товары. Если же появляются категории, то нам обязательно необходимо создавать отдельную таблицу под категории, связь же между товарами и категориями настоятельно рекомендую именно многие ко многим по той причине, что один товар может одновременно располагаться в нескольких категориях (стул — категория для работы и категория для отдыха, или же Брюки-шорты).

В случаях разделения категорий на подкатегории существует 2 пути разработки. Самый простой для новичков в том случае, когда мы 100% уверены, что глубина Вам заранее известна (Категория-подкатегория-подподкатегория), тогда можно уложиться и в хранении категорий в одной таблице, так и в нескольких отдельных. На более профессиональном уровне применяют иерархические структуры данных (Деревья). Существуют 3 основных популярных алгоритма хранения: Список смежных вершин (Adjacency List), Вложенное множество (Nested Set), Материализованный путь (Materialized Path), где каждый из алгоритмов имеет свои плюсы и минусы. Допустим один из них проще получить товары категории, когда как второй позволяет более быстро перекладывать подкатегорию между категориями. Этот подходы позволяют создавать бесконечную глубину, где в категории «Обувь» будет лишь одна подкатегория «пол», а вот в компьютерах мы получим подкатегории такие как «pc», «mobile», pc же разделим на платы «памяти», «видео», «звук», «сетевая», которые мы так же сможем разделить на подкатегории по марке товара: ASUS, INTEL. Давайте взглянем на схемы:

Обратите внимание, что Adjacency List очень удобен тем, что как бы мы не шли вглубь, всегда у нас есть id_parent и по цепочке можно добраться в самое начало, очень понятный вариант, как мне кажется, так как если мы захотим выбрать все категории внутри FOOD нам достаточно сделать запрос на WHERE `id_parent` = 1. Конечно, тут возникает трудность в построении крошек (Food / Vegetable / Potato), но никто не мешает закэшировать в отдельной таблице или поле эту самую цепочку в любом удобном виде и перестраивать при изменении родителя в цепочке. Если рассматривать Nested Set, то тут можно добавить колонку «type», в которой будем писать, является ли это товаром или категорией, а далее делать выборку всех товаров где стартовый и конечный идентификатор будет в диапазоне родителя. Если Вас пугает, что диапазон 1-14 у Food, то не бойтесь, ведь можно создать 1-100`000, тогда уже все категории и подкатегории поместятся. В этом подходе не так сложно выбрать товары, как перестроить дерево в случае переноса подкатегории в другой раздел, удалении подкатегории или добавлении новой, особенно когда мы хотим сохранить систему сортировки данного дерева. С третьим вариантом Materialized Path всё так же понятно, конечно использовать запросы, пусть даже с индексом, через LIKE ‘1.1.%’ не очень симпатизируют, но вариант вполне рабочий. Некоторые движки могут объединять подходы для более высокого результата. Тема объемная по написанию кода, с другой стороны существует масса готовый примеров необходимых запросов для каждого из примеров. Допустим на уровне Doctrine ORM.

Далее идут фильтры для товаров. Если у нас простой сайт с одной категорией фильтров, то тут ничего сложного, можно в таблицу товаров добавить эти варианты, но если у нас идёт более разнообразные фильтры, то есть для жесткого диска мы применяем фильтры «обороты» и «объем данных», то уже для монитора идут совсем иные фильтры. Тут нам вновь поможет связь многие ко многим:

Как мы видим, тут вновь всё достаточно просто, обращаемся к products_option_value, хотим получить id товаров, у нас имеется id_option (имя опции) и value (значение опции), то есть `id_option` = ‘Производитель’ AND `value` = ‘ASUS’.

А теперь мы приходит к новой проблеме фильтров: фильтры на rozetka, основная проблема в том, что их много, и так для каждой категории или подкатегории. Профессиональные сайты не делают выборку всех пунктов и всех вариантов на каждой странице, после формирования списка фильтров создаётся кэш фильтра, можно даже в формате .html готовый список с радио-кнопками и на странице лишь подключается через include. В свою очередь кэш фильтра перестраивается во время изменения этих самых фильтров в админке, а это значит, что некоторые кэш-фильтры были созданы более года назад и не поддавались изменениям. Нужно ли использовать кэш для простых сайтов? Если честно, то я придерживаюсь позиции, что время — деньги, а оптимизировать надо не всё на странице, а лишь узкие места сайта по необходимости. Если на сайт заходит 100 человек в сутки, до 10 онлайн, то от затраченных человеко-часов заказчик потеряет только деньги за эту работу, но ничего не заработает. А вот вложиться в оптимизацию можно уже в момент необходимости, когда сайт перестанет работать на столь хорошем уровне.

Завершением товаров хотелось бы акцентировать внимание, то свойства: топ продаж, акция, нет в наличии, отзывы, репутация товара — это всё создаётся достаточно просто, одним полем в таблице товаров, особенно когда это относится ко всем товарам в Базе Данных. Я бы этот функционал добавил бы на уровне разработки сайта, ведь создать его достаточно просто, а пользоваться им можно будет в любое время. Не стоит забывать, что разрабатывая магазин в интернете мы так же создаём некий шаблон, который в будущем можно будет перенести и использовать уже на другом сайте!

Корзина товаров и оформление

Второе правило работы с клиентами гласит, что все клиенты «почти» слепые, глухие, немые и тупые 🙂 Прошу прощение, если кого-нибудь мог обидеть, все совпадения с реальными людьми вымышлены! Правило очень простое — показать, объяснить, акцентировать внимание и т.д. На самом деле многие бизнесмены и программисты со стажем так думают, но не со зла, а с заботой, чтобы создать более удобный и простой интерфейс.

В продолжении создания корзины для интернет магазина надо сразу представить где мы будем хранить эту самую корзину. На ум приходит SESSION, COOKIE, MySQL и т.д. Сразу отсеиваем SESSION, так как любого человека могут отвлечь во время оформления заказа на любой её стадии. Человек должен вернувшись на сайт продолжить оформлять свой заказ. MySQL плох тем, что мы будем со временем засорять нашу Базу Данных неоформленными заказами, которые надо будет чистить по крону спустя месяц игнорирования заказа. Куки же плохи тем, что люди могут начать заказывать на телефоне, а продолжить уже на PC дома или в офисе. Создание личного кабинета и корзины или, хотя бы, SESSION в MySQL позволит решить эту проблему, достаточно будет лишь убедить человека зарегистрироваться или авторизироваться.

В целом авторизация — крайне важная вещь. Запомните, чем проще человеку авторизироваться, тем больше шансов, что он завершит её. Последнее время я полюбил пользоваться авторизацией через FaceBook, ведь чтобы авторизироваться мне надо мышкой нажать на иконке FaceBook и всё. Особенно это актуально для мобильных телефонов, где набирать логин и пароль не такое уж и удовольствие.

Поиск на сайте

Конечно на сайте это отдельный целый инструмент, по факту я хотел бы акцентировать внимание на подобный поиск, где при наборе выходит список с подсказками: Search Dropdown:

Работает функционал через вывод найденных элементов в нижний DIV. При изменении поля дёргается скрипт, который и выполняет подстановку. Для простых списков AJAX не нужен, но могут быть списки и более сложные, попробуйте вбить слово war на сайте: https://goodgame.ru/, выглядит это так:

Опережая Ваш вопрос скажу сразу, что поиск идёт по всем необходимым таблицам, по всем необходимым полям. В связи с чем запросов много, код обрабатывается тяжело. Конечно, не стоит впадать в безумие и делать поиск по всем таблицам, когда наш сайт посвящен продаже товаров, наша цель подсказать и вывести товары пользователю, значит запрос делаем к таблице товаров, но имейте ввиду, что бывают и более обширные объемы. Для поиска в центре слова не используют LIKE %буква%, а используют поисковые системы Sphinx и т.д. (о Sphinx есть во втором уровне PHP, но я не агитирую).

Создание CMS интернет-магазина — админ панель

Удобно, просто, понятно — это итак очевидные вещи, давайте акцентируем внимание на безопасности. В первую очередь даже над минимальным интернет-магазином начинают работать несколько сотрудников и не всегда эти сотрудники хорошие люди. Важно понимать, что сотрудников и даже Вашего босса надо оградить от ненужного ему функционала, — никто не отменяет уязвимости CRSF в админке. Допустим, редактор товаров на сайте должен иметь право добавлять товар, а так же отредактировать и удалять только свои товары. Раздел клиентской базы, контакты, email адреса — всё это скрываем от данного сотрудника. Слежку никто не отменял, поэтому не забываем логировать действия сотрудников и это не только полезно от вредоносных действий, но так же позволит быстрее определить источник багов на сайте, а их будет и не один десяток при первой разработке сайта. Мне нравится уже придуманная ранее до нас система распределения прав в файловой системе Unix: «владелец», «группа», «остальные». Используя связь многие ко многим мы создадим группы «менеджер товаров», «менеджер статей», далее человеку, который должен иметь право пользоваться разделами товары и новости как раз присвоим эти 2 раздела (снова же нас спасает связь многие ко многим). В тему безопасности я бы добавил, что нельзя давать администраторам и менеджерам полной правки HTML на сайте, хватит и обычного редактора WYSIWYG с отключенным форматированием HTML кода. Пример взят отсюда: TinyMCE.

В тему удобства я бы ещё добавил идентификаторы количества изменённых действий. То есть если 10 заказов сформировали клиенты, значит в админке напротив вкладки «заказы» должна красоваться цифра 10.
Когда требуется быстрое реагирование на заказы, то вешают крон и добавляют Notifications. Поверх этого ещё звуковой сигнал, который отлично проявил себя ещё со времён icq, сегодня — skype.
Блокировка сайта — функционал, при котором на сайт ставится заглушка «временно не работает», и пока заглушка стоит, Вы можете чистить Базу Данных, перегонять новый прайс вместо старого или проводить другого рода технические работы. В целом, пока оборота не будет слишком большого, то и от подобной заглушки толку нет.

Наблюдение за функционированием сайта. Обычный код, который проверяет все файлы на изменение (с момента последней проверки), запускается по крону, игнорировать можно фото и видео файлы для снижения нагрузки, скрипт должен рекурсией пройтись по всему сайту и убедиться, что изменений не было. Если какой-то из файлов был изменён, то необходимо бить тревогу! Скорее всего сайт был взломан или был загружен вирус. Я бы делал огромное уведомление при каждом заходе на сайт о состоянии сайта. Если уж углубиться, то подобные вещи можно слать СМСкой на телефон или по почте для ускорения реагирования. Помимо взлома необходимо быть уверенным, что служба CRON работает нормально. Любой сбой службы может привести к тому, что cron не будет работать и Вам надо будет его перезагружать вручную. Самый простой способ в начале выполнения крон-скрипта добавлять в MySQL пометку о том, что скрипт начал выполнение в специальную таблицу контроля. При открытии админ панели выводить сообщение, что крон не был выполнен в случае ошибки. Если мы ставим выполнять крон каждый 1 час, то ставьте «бить тревогу» когда прошел интервал более 1 часа и 1 минуты между вызовами.

Резервное копирование. Один из важнейших моментов для бизнеса. Пункт №1 — всегда необходимо иметь полную копию сайта локально у себя, а так же эту же копию предоставить заказчику. Далее снимать вручную бек-ап MySQL можно через Sypex Dumper 2. Можно поставить на cron вызов:

Если объемы не очень большие, то поставьте на cron запуск скрипта 1 раз в 1 час / 1 сутки, и по созданию dump.sql отправляйте его на указанную почту и тут же удаляйте. Генерируйте уникальное имя, закройте доступ из-вне к sql файлам сервера. Вызвать внешнюю команду через PHP можно при помощи функции exec.
Бек-апы можно создавать и на уровне хостинга, зачастую всего за 30 рублей можно приобрести такие услуги:

Но тут не стоит забывать, что можете столкнуться с ситуацией, когда админы хостинга напишут «извините, у нас бек-апы не создавались», хотя Вы платили за них (жизненный опыт, повезло, что я хотел лишь одну запись откатить, но название хостинга называть не буду). Поэтому доверять посторонним людям мне кажется глупой идеей. Для более профессиональных высоконагруженных серверов берут 2 отдельных сервера, где связывают MySQL между серверами при помощи MASTER-SLAVE репликации, а файловую систему синхронизируют через rsync.

Поддержка

Помните главную вещь — сайтов без багов не существует! Есть баги, которые всплывают сегодня, а есть те, о которых клиент узнает спустя несколько лет. Продавая сайт Вы всегда должны давать гарантию, что Вы будете поддерживать сайт. Зачастую схема такая — первые месяца поддержка бесплатная, а по окончанию за плату. Профессиональные фирмы могут не давать бесплатную поддержку в начале, так как у них уже исправлены все ошибки базовые. Зачастую новые версии выпускаете не только Вы, но и крупные системы вроде Yii, Zend, Laravel, ведь кто-то нашел новую дыру в огромном ядре. Что делать? Идите обновляйте у себя, убедитесь, что обновление не поломало работу сайта, а далее загружайте исправления клиентам. Идеально было бы, когда система имела функционал самообновления, то есть если выходит новая версия, то она автоматически загружается всем пользователя и Вам не придется бегать за каждым клиентом. Выпускайте с Вашей стороны патч и наслаждайтесь свободой (данная система действует в Windows, Google Chrome, Антивирусы и т.д.). Единственное, я бы настоятельно рекомендовал проверять по 10 раз обновления перед загрузкой. А система обновления всегда создавала резервную копию обновляемых файлов (резервируют обновляемые файлы: nVidia drivers, Windows и т.д., из-за них Ваше место на винчестере с каждым днём сокращается 🙂 ). Данная тема поддержки попала в эту статью не для того, чтобы научить Вас поддерживать сайт, а научить создавать сайт, в котором будет встроен механизм поддержки.

В заключении хочу сказать, что не сдавайтесь перед трудностями, каждый новый интернет магазин созданный Вами приблизит Вас к идеальному пониманию программирования, а я же Вам пожелаю удачи и терпения дождаться новых тем посвященных созданию веб-сайтов.

Источник статьи: http://school-php.com/blog/10/-%D0%BA%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D1%81-%D0%BD%D1%83%D0%BB%D1%8F


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии