PHP - Урок 1

Из курса про сети мы уже знаем как взаимодействуют сетевые программы. Чтобы передавать друг-другу данные они используют стек протоколов TCP/IP.
Программы, которые работают через сеть часто делят на клиентские и серверные. Клиентские программы создают запрос и отправляют его по сети серверной программе.
Чтобы во время отладки сетевых программ каждый раз не передавать запросы на удаленный компьютер, у всех популярных операционных систем (и сетевых карт) есть встроенный IP-адрес: 127.0.0.1, а также его символическое название localhost (это название записывается в специальном файле ОС - hosts, который является некоторым внутреннем мини-DNS).
Поэтому для обучения нам не обязательно покупать хостинг. Достаточно установить необходимые программы на своем компьютере.
Программа клиент у нас уже есть - это то через чего вы смотрите эту страницу (браузер). Хотя иногда разработчики пользуются и другими программами командной строки, такими как curl.
Также нам понадобится программа сервер (это чаще всего apache или nginx) и php-интерпретатор. Кстати во многих Linux-системах apache называется httpd.
Если вы пользуетесь Linux то скорее всего знаете, как настроить сервер.
Для тех же у кого windows - удобное решение установить набор разработчика denwer. Он содержит в себе сервер apache, php, mysql, а также другие компоненты для разработки.
Теперь давайте установим denwer для этого мы его скачиваем с официального сайта и запускаем установочный файл.
При установке в режиме командной строки, вам будет задано несколько вопросов, мы сними соглашаемся вводя с клавиатуры Y и нажимая клавишу ENTER.
После установки на вашем рабочем столе появится 3 значка

Для запуска нашего сервера мы нажимаем значек Start denwer у нас появится командная строка - ждем когда она обратно закроется. Готово - сервер запущен.
Теперь в адресной строке браузера мы можем набрать http://localhost
и нам откроется начальная страница денвера.

Это работает даже без подключения к Интернету, так как сервер выдает страницу с нашего же локального компьютера (как я говорил, все что направляется на localhost (127.0.0.1) передается программам не в интернет, а на тот же самый компьютер с которым мы работаем TCP-порт по умолчанию имеет номер 80 - это стандартный для браузеров порт).
Теперь разберем как создать проект на нашем локальном сервере. В Денвере это делается очень просто.
Денвер в операционной системе создает дополнительный диск (точнее его образ) он, например у меня имеет букву Z:

Как можно заметить его размер совпадает с размером диска C: - ну на то он и виртуальный образ.
Хранятся на нем исполняемые файлы программ-серверов, интерпретаторы, и самое главное наши сайты.
Сайты наши будут находятся там в папке home.

Для создания сайта в Денвере вам нужно просто создать папку внутри папки home - ее название и будет названием вашего сайта. Например, если вы создадите папку mysite, то ваш локальный сайт будет доступен в вашем компьютере по ссылке http://mysite
Дабы избежать путаницы я советую именовать папки с .loc на конце. Иначе, например, если вы захотите создать папку с именем, допустим golos.io - то у вас возникнет проблема с доступом на внешний этот сайт. Так как сначала будет отрабатывать локальный dns-сервер. И с чувством выполненного долга возвращать локальный IP (127.0.0.1).
Чтобы сайт работал правильно внутри папки с сайтом не забывайте создавать папку www - именно в этой папке сервер будет искать файлы, которые запрашивает браузер.
То есть полный путь к вашим файлам сайта будет выглядеть примерно так: Z:\home\mysite.loc\www

Теперь давайте создадим php-файл в папке www нашего сайта. Туда можно закинуть любые файлы - сервер их будет выдавать по запросу http://mysite.loc/путь/к/файлу/имя_файла
Есть файл по умолчанию - обычно называется index - он отдается сервером, если не указывается конкретный запрашиваемый файл. То есть когда вы переходите по ссылке http://mysite.loc
То есть путь к файлам вашего сайта высчитывается относительно папки www - для сервера это корень вашего сайта.
Итак создадим в папке home папку mysite.loc, а в ней - папку www.
В папке www создадим файл index.php и напишем в нем наш скрипт

После чего, чтобы денвер создал необходимое окружение для работы сайта - нужно перезапустить его. Дважды кликаем на значке Restart denver на рабочем столе.
<?php
$str = "Привет, Мир!";
echo $str."!!";
?>
Если вы увидите, что русские буквы у вас искажаются (в неверной кодировке), то добавьте в папку www файл .htaccess и в нем напишите
AddDefaultCharset utf-8
Затем переходим по адресу нашего локального сайта в браузере http://mysite.loc
И должны увидеть Привет, Мир!!!

В нашем скрипте мы создали переменную $str и сохранили в нее Привет, Мир!
Затем с помощью команды echo вывели то, что в ней сохранили. Также с помощью точки - оператора конкатенации в конец значения переменной мы добавили строку с двумя восклицательными знаками. В результате php-интерпретатор приклеил их к значению переменной во время вывода командой echo.
Привет!
Этот пост был выбран Академией Голоса и попал в список программы поддержки качественных образовательных постов.
Ссылка на твой пост будет опубликована в отчете Академии.
Спасибо за полезный контент (ノ◕ヮ◕)ノ*:・゚✧
лучше разворачивать на докере это быстрее и переносить проще

Запилишь статью про докер?
Пока нет. Надо ОС мне поставить сначала для докера нормальную На текущей не работает так как 32битная оказалась)
сам начинал с денвера, но чб был порядок в голове, мне кажется стартовать следует с докера)
Почему не open server? Denwer — потому что импортозамещение? :)
Неа. Не импортозамещения )) Не знаю почему, видимо потому что я к нему больше привык)
Согласен. Но мне кажется его изучение требует отдельной статьи, так как функционал гораздо больше чем у denwer-a
согласен, нужна отдельная статья и не одна , просто понять все это через докер не так сложно, зато быстро )
в качестве сервера мне советовали https://ospanel.io/ - и он крутой. по крайней мере, никаких проблем с Win10 нет
Спасибо, попробую)