PHP без веб-сервера

PHP без веб-сервера Хостинг

Обновили в январе 2022 года.

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

PHP без веб-сервера

Давно уже занимаюсь созданием сайтов, но сейчас пришёл ужас.

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

Долго ли денвер на бук поставить и на буке показать.
P.S. а вообще эти 3 странички быстрее html набрать от руки каждую, чем задуматься о том о чем вы написали)

Ай нет не так всё просто, он требует запуск без каких либо веб серверов, у себя на машине.
К то муже страниц должно быть порядка 20(тоже на хрена это глупое копирование контента с вики)
Да и я это так просто не оставлю

Мб, javascriptом подключить обработчик php или flash

Кстати есть XML-Javascript движок, не помню уже название. Отлично можно собирать страницы на JS

Продлеваешь, фрейм вместо include или просто

1. Глуповато
2. Интернета у него вроде нету)

Господа! Вы просто умиляете своим подходом к проблеме!

Автору темы: Сегодня у вас препод дурак, завтра начальник и заказчик. А вы — умный, но безработный. Потому, что делать нужно не то, что вы умеете, а то, что вам сказали (заказали или попросили).

1) Кончайте страдать херней, не хотите оставлять не оставляйте, напишите уже наконец на пыхе генератор, скачивающий с вики и формирующий html страницы автоматом.
2) Разберитесь наконец, что такое выполнение кода на стороне сервера и на стороне клиента.
После Мб, javascriptом подключить обработчик php или flash у меня зачета вы бы точно не получили, т.к. ничерта не понимаете в веб технологиях.

1. Генератор, нет спс, быстрее скопировать текст 20 страниц, чем написать генератор
2. Написать или составить Flash приложение, в внутрь которого загружается сайт, а Flash в свою очередь имеет обработчик PHP, это хотите сказать абсолютно не здравая мысль

p.s. Зачёт меня парит в последнюю очередь

Тигра очень правильно написал. Flash в свою очередь имеет обработчик PHP с этого места поподробнее. КАК? :blink:
а если вам сложно написать парсер, то я думаю однозначно быстрее руками будет, мне бы быстрее было парсер накатать

PHP без веб-сервера

Каждый старается работать по максимальному КПД.

Сделал как вариант, попробую: http://aionrulez.net/files/InfoBIOS.rar

Я когда создавал свой первый, то изъ**нулся сделать вместо php include — «js include»
Тогда я только учился, и мне пришла мысль в голову всю статику вынести в js файлы. Хотя не я один изобрел такой велосипед. В инете потом находил похожие решения.
Вот посмотри исходники страниц, думаю поймешь что к чему

ЗЫ за дизайн прошу молчать — это мой самый первый сайт пятилетней давности

BaNru Спасибо, наконец то злая гопота ушла и появились толковые люди!

Как я понимаю вот такая простейшая строка и всё?

Предлогаешь, фрейм вместо include или просто

Хочу добавить по этому поводу, используя фреймы резинового дизайна не добъёшся вот по этому и не могу использовать

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

dezmail, а я к чему писал?

как раз таки об этом.
Дизайн(структура) зашит в xml. а JS строит страницы на основе описанной структуры.

Да да, я просто не прислушался к вашим словам

Пытался подключить, так и не вышло, document.write по моему не для этого предназначен, не подскажите?

Ты внимательно смотрел мой код?

Весь шаблонный код выноситься в JS файлы, где каждому отдельному куску присваивается переменная.
Потом подключаем в хедере этот(эти) JS файл, и в нужном месте пишем уже document.write.

Не забываем про экранирование кавычек.

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

Как я понимаю нужно:

И соответственно эти 2 файла должны быть в наличии.

Приветствую всех читателей «Хабра».

Дисклеймер

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

Вступление

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

Для кого эта статья

Для всех кто работает с web-ом и о протоколе FastCgi знает лишь что это протокол в соответствии с котороым web сервер запускает php скриптики, но хочет более детально его изучить и заглянуть под капот.

Обоснование (зачем эта статья)

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

Читайте также:  Упрощение настройки DNS в Centos: полное руководство по указанию сервера

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

Хоть задачу в итоге и решили, но разобраться в FastCgi детально я все таки решил, и в добавок решил написать об этом статью, в которой будет просто и подробно описано как заставить php-fpm запустить php скрипт без web сервера, а точнее в качестве web сервера будет другой скрипт, далее его буду называть Fcgi клиент. В общем надеюсь что данная статья поможет тем кто столкнулся с такой же задачей как и мы и прочитав ее сможет быстро все написать как ему надо.

Творческий поиск (ложный путь)

Итак проблема обозначена, надо приступать к решению. Естественно как любой «нормальный» программист для решения задачи, про которую ни где не написано что делать и что вводить в консоль, я не стал читать и переводить спецификацию, а сразу же придумал свое «гениальное» решение. Суть его в следующем, я знаю что nginx (мы используем nginx и чтобы не писать далее дурацкое — web сервер, буду писать nginx, так как то посимпатичнее) что то передает в php-fpm, это что то php-fpm обрабатывает и на основе него запускает скрипт, что ж вроде все просто, возьму да залогирую то что передает nginx и передам то же самое.

Тут поможет великолепный netcat (UNIX-утилита для работы с сетевым трафиком, которая по моему может практически все). Итак ставим netcat на прослушивание локального порта, а nginx настраиваем на работу с php файлами через сокет (естественно сокет на том же порту который слушает netcat)

слушаем 9000 порт

Проверить что все ок, можно обратившись через браузер на адрес 127.0.0.1:9000 должна быть следующая картина

PHP без веб-сервера

настраиваем nginx чтобы он php скрипты обрабатывал через сокет на 9000 порту (в настройках ‘/etc/nginx/sites-available/default’, конечно могут отличаться)

После этих манипуляций проверим что же получилось, обратившись к php скрипту через браузер

PHP без веб-сервера

Видно что nginx отправил переменные окружения, а также непечатаемые символы, то есть данные были переданы в двоичной кодировки, а это значит что так просто их нельзя скопировать и послать в сокет php-fpm. Если сохранить их в файл например то они сохраняться в 16-ричной кодировке, выглядеть это будет примено так

PHP без веб-сервера

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

Стало ясно что данный путь совершенно неверный, сами видите насколько все это убого выглядит, и тем более все эти действия не позволят нам управлять соединением, и ни как не приблизят к пониманию взаимодействия между php-fpm и nginx.

Все пропало, изучения спецификации не миновать!

Решение (тут собственно начинается вся соль данной статьи)

Давайте теперь рассмотрим как же все таки происходит соединение и обмен данными между nginx и php-fpm. Немного теории, все общение происходит как уже понятно через сокеты, далее будем рассматривать конкретно соединение через TCP сокет.

Единицей информации в протоколе FastCgi является cgi запись. Такие записи сервер отправляет приложению и точно такие же записи получает в ответ.

Немного теории (структуры)

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

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

//допустим вам пришли такие данные
1101111000000010010110000010011100010000

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

//получилось у нас 5 байт
11011110 00000010 01011000 00100111 00010000

//переведем в десятичную систему
222 2 88 39 16

Отлично мы интерпретировали их и получили какие то результаты, допустим что эти данные отвечают за то сколько определенная квартира должна за электроэнергию. Получается что в доме 222 квартира номер 2 должна заплатить 88 рублей. А что еще за две цифры, что с ними делать просто отбросить? Конечно нет! дело в том что мы не имели нотации (формата) которая подсказала бы нам как интерпретировать данные, и интерпретировали их по своему, в связи с этим получили не только бесполезный, но и вредный результат. В итоге квартира 2 заплатила совершенно не то что должна была. (примеры конечно надуманные и служат лишь для того чтобы более понятно объяснить ситуацию)

Теперь посмотрим как же мы должны были интерпретировать правильно эти данные, имея нотацию (формат). Далее буду называть вещи своими именами, а именно нотация = формат (вот тут форматы).

//формат следующий
«Cnn»

//расшифровка формата
//C — беззнаковый символ (char) (8 бит)
//n — беззнаковый short (16 бит)

//разобьем данные в соответствии с форматом
11011110 0000001001011000 0010011100010000

//переведем в десятичную систему
222 600 10000

Теперь все сходиться в доме №222 квартира 600 за электричество должна 1000 рублей Думаю теперь ясна важность формата, и теперь понятно как примерно выглядит условно Си подобная структура. (прошу обратить внимания, тут цель не детально объяснить что такое эти структуры, а дать общее понимание что это такое и как это работает)

Читайте также:  Полное руководство: Прямая трансляция ВКонтакте — раскройте силу визуальных эффектов!

Условное обозначение данной структуры будет такое

Еще немного теории (FastCgi записи)

Как я уже сказал выше единицей информации в протоколе FastCgi являются записи. Записи сервер отправляет приложению и такие же записи получает в ответ. Запись состоит из заголовка и тела с данными.

  • версия протокола (всегда 1) обозначается 1 байтом (‘C’)
  • тип записи. Для открытия, закрытия соединения и др. все не буду рассматривать, далее рассмотрю только то что понадобится для конкретной задачи, если нужны другие — добро пожаловать сюда спецификация. Обозначается 1 байтом (‘C’).
  • ID запроса, произвольное число, обозначается 2 байтами (‘n’)
  • длинна тела записи (данных), обозначается 2 байтами (‘n’)
  • длинна выравнивающих данных и зарезервированные данные, по одному байту (тут не нужно особо обращать внимания, дабы не отвлекаться от главного в нашем случае всегда будет 0)

Далее идет само тело записи:

Вот пример самой простой FastCgi записи в двоичном виде с форматом

Практика

Для передачи данных будем использовать стандартное php расширение socket. И первое что нужно будет сделать — это настроить php-fpm на прослушивание порта на локальном хосте, например 9000. Это делается в большинстве случаем в файле ‘/etc/php/7.3/fpm/pool.d/www.conf’, путь конечно зависит от настроек вашей системы. Там нужно прописать примерно следующее (всю портянку привожу чтобы можно было сориентироваться, главная секция здесь listen)

После настройки fpm, следующим этапом будет подключение к сокету

$service_port = 9000;
$address = ‘127.0.0.1’;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

$result = socket_connect($socket, $address, $service_port);

Начало запроса FCGI_BEGIN_REQUEST

Для открытия соединения мы должны отправить запись с типом FCGI_BEGIN_REQUEST = 1 Заголовок записи будет такой (для приведения числовых значений к бинарной строке с заданным форматом будет использована php функция pack())

socket_write($socket, pack(‘CCnnCx’, 1, 1, 1, 8, 0));
//версия протокола — 1
//тип записи — 1 — FCGI_BEGIN_REQUEST
//id — 1
//длинна тела запроса — 8 бит
//выравнивание — 0

Тело записи для открытия соединения должно содержать роль записи и флаг управляющий соединением

Итак запись для открытия соединения успешно отправлена, php-fpm ее примет и далее будет ожидать от нас дальнейшей записи в которой нужно передать данные для разворачивания окружения и запуска скрипта.

Передача параметров окружения FCGI_PARAMS

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

Минимальные необходимые параметры окружения

Структура пар имя значение будет такая

Идет сначала 1 байт — длинна имени, потом 1 байт значение

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

Закодируем наши переменные в соответствии форматом

Тут значения меньше 128 бит кодируются функцией chr($keyLen), больше pack(‘N’, $valLen), где ‘N’ обозначает 4 байта. И затем все это слепляется в одну строку в соответствии с форматом структуры. Тело записи готово.

//отправка заголовка
socket_write($socket, pack(‘CCnnCx’, 1, 4, 1, strlen($keyValueFcgiString), 0));

//отправка body
socket_write($socket, $keyValueFcgiString);

//для перевода приложения в режим выполнения и отправки ответа посылаем еще одну запись
//с нулевым body
socket_write($socket, pack(‘CCnnCx’, 1, 4, 1, 0, 0));

Получение ответа FCGI_PARAMS

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

Получаем заголовок, он всегда равен 8 байт (получать данные будем по байту)

Теперь в соответствии с полученной длинной тела ответа сделаем еще одно чтение из сокета

Ура все сработало! Наконец то!
Что мы имеем в ответе, если например в этом файле

$url = ‘/path/to/script.php’ //переменная окружения которую задали ранее

то в ответе получим в итоге

PHP без веб-сервера

Итоги

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

Полная версия скрипта

Как подготовить компьютер к работе с локальным сервером

Чтобы отключить IIS, в панели управления выберите меню «Программы и компоненты – Включение и отключение компонентов Windows». Снимите флаг напротив опции «Службы IIS» и сохраните изменения. Может потребоваться перезагрузка системы.

PHP без веб-сервера

Снимаем выделение с этого чекбокса

Если открыть «Программы и компоненты» в вашей версии Windows не удалось, есть еще один способ. Используйте сочетание горячих клавиш Win+R. Откроется окно «Выполнить», где нужно указать команду appwiz.cpl

PHP без веб-сервера

Если его в списке нет, приступайте к установке локального сервера

Продвинем ваш бизнес

В Google и «Яндексе», соцсетях, рассылках, на видеоплатформах, у блогеров

PHP без веб-сервера

Какой локальный сервер выбрать

Для рядового пользователя подойдет любой из описанных вариантов. Работа с предложенным ПО позволяет установить сайт на локальную машину, настроить, протестировать и перенести ресурс на сервер хостинг-провайдера.

Если вы пользуетесь CMS WordPress, обратите внимание на Desktop Server. Установка и настройка этой программы занимают меньше времени по сравнению с другими продуктами. Благодаря плагину для WordPress вы также ускорите перенос готового сайта на сервер хостера.

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

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

Как запустить сайт на Open Server

Open Server дает возможность работать без установки ПО на компьютер. Вы можете запускать сервер с USB-накопителя.

Активируйте инсталлятор и укажите путь для распаковки архива. По умолчанию программа предлагает установку на системный диск, но вы можете изменить параметры. Запустите исполняемый файл в папке Open Server и выберите язык.

PHP без веб-сервера

Нужно открыть установочный файл. Для корректной распаковки понадобится минимум 7 ГБ свободного пространства на жестком диске

Если все сделано верно, в трее появится красный флажок. Нажмите на него, чтобы начать работу с сервером.

Читайте также:  Демистифицируем Magento: изучаем все тонкости этой платформы электронной коммерции

PHP без веб-сервера

Обратите внимание на иконку программы в трее

Нажмите кнопку «Запустить». Затем введите в адресную строку браузера адрес http://localhost/. Вы увидите страницу приветствия.

PHP без веб-сервера

Успешно подняли сервер на локальном компьютере

Теперь установите на локальный сервер выбранную CMS. Для этого создайте новую папку в разделе Domains. Распакуйте в нее архив с дистрибутивом движка.

PHP без веб-сервера

Мы создали новую папку

Перезапустите Open Server с помощью меню в трее.

PHP без веб-сервера

Нажмите кнопку «Перезапустить»

PHP без веб-сервера

Какую CMS выбрать: руководство по выбору «движка» для сайта

Введите в адресной строке браузера URL экспериментального сайта. Вы попадете в меню установки CMS.

PHP без веб-сервера

После выбора языка продолжаем устанавливать новый сайт на локальный сервер

PHP без веб-сервера

PHP без веб-сервера

В меню установки WordPress укажите название БД и имя пользователя. Завершите установку: укажите название сайта, имя пользователя, пароль, электронный адрес администратора.

PHP без веб-сервера

Заполняем данные для подключения сайта к базе данных

Теперь вы можете работать с сайтом на локальном сервере.

Desktop Server – запускаем сайт на WordPress локально

Вот подробная инструкция по работе с плагином:

  • загрузите плагин DesktopServer для WordPress и активируйте его;
  • выберите «Экспорт», а затем установите флажок «Получить сведения о реальном сервере хостинга»;
  • для получения дополнительной информации посетите http://serverpress.com/.

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

PHP без веб-сервера

Обратите внимание на путь к корневой папке сайта. Он должен быть корректным (там не должно быть кракозябры или кириллицы)

Перейдите по ссылке, предложенной программой, для завершения установки WordPress.

PHP без веб-сервера

После перехода по URL нажимаем Next

Выберите язык. Укажите название сайта, имя пользователя, e-mail и пароль.

PHP без веб-сервера

Заполняем название, имя пользователя, пароль и электронную почту

PHP без веб-сервера

Мы получили доступ к админке WordPress

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

PHP без веб-сервера

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

Как перенести действующий сайт на локальный сервер

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

Если вы используете WordPress, действуйте так:

  • запустите локальный сервер и установите на него WordPress;
  • установите на локальном сайте дизайн-шаблон, который вы используете на реальном ресурсе;
  • установите на действующий сайт и активируйте плагин Duplicator;
  • в административной консоли выберите меню «Duplicator – Пакеты». Нажмите кнопку «Создать новый».

PHP без веб-сервера

Сперва создаем новый пакет

PHP без веб-сервера

Проверяем все элементы бэкапа

Введите в адресную строку браузера путь к файлу installer.php на тестовом ресурсе. Вы попадете на страницу установки базы данных.

PHP без веб-сервера

Делаем диплой файлов сайта и база данных

Удалите из корневой директории тестового ресурса файлы install.php и wp-config.php.

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

PHP без веб-сервера

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

Вы можете перенести сайт с сервера хостинг-провайдера на экспериментальный ресурс на локальном сервере без помощи плагинов. Для этого можно воспользоваться функцией «Экспорт» в административной консоли.

PHP без веб-сервера

Выберите элемент сайта, который нужно экспортировать

С помощью функции «Импорт» можно загрузить полученный файл на локальный сервер.

PHP без веб-сервера

Выбирайте необходимые элементы сайта

PHP без веб-сервера

Выбираем способ экспорта

PHP без веб-сервера

На вкладке «Импорт» загрузите файл с базой данных.

PHP без веб-сервера

Выбираем файл для импорта

Описанными способами сайты можно переносить с локального сервера на сервер хостера и обратно. Также для создания копии ресурса и последующего переноса вы можете воспользоваться инструментами резервного копирования базы данных, например, плагином для WordPress WP Database Backup или аналогами для других движков.

PHP без веб-сервера

Как создать сайт на локальном сервере Xampp

В папке Xampp активируйте контрольную панель: запустите приложение xampp-control. На панели запустите сервер Apache и базу данных.

PHP без веб-сервера

Активируем работу сервера

Введите в адресную строку браузера URL http://localhost. Если Xampp работает корректно, вы попадете на страницу-приветствие.

PHP без веб-сервера

Успешно подняли сервер на домашнем компьютере

PHP без веб-сервера

Укажите название, выберите кодировку БД и нажмите кнопку «Создать»

Чтобы завершить установку CMS, введите в адресную строку браузера URL http://localhost/folder-name. Вместо значения folder-name укажите название папки с файлами CMS.

PHP без веб-сервера

Выбираем язык для админки CMS

Завершите установку и проверьте работоспособность сайта.

PHP без веб-сервера

Сайт на локальном сервере работает

PHP без веб-сервера

Хостинг: как выбрать и на какие технические возможности обратить внимание

Как работать с локальным сервером Denwer

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

PHP без веб-сервера

Откройте ярлык двойным кликом

В адресную строку браузера введите URL http://localhost/denwer/. Вы попадете на стартовую страницу локального сервера Denwer.

PHP без веб-сервера

Локальный сервер работает корректно

Чтобы установить CMS на локальный сервер «Денвер», создайте раздел с названием сайта в папке WebServers – Home. В разделе создайте еще одну папку с именем www. Распакуйте в нее архив с дистрибутивом движка.

PHP без веб-сервера

Мы создали папку testik.io

PHP без веб-сервера

Сюда нужно скопировать движок сайта

PHP без веб-сервера

Нажимаем кнопку «Создать»

Перезапустите локальный сервер с помощью ярлыка Restart Denwer на рабочем столе. Установите WordPress. Для этого в адресной строке браузера наберите адрес экспериментального сайта.

PHP без веб-сервера

Denwer не подвел – сайт на локальном компьютере запускается

После окончания разработки перенесите сайт с локального сервера на сервер хостинг-провайдера.

Чтобы удалить «Денвер», выполните следующие действия:

  • остановите сервер с помощью ярлыка Stop Denwer на рабочем столе;
  • в командную строку введите команду subst z: /d. Это необходимо для удаления виртуального диска Z, который создается при установке ПО «Денвер». Если вы вместо значения по умолчанию Z использовали другое название виртуального диска, укажите это в команде;
  • удалите папку WebServers с диска C;
  • удалите ярлыки управления локальным сервером с рабочего стола.

Как пользоваться локальным сервером Winginx

PHP без веб-сервера

Активируем сервер Winginx

Перейдите по ссылке «Рабочая среда Winginx», чтобы вызвать панель управления программой. Создайте новый проект и укажите адрес экспериментального сайта.

PHP без веб-сервера

Создаем новый проект

PHP без веб-сервера

Нам нужно создать новую базу данных

Откройте папку сайта с помощью соответствующего меню в панели управления Winginx.

PHP без веб-сервера

Нажмите кнопку «Открыть папку сайта»

Разархивируйте дистрибутив выбранной CMS в каталог public_html.

PHP без веб-сервера

Выберите конечную папку и извлеките все файлы

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

PHP без веб-сервера

Запланировали две задачи

Оцените статью
Хостинги