Содержание
- 1 Обработка данных
- 2 Prerequisites
- 3 Изменение файла php.ini
- 4 Related
- 5 Установка
- 6 Modifying the PHP Configuration
- 7 Для чего нужен файл php.ini для WordPress
- 8 Настройка во время выполнения
- 9 Настройки языка PHP
- 10 Создание и настройка конфигурационного файла my.ini
- 11 Добавление сайта
- 12 Настраиваем и проверяем взаимодействие PHP и MySQL
- 13 Настройка почты
Обработка данных
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.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
«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. Один из вариантов должен сработать, если нет — возможен другой, специфический механизм, это нужно уточнять у администратора почтового сервера.
С этим читают
- Как создать пользователя mysql и настроить права доступа
- Как установить mysql на сервер с ubuntu 18.04
- Как установить linux, nginx, mysql, php (lemp) в ubuntu 16.04/18.04
- Установка сервера в связке: apache 2, php 5 и mysql 5
- Создание баз данных и таблиц с помощью команд sql
- Настройка удаленного подключения к mysql
- Ошибка wordpress error establishing database connection
- Сравнение производительности версий php
- Python write file/ read file
- Как сбросить пароль root для mysql или mariadb