Verification: a143cc29221c9be0

Open php file on localhost

Open php file on localhost

Что такое подсистема Windows для Linux

Microsoft Windows 10 имеет новую дополнительную функцию, которая называется «Подсистема Windows для Linux (WSL)». Она была добавлена в систему, начиная с обновления «Anniversary Update» и доступна только в 64-битных редакциях этой операционной системы.

WSL представляет собой подсистему для ОС Windows 10, через которую можно запускать Linux приложения. В этой статье рассмотрим, как на данной подсистеме можно настроить веб-сервер (Apache, MySQL, PHP) для локальной разработки веб-проектов.

Windows 10, начиная с версии 2004 уже включает WSL 2.

Основные этапы настройки веб-сервера на WSL

Процесс установки веб-сервера на WSL можно разбить на следующие шаги:

  • включение через панель управления дополнительной функции Windows 10 «Подсистема Windows для Linux»;
  • установку «Ubuntu» или любого другого дистрибутива Linux из магазина приложений Microsoft Store;
  • установка программного обеспечения в ОС Linux и его настройка;
  • редактирование файла hosts в Windows 10;
  • создания bash скриптов для запуска и остановки веб-сервера;
  • проверки работоспособности веб-сервера, посредством установки на сайт, какой-нибудь CMS, например MODX Revolution.

Включение подсистемы Windows для Linux

Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:

  • открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления);
  • открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows);
  • установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
  • перезагрузить операционную систему.

Для использования WSL 2 вам необходимо дополнительно ещё включить в окне «Компоненты Windows» необязательный компонент «Платформа виртуальной машины».

Какую версию WSL выбрать

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

WSL 2 в отличие от WSL 1 имеет полнофункциональное ядро Linux с полной совместимостью системных вызовов. Это позволяет использовать внутри WSL 2 целый ряд приложений (Docker и другие). Если вам нужна поддержка этих приложений, то тогда однозначно стоит остановится на 2 версии этой подсистемы. К сведению, ядро Linux для WSL 2 собранно компанией Microsoft и будет автоматически обновляться через центр обновления Windows.

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

На мой взгляд, использовать вторую версию WSL пока не имеет особого смысла, только если вы не используете Docker или другое приложение, которому нужна полная совместимость системных вызовов Linux. Т.к. при использовании WSL 2 вам необходимо будет располагать проект в файловой системе Linux, иначе производительность файловых систем ОС при работе с этим проектом будет достаточно низкой. Но в любом случае вы можете переключить WSL для дистрибутива Linux как на первую версию, так и на вторую, и посмотреть какой вариант этой подсистемы для работы вам более подходит.

Работа с версиями WSL

Установку версии WSL, которую вы хотите использовать по умолчанию, осуществляется посредством выполнения в PowerShell следующей команды (например, WSL 2):

wsl --set-default-version 2

Эта команда установит по умолчанию в качестве версии WSL 2. Если нужно WSL 1, то в вместо 2, нужно указать соответственно 1.

Проверить WSL версию, назначенному каждому из установленных дистрибутивов Linux можно в PowerShell через следующую команду:

wsl -l -v

Для того чтобы изменить назначенную WSL версию дистрибутиву Linux на другую:

wsl --set-version 

Например, для того чтобы перевести Ubuntu-18.04 на WSL 2 необходимо выполнить команду:

wsl --set-version Ubuntu-18.04 2

Доступ к файловым системам ОС

Получить в Windows доступ к файлам WSL можно, например, через проводник, введя в его адресной строке путь \\wsl$ или просто выполнив в Bash команду explorer.exe ..

В WSL получение доступа к файловой системе Windows выполняется через /mnt. Например, для того чтобы в Bash перейти на диск C:\ необходимо ввести cd /mnt/c, а на D:\ - cd /mnt/d.

Установка приложения «Ubuntu»

Установку приложения «Ubuntu» на компьютер осуществим через магазин приложений Microsoft Store. Для этого необходимо открыть данный магазин приложений, найти приложение «Ubuntu» и установить его.

Установка программного обеспечения в ОС Ubuntu

Запустим операционную систему «Ubuntu».

Введём новое UNIX имя пользователя (username) и пароль (password).

Обновим локальный индекс apt пакетов в операционной системе Ubuntu:

sudo apt update

Обновим установленное программное обеспечение:

sudo apt upgrade

Установим Apache:

sudo apt install apache2

Установим MySQL сервер:

sudo apt install mysql-server

Установим php и другие пакеты, необходимые для веб-разработки:

sudo apt install php libapache2-mod-php php-mysql php-xml php-curl

Для установки какой-то определённой версии php, например 7.1.x, необходимо выполнить следующие команды:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.1 libapache2-mod-php7.1 php7.1-mysql php7.1-xml php7.1-curl

Включим модуль Mod rewrite в Apache:

sudo a2enmod rewrite

Создание директории для веб-проекта

Создадим в Windows 10, например, с помощью проводника, директорию для сайта (проекта) test.ru:

d:\Projects\test.ru\public_html

При использовании WSL 2 рекомендуется сохранять файлы в файловой системе Linux. Это необходимо для обеспечения максимальной производительности.

В этом случае директорию для проекта поместим сюда:

\home\main\projects\test.ru\public_html

Для более удобного создания каталогов и работы с файловой системой Linux вы можете установить в Ubuntu, например, Midnight Commander:

sudo apt install mc

Запуск Midnight Commander осуществляется посредством ввода команды:

mc

Изменение метода аутентификации MySQL пользователя root

Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:

1. Запустим службу mysql.

sudo service mysql start

2. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:

sudo mysql -uroot -p

3. Нажмём на Еnter, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

4. Проверим метод аутентификации, который используется для пользователя root.

SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user="root";

Если пользователь использует аутентификацию с помощью плагина auth_socket, то изменим эту настройку на использование пустого пароля. Для этого введём команду:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:

FLUSH PRIVILEGES;

Создание базы данных

Создадим базу данных для веб-проекта test.ru. Для этого введем в командной строке MySQL введём следующую команду:

CREATE DATABASE testru;

Если в базу данных testru необходимо загрузить дамп некоторой базы, находящийся, например, в файле backup.sql, то можно воспользоваться следующими инструкциями:

use testru;
source backup.sql;

Для завершения работы с командной строкой MySQL выйдем из неё:

exit

Настройка виртуальных хостов в Apache

В Ubuntu файлы настроек виртуальных хостов Apache распологаются в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Данный файл будем использовать в качестве примера.

Создадим копию файла 000-default.conf:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.ru.conf

Отредактируем файл test.ru.conf, для этого можно воспользоваться, например, редактором nano:

sudo nano /etc/apache2/sites-available/test.ru.conf

Итоговое содержимое файла test.ru.conf:


    ServerAdmin webmaster@test.ru
    ServerName test.ru
    ServerAlias www.test.ru
	DocumentRoot /mnt/d/Projects/test.ru/public_html/
	
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
              
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

Включим новый виртуальный хост с помощью утилиты a2ensite:

sudo a2ensite test.ru.conf

Перенаправление test.ru на локальный веб-сервер

Для того чтобы доменное имя test.ru было связано с локальным веб-сервером необходимо открыть файл hosts, расположенный по адресу C:\Windows\System32\drivers\etc и добавить в него строчку:

127.0.0.1 test.ru

Команды для запуска и остановки веб-сервера

Для запуска Apache и MySQL необходимо ввести следующие команды:

sudo service apache2 start
sudo service mysql start

Для остановки веб-сервера:

sudo service apache2 stop
sudo service mysql stop

Для упрощения запуска и остановки веб-сервера можно создать bash скрипты start.sh и stop.sh.

Содержимое файла start.sh:

#!/bin/bash

echo password | sudo -S sudo service apache2 start
echo password | sudo -S sudo service mysql start
exit 0

Содержимое файла stop.sh:

#!/bin/bash

echo password | sudo -S sudo service apache2 stop
echo password | sudo -S sudo service mysql stop
exit 0

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

Запуск веб-сервера (./start.sh):

./start.sh

Проверка работоспособности веб-сервера

Длы проверки работоспособности веб-сервера установим на test.ru систему управления контентом, например, MODX Revolution.

Для этого скачаем со страницы Download MODX Revolution архив системы и распакуем его в директорию d:\Projects\test.ru\public_html\.

Для установки системы необходимо открыть мастер. Осуществляется это посредством ввода в строку поиска браузера адреса http://test.ru/setup. После этого ответим на все вопросы мастера и нажмём на кнопку "Установить".

Дождёмся окончания процесса установки и получим отчет об установке CMS MODX Revolution.

Инструкция по установке phpMyAdmin

Пошаговые действия по установке phpMyAdmin в Ubuntu:

1. Установим пароль для MySQL пользователя root, если его нет (т.к. по умолчанию phpMyAdmin не разрешает войти, если у пользователя БД нет пароля).

sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
exit

2. Установим phpMyAdmin:

sudo apt-get install phpmyadmin

При установке мастер будет предлагать вам ответить на следующие вопросы:

  • на приглашение «настроить базу данных для phpmyadmin с помощью dbconfig-common» выберите Yes (Да);
  • в окне на сообщение «пожалуйста, выберите веб сервер, который следует автоматически настроить для запуска phpMyAdmin» выберите Apache (для этого нажмите на Пробел, Tab и Enter);
  • при запросе пароля для самого приложения phpMyAdmin введите, например, root.

Но установленная этим образом версия phpMyAdmin является устаревшей и содержит некоторые ошибки.

Для её обновления выполним ещё следующие действия:

  • cd /usr/share - переход в «usr/share»;
  • sudo rm -rf phpmyadmin - удаление в «usr/share» директории «phpmyadmin»;
  • sudo wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.zip" - загрузка последней версии (4.9.5) phpMyAdmin;
  • sudo unzip phpMyAdmin-4.9.5-all-languages.zip - распаковка её в текущий каталог;
  • sudo cp -r phpMyAdmin-4.9.5-all-languages phpmyadmin - копирование извлечённые файлы в папку «phpmyadmin»;
  • sudo rm -rf phpMyAdmin-4.9.5-all-languages - удалние папки «phpMyAdmin-4.9.5-all-languages».

Для входа в phpMyAdmin необходимо ввести в адресной строке браузера URL: http://localhost/phpmyadmin/. В поля "Пользователь" и "Пароль" введите root.

Шаг 1. Установите Nginx

HTTP-сервер Nginx, вероятно, является вторым по популярности веб-сервером, который используется сегодня. Пойдите и установите Nginx, поскольку ProjectSend нуждается в нем.

Чтобы установить Nginx HTTP на сервере Ubuntu, выполните следующие команды.

sudo apt update
sudo apt install nginx

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

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Чтобы проверить настройку Nginx, откройте браузер и перейдите к имени хоста или IP-адресу сервера, и вы должны увидеть тестовую страницу Nginx по умолчанию, как показано ниже.

http://localhost

Шаг 2: Установите MariaDB

Сервер базы данных MariaDB — отличное место для начала при поиске серверов баз данных с открытым исходным кодом для использования с ProjectSend.

Чтобы установить MariaDB, выполните следующие команды…

sudo apt install mariadb-server mariadb-client

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

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

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

sudo mysql_secure_installation

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

Enter current password for root (enter for none): Just press the Enter

  • Set root password? [Y/n]: Y
  • New password: Укажите пароль
  • Re-enter new password: Повторите пароль
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y
sudo mysql -u root -p

Затем введите созданный вами выше пароль для входа… в случае успеха вы должны увидеть приветственное сообщение MariaDB.

Шаг 3. Установите PHP 7.4-FPM

PHP 7.4-FPM может быть недоступен в репозиториях Ubuntu по умолчанию… для его установки вам нужно будет получить его из сторонних репозиториев.

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

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Затем обновите и обновите до PHP 7.4-FPM.

sudo apt update

Затем выполните приведенные ниже команды, чтобы установить PHP 7.2-FPM и связанные модули.

sudo apt install php7.4-fpm php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip imagemagick php-imagick php7.4-bz2 php7.4-bcmath php7.4-gmp

После установки PHP 7.4-FPM выполните следующие команды, чтобы открыть файл конфигурации PHP по умолчанию для Nginx.

sudo nano /etc/php/7.4/fpm/php.ini

Затем внесите изменения в следующие строки файла и сохраните. Приведенное ниже значение — отличные настройки для применения в ваших средах.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Moscow

Шаг 4: Создайте базу данных ProjectSend

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

Чтобы войти на сервер базы данных MariaDB, выполните следующие команды.

sudo mysql -u root -p

Затем создайте базу данных под названием  projectsend

CREATE DATABASE projectsend;

Создайте пользователя базы данных с именем projectsend user  с новым паролем.

CREATE USER 'projectsenduser'@'localhost' IDENTIFIED BY 'new_password_here';

Затем предоставьте пользователю полный доступ к базе данных.

GRANT ALL ON projectsend.* TO 'projectsenduser'@'localhost' WITH GRANT OPTION;

Наконец, сохраните изменения и выйдите.

FLUSH PRIVILEGES;
EXIT;

Шаг 5: Загрузите и установите ProjectSend

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

cd /tmp
sudo wget -O projectsend.zip https://www.projectsend.org/download/387/
sudo mkdir -p /var/www/projectsend
sudo unzip projectsend.zip -d /var/www/projectsend/

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

sudo cp /var/www/projectsend/includes/sys.config.sample.php /var/www/projectsend/sys.config.php

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

sudo nano /var/www/projectsend/sys.config.php

Затем внесите выделенные ниже изменения:

/**
Database driver to use with PDO.
Possible options: mysql, mssql
*/
define('DB_DRIVER', 'mysql'); 
/** Database name */
define('DB_NAME', 'projectsend');
/** Database host (in most cases it's localhost) */
define('DB_HOST', 'localhost');
/** Database username (must be assigned to the database) */
define('DB_USER', 'projectsenduser');
/** Database password */
define('DB_PASSWORD', 'type_database_user_password');
/**
Prefix for the tables. Set to something other than tbl_ for increased
security onr in case you want more than 1 installations on the same database.

Сохраните и выйдите.

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

sudo chown -R www-data:www-data /var/www/projectsend/
sudo chmod -R 755 /var/www/projectsend/

Установка WordPress на Ubuntu

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

В этой небольшой статье мы рассмотрим как выполняется установка WordPress на Ubuntu 20.04. Мы будем устанавливать самую последнюю на данный момент версию. Также кратко будет рассмотрена настройка стека LAMP.

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

Установка Apache

Для установки последней версии веб-сервера выполните:

sudo apt install apache2 apache2-utils

Затем добавьте программу в автозагрузку и запустите сервис:

sudo systemctl enable apache2
sudo systemctl start apache2

Чтобы проверить работает ли веб-сервер, введите IP адрес вашего сервера в браузере. Если вы устанавливаете веб-сервер на локальной машине, используйте адрес http://127.0.0.1 или localhost:

По умолчанию все HTML документы хранятся в каталоге /var/www/html. Если вас интересует более подробная информация по настройке веб-сервера, посмотрите статью установка apache в Ubuntu.

Установка сервера баз данных MySQL

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

sudo apt install mysql-client mysql-server

Чтобы завершить настройку mysql выполите команду:

sudo mysql_secure_installation

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

Затем нужно будет изменить пароль:

Останется закрыть доступ к аккаунту суперпользователя из сети и отключить гостевой доступ. Вы можете отвечать Y или N, но лучше всё сделать как рекомендует программа и отвечать Y.

Подробнее про настройку mysql читайте в статье установка LAMP в Ubuntu.

Установка PHP и необходимых модулей

Последнее что нужно сделать перед тем, как установить WordPress на Ubuntu 16.04 - это установить php и несколько модулей для работы интерпретатора с веб-сервером и сервером баз данных. Для этого выполните команду:

sudo apt install php7.4 php7.4-mysql libapache2-mod-php7.4 php7.4-cli php7.4-cgi php7.4-gd

Чтобы проверить как работает php создайте файл с именем info.php в каталоге /var/www/html/:

sudo vi /var/www/html/info.php

phpinfo();
?>

Затем откройте в веб-браузере адрес http://ip-адрес/info.php. Если все правильно настроено, то вы увидите страницу с информацией о версии PHP:

Активация модулей Apache

Для корректной работы WordPress нужно, чтобы был активирован модуль Apache mod_rewrite. Для его включения выполните:

sudo a2enmod rewrite

Затем перезагрузите веб-сервер:

sudo systemctl restart apache2

Установка WordPress в Ubutnu

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

wget -c http://wordpress.org/latest.tar.gz

Распакуйте содержимое архива в текущую папку:

tar -xzvf latest.tar.gz

Скопируйте файлы WordPress из текущей папки в папку /var/www/html/:

sudo rsync -av wordpress/* /var/www/html/

Для того чтобы веб-сервер мог правильно работать с этими файлами нужно установить для них правильные права, а именно пользователь и группа www-data:

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/

Фактически установка WordPress на Ubuntu 20.04 завершена, но осталось еще настроить соединение с базой данных. Чтобы по умолчанию открывался WordPress файл index.html можно удалить:

sudo rm /var/www/html/index.html

Создание базы данных

Чтобы создать базу данных сначала войдите в интерфейс управления mysql, для этого выполните:

sudo mysql -u root -p

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

mysql> CREATE DATABASE wp_database;
mysql> CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON wp_database.* TO 'wp_user'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Замените wp_database на желаемое имя базы данных, wp_user - имя пользователя, а password на нужный пароль. Модификатор localhost означает, что к этой базе смогут подключиться только с локальной машины.

Настройка WordPress в Ubuntu

Всё готово для настройки WordPress. Откройте адрес сервера, на котором устанавливали WordPress или localhost, если программа была установлена на локальном компьютере. В первом окне программа предложит вам выбрать язык:

На следующем шаге нажимайте Вперед:

Далее введите имя базы данных, имя пользователя и пароль, которые использовали при создании базы.

Осталось выбрать название сайта, логин администратора, а также ввести пароль администратора. Можно оставить пароль, который предлагает система.

Затем останется только авторизоваться и можно пользоваться только что настроенной системой управления контентом.