Настройка файла php.ini

Обработка данных

variables_order = «EGPCS»


Эта директива определяет порядок регистрации переменных GET, POST, Cookie, Environment и встроенных переменных (соответственно, G, P, C, E и S).

register_globals = On|Off

Отключена возможность регистрации EGPCS-переменных как глобальных переменных.

register_argc_argv = On|Off

Разрешает или запрещает создание переменных $argv и $argc на основе информации, полученной методом GET.

register_long_arrays = On|Off

Директива, разрешающая или запрещающая использование для передачи переменных из форм длинных массивов вида $HTTP_***_VARS.

post_max_size = 8M

Максимально возможный размер данных, переданных методом POST, составляет, например, 8 Мбайт.

magic_quotes_gpc = On|Off

Отключена автоматическая обработка кавычек и апострофов, в данных GET, POST, и Cookie.

magic_quotes_runtime = On|Off

Включает или отключает заключение данных в обратные кавычки во время выполнения, к примеру, для SQL-запросов.

  • auto_prepend_file =
  • auto_append_file =

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

default_mimetype = «text/html»

Эта директива указывает, какую информацию PHP сообщает браузеру об используемой кодировке в заголовке Content-type. По умолчанию используется text/html без указания кодировки

doc_root =

Корневой каталог для PHP-сценариев.

extension_dir = «./»

Каталог, в котором хранятся динамически загружаемые расширения.

Prerequisites

For this guide, you need the following:

  • Ubuntu 14.04 Droplet
  • A non-root user with sudo privileges (Initial Server Setup with Ubuntu 14.04 explains how to set this up).
  • An understanding of editing files on a Linux system. The tutorial explains how to edit files.
  • A web server with PHP installed.

There are many web server configurations with PHP, but here are two common methods:

  • How To Install a LAMP stack on Ubuntu 14.04
  • One-Click Install LAMP on Ubuntu 14.04 with DigitalOcean

This tutorial is applicable to these DigitalOcean One-click Apps as well:

  • LAMP
  • LEMP
  • WordPress
  • PHPMyAdmin
  • Magento
  • Joomla
  • Drupal
  • Mediawiki
  • ownCloud

Note: This tutorial assumes you are running Ubuntu 14.04. Editing the file should be the same on other systems, but the file locations might be different.

All the commands in this tutorial should be run as a non-root user. If root access is required for the command, it will be preceded by .

Изменение файла php.ini

Для увеличения допустимого объема данных, импортируемых на сайт, требуется скорректировать величину, задаваемую в директивах upload_max_filesize и post_max_size. В случае виртуального хостинга пользователь может не владеть полным доступом к глобальным настройкам сервера, чтобы провести подобную операцию. Как правило, полный доступ к этому файлу имеется на локальном сервере (Denwer, OpenServer) либо на VPS хостинге.

При наличии доступа откройте файл php.ini в режиме правки и задайте новые значения в директивах upload_max_filesize и post_max_size. При этом величина upload_max_filesize должна быть меньше, чем post_max_size, а величина post_max_size не должна быть выше memory_limit. Не забудьте выполнить бэкап сайта и сохранить резервную копию файла php.ini, прежде чем вносить правки.

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

Related

  • Tutorial
    How To Develop a Drupal 9 Website on Your Local Machine Using Docker and DDEV

    DDEV is an open-source tool that uses Docker to build local development environments for many different PHP frameworks. Using the power of containerization, DDEV can greatly simplify how you work on multiple projects that use multiple tech stacks and multiple cloud servers.

    In this tutorial, you will begin developing a Drupal 9 website on your local machine using DDEV.

  • Tutorial

    There are three main commands, and a set of common log locations that you can use to get started troubleshooting Apache errors. Generally when you are troubleshooting Apache, you will use these commands in the order indicated here, and then examine log files for specific…

  • Tutorial

    This tutorial walks you through configuring a MongoDB installation to securely allow access from a trusted remote computer. This will involve updating your firewall rules to provide the remote server access to MongoDB’s default port and changing Mongo’s configuration file to update its IP binding setting.

  • Tutorial
    How To Secure MongoDB on Ubuntu 20.04

    MongoDB doesn’t have authentication enabled by default, meaning that any user with access to the server where the database is installed can add and delete data without restriction. In order to secure this vulnerability, this tutorial will walk you through creating an administrative user and enabling authentication. You’ll then test to confirm that only this administrative user has access to the database.

Установка

Для установки потребуется сервер с чистой установленной CentOS 7.

Примечание: Здесь и далее все команды должны выполняться под root.

Если вход под root отключен, залогинетесь под своей учетной записью, а затем перейдите под root.

Убедитесь, что находитесь в своей домашней директории:

Должны находиться в директории /root. Если нет перейдите в нее:

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

Примечание: Если на сервере нет утилиты загрузки файлов wget, установите ее:

Примечание: Если при запуске скрипта получили предупреждение.

Согласитесь отключить SELinux, выбрав Y, после чего перезагрузите сервер и повторно запустите скрипт установки.

Когда установка закончится (5-10 минут), перезагрузите сервер:

При первом входе на сервер под root будет предложено сменить пароль пользователя bitrix. Если этого не произошло, запустите скрипт:

Установите пароль пользователя bitrix.

Далее будет предложено создать пул серверов. В меню BitrixEnv выберите Create Management pool of server, а затем укажите имя пула.

Мастер создания пула откроет необходимые порты в CentOS для корректной работы продуктов 1С-Битрикс. Когда пул будет создан, появиться интерактивное меню для взаимодействия с BitrixEnv.

Для выполнения команд, в меню BitrixEnv необходимо ввести число и нажать Enter. Чтобы выйти из BitrixEnv в консоль CentOS нажмите 0. Чтобы вернуться из командной строки (если нажали 0. Exit или Ctrl+C) обратно в меню BitrixEnv, введите в консоли команду:

Примечание: Чтобы проверить, какие порты открыты на сервере, нужно выйти из BitrixEnv в консоль CentOS и выполнить:

Если вызвать команду без прав root, не будет видно процессов, которые слушают порты. Примерный список портов:

25 — smtp сервер;80 — http ;443 — https;5222 — bitrix xmpp сервер;5223 — bitrix xmpp сервер по ssl8890 — ntlm авторизация;8891 — ntlm авторизация по ssl; 8893 — http сервер мгновенных сообщений;8894 — https сервер мгновенных сообщений.

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

Modifying the PHP Configuration

The file can be edited to change the settings and configuration of how PHP functions. This section gives a few common examples.

Sometimes a PHP application might need to allow for larger upload files such as uploading themes and plugins on a WordPress site. To allow larger uploads for your PHP application, edit the file with the following command (Change the path and file to match your Loaded Configuration File. This example shows the path for Apache on Ubuntu 14.04.):

The default lines that control the file size upload are:

php.ini

Change these default values to your desired maximum file upload size. For example, if you needed to upload a 30MB file you would changes these lines to:

php.ini

Other common resource settings include the amount of memory PHP can use as set by :

php.ini

or , which defines how many seconds a PHP process can run for:

php.ini

When you have the file configured for your needs, save the changes, and exit the text editor.

Restart the web server to enable the changes. For Apache on Ubuntu 14.04, this command will restart the web server:

Refreshing the page should now show your updated settings. Remember to remove the when you are done changing your PHP configuration.

Для чего нужен файл php.ini для WordPress

Файл php.ini содержит настройки конфигурации для интерпретатора PHP, который обслуживает сервер. В этом файле задаются методы работы с данными, параметры безопасности системы и служебная информация, необходимая для корректной работы сервера, на котором располагается ваш сайт.

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

К примеру, хостер может ограничивать размер импортируемых на сервер данных. Допустимый размер загруженных файлов можно посмотреть в админке WordPress. Зайдите в меню «Медиафайлы» и выберите пункт «Добавить новый». Как правило, этот параметр задается хостером в интервале 2–128 Мб. При необходимости увеличения допустимого объема импортируемого файла, потребуется изменить соответствующий параметр в файле php.ini.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации MySQLi
Имя По умолчанию Место изменения Список изменений
«0» PHP_INI_SYSTEM Доступно с PHP 5.2.4. До PHP 7.2.16 и 7.3.3 значением по умолчанию было «1».
«1» PHP_INI_SYSTEM Доступно с PHP 5.3.0.
«-1» PHP_INI_SYSTEM Доступно с PHP 5.3.0.
«-1» PHP_INI_SYSTEM  
«3306» PHP_INI_ALL  
NULL PHP_INI_ALL  
NULL PHP_INI_ALL  
NULL PHP_INI_ALL  
NULL PHP_INI_ALL  
«0» PHP_INI_SYSTEM  
TRUE PHP_INI_SYSTEM Доступно с PHP 5.6.0.

Прочие детали и определения констант PHP_INI_* смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

integer

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

integer

Включает возможность создавать постоянные соединения с помощью mysqli_connect().

integer

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

integer

Максимальное количество соединений MySQL на процесс.

integer

TCP-порт, используемый по умолчанию для соединения с сервером баз данных, если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT, директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT, которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

string

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

string

Имя сервера, которое используется, если имя не было указано явно. Это имя не используется в .

string

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

string

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

integer

Автоматически восстанавливать соединение при его потере.

bool

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

Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT.

Настройки языка PHP

engine = On|Off


Разрешает обработку PHP скриптов.

short_open_tag = On|Off

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

asp_tags = On|Off

Разрешает для выделения кода PHP пользоваться тегами в стиле ASP — <% %>

Precision = 12

Определяет число цифр после запятой для чисел с плавающей точкой.

output_buffering = 4096

Указание размера буфера вывода в байтах включает буферизацию вывода.

safe_mode = On|Off

Включение или выключение безопасного режима.

safe_mode_allowed_env_vars = PHP_

Директива, позволяющая пользователю устанавливать только переменные окружения, начинающиеся с символов PHP_. Если эта директива пуста, то пользователи могут модифицировать любые переменные окружения, что может создать серьезные проблемы в защите сценариев.

safe_mode_protected_env_vars = LD_LIBRARY_PATH

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

disable_functions =

Данная директива позволяет запретить вызовы функций, которые перечислены в ней через запятую.

disable_classes =

Данная директива позволяет запретить вызовы классов, которые перечислены в ней через запятую.

Создание и настройка конфигурационного файла my.ini

Итак, имея в наличии архив с необходимой версией MySQL, создадим в корне локального диска «C:\» директорию «mysql», и распакуем в нее содержимое архива.

Перейдем в директорию «C:\mysql\» и найдем файл: «my-default.ini». Это файл — пример конфигурационного файла MySQL. Сделайте копию файла «my-default.ini» с именем «my.ini». В дальнейшем этот файл, будет основным конфигурационным файлом настройки MySQL.

Открываем в текстовом редакторе конфигурационный файл MySQL «C:\mysql\my.ini».

Найдем в конфигурационном файле директивы:

# basedir = …..
# datadir = …..
# port = …..

Раскомментируем их и пропишем им следующие значения:

basedir = "C:\mysql"
datadir = "C:\mysql\data"
port = "3306"
character-set-server = utf8

Добавление сайта

Предварительно настройте DNS-записи в на хостинге где размещены домены, записи должны соответствовать ip-адресу сервера.

В BitrixEnv запустите мастер добавления новго сайта Configure pool sites > Create site.

Укажите адрес сайта, тип kernel и другие данные .

Спустя некоторое время сайт будет добавлен.

Cайт будет создан в каталоге /home/bitrix/ext_www/site.ru

Если записи для домена настроены, то при переходе по адресу сайта в браузере, откроется страница установки сайта 1С-Битрикс.

Теперь можно установить новый сайт или восстановить уже существующий из бэкапа.

Примечание: Следует отметить, что при установке BitrixEnv в директории /home/bitrix/www/ создается сайт по умолчанию. Этот сайт будет открываться при переходе по ip-адресу вашего сервера в браузере. В нем так же размещены скрипты установки 1С-Битрикс. Не стоит оставлять их без внимания. Например, можно удалить и загрузить сюда пустой индексный файл index.html и/или при необходимости с помощью .htaccess настроить редирект на нужный сайт. Пример файлов.

Может пригодиться:


Ссылка на загрузку скрипта для новой установки битрикс: Ссылка на загрузку скрипта для восстановления сайта из бекапа:

Настраиваем и проверяем взаимодействие PHP и MySQL

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

В пункте «Работа с конфигурационным файлом php.ini» материала Подключение PHP к Apache нами был рассмотрен пример подключения динамически загружаемых расширений. Для дальней работой с MySQL в конфигурационном файле php «C:\php\php.ini» необходимо подключить следующие расширения (после подключения расширений необходимо перезагрузить веб-сервер):

в файле php.ini найдем блок Dynamic Extensions (Динамические Расширения)

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
...
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
...

раскомментируем необходимые расширения

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

Что такое расширение php_mysql

Это оригинальное расширение позволяет разрабатывать PHP приложения, которые могут взаимодействовать с базой данных MySQL. Расширение mysql предоставляет процедурный интерфейс и предназначено для использования с MySQL версии 4.1.3 или более ранними версиями.

Что такое расширение php_mysqli

Расширение mysqli, или как его еще называют улучшенное (improved) MySQL расширение, было разработано, чтобы дать возможность программистам в полной мере воспользоваться функционалом MySQL сервера версий 4.1.3 и выше. Расширение mysqli включается в поставку PHP версий 5 и выше.

После небольшой теории, давайте перейдем к практике, проверим взаимодействие PHP с MySQL. Для этого создаем в корневой директории управления сайтами «C:\Apache24\htdocs\» файл c именем «db.php», открываем его в текстовом редакторе и добавим по очереди несколько примеров кода указанных ниже:

Пример процедурного стиля mysqli

<?php
$host     = "localhost"; // хост
$user     = "root"; // логин
$password = ""; // пароль
$db_name  = "information_schema"; // имя базы данных

// устанавливаем соединение
$connect = mysqli_connect($host, $user, $password);
// сообщаем MySQL в какой кодировке мы будем работать с базой данных
mysqli_query("SET NAMES utf8");

// если соединение не установлено выводим ошибки
if (!$connect) {
  printf("Нет соединения с сервером: код ошибки - %s\n<br/>", mysqli_connect_errno());
  printf("Нет соединения с сервером: описание ошибки - %s\n<br/>", mysqli_connect_error());
  exit();
}
else { // иначе
  printf("Информация о хосте: %s\n<br/>", mysqli_get_host_info($connect));
	
  printf("<br/> Базы данных: <br/>");
  $db_list = mysqli_query("SHOW DATABASES");
  // выводим в цикле имена баз данных
  while ($row = mysqli_fetch_assoc($db_list, MYSQL_ASSOC)) {
    print_r($row);
    print_r("\n<br/>");
  }
	
  printf("<br/> Таблицы базы данных $db_name : <br/>");
  $tables_list = mysqli_query("SHOW TABLES FROM $db_name");
  // выводим в цикле имена таблиц баз данных $db_name
  while($row = mysqli_fetch_row($tables_list, MYSQL_NUM)) {	
    print_r($row);
    print_r("\n<br/>");
  }
	
}

// закрываем соединение
mysqli_close($connect);
?>

Пример процедурного стиля mysql

<?php
$host     = "localhost"; // хост
$user     = "root"; // логин
$password = ""; // пароль
$db_name  = "information_schema"; // имя базы данных

// устанавливаем соединение
$connect = mysql_connect($host, $user, $password);
// сообщаем MySQL в какой кодировке мы будем работать с базой данных
mysql_query("set names utf8");

// если соединение не установлено выводим ошибки
if (!$connect) {
  printf("Нет соединения с сервером: код ошибки - %s\n<br/>", mysql_connect_errno());
  printf("Нет соединения с сервером: описание ошибки - %s\n<br/>", mysql_connect_error());
  exit();
}
else { // иначе
  printf("Информация о хосте: %s\n<br/>", mysql_get_host_info($connect));
  
  printf("<br/> Базы данных: <br/>");
  $db_list = mysql_query("SHOW DATABASES");
  // выводим в цикле имена баз данных
  while ($row = mysql_fetch_assoc($db_list)) {
    print_r($row);
    print_r("\n<br/>");
  }
  
  printf("<br/> Таблицы базы данных $db_name : <br/>");
  $tables_list = mysql_query("SHOW TABLES FROM $db_name");
  // выводим в цикле имена таблиц баз данных $db_name
  while($row = mysql_fetch_row($tables_list)) {	
    print_r($row);
    print_r("\n<br/>");
  }
  
}

// закрываем соединение
mysql_close($connect);
?>

Сохраняем файл и открываем в браузере страницу http://localhost/db.php.

По итогам изучения данного материала мы рассмотрели процесс установки СУБД (системы управления базами данных) MySQL.

Настройка почты

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

Настройте почту для всех сайтов сервера, указав в Enter site name значение default.

Далее ведите DNS или IP-адреса почтового сервера Enter server address or DNS. Подтвердите нажатием Enter.

Укажите порт сервера Enter server port 25, 443 или иной используемый вашим почтовым сервером.

Выберите возможность авторизации на SMTP сервере Do you need auth options for. Если планируете использовать почту только для отправки уведомлений, нажмите N.

Укажите нужно ли использовать TLS Do you need TLS enabled for.

Подтвердите настройки нажатием Enter.

Настройки применены, посмотрите и при необходимости скорректируйте их в файле /home/bitrix/.msmtprc.

Пример настроек для Yandex почты

Пример настроек для Google почты

Пример настроек для корпоративного сервера Exchange

Попробуйте отправить тестовое письмо.

Из консоли сервера:

Или сайта на 1С-Битрикс (Инструменты — Командная PHP строка):

Если почта не отправляется

Посмотрите почтовый лог на сервере, путь до лога указан в конфигурационном файле .msmtprc, по умолчанию /home/bitrix/msmtp_default_.log или /home/bitrix/msmtp_site.ru_.log.

При ошибке вида: cannot use a secure authentication method, нужно включить авторизацию: auth on или auth login. Один из вариантов должен сработать, если нет — возможен другой, специфический механизм, это нужно уточнять у администратора почтового сервера.


С этим читают