В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.
1. Как работать с настройками PHP
2. Как запускается PHP на хостинге
3. Работа с MySQL
4. Работа с Redis
5. Работа с Memcached
6. Работа с npm
Для вашего удобства по умолчанию уже включены большинство необходимых для работы PHP модулей, поэтому обычно настройки PHP редактировать не требуется.
Если же есть необходимость изменить настройки PHP, то:
Пример настроек PHP для сайта mydomain.com в контейнере u37663
:
На хостинге для запуска PHP мы используем 3 компонента:
Nginx
, Apache
, FastCGI
. Рассмотрим каждый из них.
Обрабатывает входящие подключения, отдает статические файлы. Перенаправляет запросы в apache.
Мы используем Apache для совместимости с сайтами, которые полагаются на инструкции в файлах .htaccess.
Поэтому все инструкции в .htaccess обрабатываются стандартным образом.
При создании контейнера можно выбрать, использовать ли современное окружение или старое окружение.
В современном окружении доступны версии PHP от 5.6 до 7.3.
В старом окружении доступны версии PHP от 5.2 до 7.3.
В обоих случаях обработкой PHP занимается FastCGI.
У каждого сайта свой индивидуальный Apache.
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 прошло успешно.
На хостинге в 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
Пример подключения к 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
В данном разделе описывается работа сайтов на 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, куда модули и будут установлены.