Как работает PHP

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

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

1. Как работать с настройками PHP
2. Как запускается PHP на хостинге
3. Работа с MySQL
4. Работа с Redis
5. Работа с Memcached
6. Работа с npm

1. Как работать с настройками PHP

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

Если же есть необходимость изменить настройки PHP, то:

Пример настроек PHP для сайта mydomain.com в контейнере u37663:

Настройки PHP


2. Как запускается PHP на хостинге

На хостинге для запуска PHP мы используем 3 компонента: Nginx, Apache, FastCGI. Рассмотрим каждый из них.

Nginx

Обрабатывает входящие подключения, отдает статические файлы. Перенаправляет запросы в apache.

Apache

Мы используем Apache для совместимости с сайтами, которые полагаются на инструкции в файлах .htaccess.

Поэтому все инструкции в .htaccess обрабатываются стандартным образом.

FastCGI

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

В современном окружении доступны версии PHP от 5.6 до 7.3.

В старом окружении доступны версии PHP от 5.2 до 7.3.

В обоих случаях обработкой PHP занимается FastCGI.

У каждого сайта свой индивидуальный Apache.

3. Работа с MySQL

MySQL доступен только через сокет /run/mysqld/mysqld.sock и недоступен по сети.

Пример подключения к MySQL в PHP при помощи расширения mysqli.

<?php
$servername = "localhost";
$username = "c566_wp_c2_u37663_netangels_ru";
$password = "HeKriDapsonag31";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Сохраним этот код в файл mysql.php и разместим в каталоге с сайтом.

Если после открытия этого скрипта в браузере появляется сообщение Connected successfully, то подключение к MySQL прошло успешно.

4. Работа с Redis

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

Пример подключения к Redis из PHP:

<?php
   //Connecting to Redis server on localhost
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "Connection to server was sucessfull";
   //check whether server is running or not
   echo "<br>Server is running: ".$redis->ping();
?>

Сохраним этот код в файл redis.php и разместим в каталоге с сайтом.

Подключение к Redis прошло успешно, если после открытия скрипта в браузере появляется сообщение

Connection to server was sucessfull
Server is running: +PONG

5. Работа с Memcached

Пример подключения к Memcached и сохранения данных на 300 секунд.

 <?php

 $memcache_obj = memcache_connect('localhost', 11211);

 memcache_set($memcache_obj, 'SC1_Terran_Ground_Units', 'SCV, Marine, Firebat, Medic, Ghost, Vulture, Siege Tank, Goliath', 0, 300);

 echo memcache_get($memcache_obj, 'SC1_Terran_Ground_Units');

 ?>

Сохраним этот код в файл mem.php и разместим в каталоге с сайтом.

Подключение к Memcached прошло успешно, если после открытия скрипта в браузере появляется сообщение

SCV, Marine, Firebat, Medic, Ghost, Vulture, Siege Tank, Goliath

6. Работа с npm

В данном разделе описывается работа сайтов на PHP c npm. Если вы планируете разместить проект на Node.js, пожалуйста, обратитесь к соответствующей статье.

По умолчанию npm и Node.js для сайтов на PHP недоступны, однако некоторым CMS (например, Bitrix или Laravel) иногда необходимы для работы модули, которые возможно установить только с помощью npm.

В таком случае вы можете воспользоваться утилитой Node Version Manager, которая позволяет установить Node.js локально для сайта или всего контейнера. Подробная информация об NVM доступна на странице проекта в GitHub.

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

c40057@h25:~$ cd sitename.ru/
(php 7.3)c40057@h25:~/sitename.ru$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
(php 7.3)c40057@h25:~/sitename.ru$ source ../.bashrc
(php 7.3)c40057@h25:~/sitename.ru$ nvm install node

Сразу же после можно приступать к установке модулей.

(php 7.3)c40057@h25:~/sitename.ru$ npm install express

В каталоге сайта появится папка node_modules, куда модули и будут установлены.

С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
18 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты