Php

Debian php ini: Где находится файл php.ini в ОС Debian 8 ISP Manager 5 lite? — Хабр Q&A

Содержание

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

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

Интерпретатор php может поставляться в виде модуля для Apache, выполнять скрипты из командной строки или в виде отдельного сервиса php-fpm. Эти сервисы отличаются своими возможностями, и предназначением, но для любого вида интерпретатора нужно задать базовые настройки, например, рабочая папка, включенные расширения, отображение ошибок и так далее. Все эти настройки задаются через файл php.ini. В этой инструкции мы рассмотрим как выполняется настройка файла php.ini в операционных системах Linux, хотя все информация подойдет и для Windows.

Если у вас еще не установлен интерпретатор языка программирования php, то вы можете ознакомиться со статьей установка lamp в Ubuntu 16.04.

Содержание статьи:

Расположение и синтаксис php.ini

Для каждой версии интерпретатора конфигурационный файл php.ini находится в отдельной папке. Но все конфигурационные файлы находятся в папке /etc/php, например, /etc/php5:

ls /etc/php5/

Папка conf.d содержит общие настройки для различных расширений и модулей, они не будут нас сейчас интересовать. Более интересны следующие три папки — apache, cli и fpm. В них содержатся конфигурационные файлы php.ini для каждого из этих интерпретаторов.

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

Что касается синтаксиса файла, то он разделен на секции, сначала идет секция настройки php, которая разделена на подсекции в зависимости от типа настроек, дальше идут секции настройки разных модулей. Синтаксис самих настроек очень прост, он соответствует привычному синтаксису ini  файлов. Строка начинается с имени настройки, затем следует знак равно, а за ним значение:

имя_настройки=значение_параметра

Символами [] обозначается имя секции, например, [PHP], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.

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

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

sudo gedit /etc/php5/apache/php.ini

Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.

Вывод ошибок в php

Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:

display_errors=off

Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:

error_reporting = E_ALL  & ~E_DEPRECATED

Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак ~. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:

error_reporting = 0

Включите запись ошибок php в лог файл, если не выводите их на экран:

log_errors = On

Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:

ignore_repeated_errors = On

Ограничения ресурсов

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

По умолчанию максимальное время выполнения скрипта — 30 секунд, сделаем минуту:

max_execution_time = 30

Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:

max_input_time=60

Максимальное количество переменных в GET и POST:

max_input_vars = 1000

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

memory_limit = 128M

Максимальный размер данных, передаваемых в POST запросе тоже ограничивается, размер по умолчанию — 8 Мегабайт:

post_max_size = 8M

Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:

open_basedir = /var/www/

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

disable_functions = ini_set

Директории по умолчанию

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

include_path = ".:/usr/share/php5:/usr/share/php5/PEAR"

Папка с модулями php:

extension_dir="./"

Папка для записи временных файлов:

sys_temp_dir = "/tmp"

Загрузка файлов

Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:

file_uploads = On

Максимальный размер загружаемого файла:

upload_max_filesize = 2M

Максимальное количество файлов, которые может загрузить один скрипт:

max_file_uploads = 20

Настройка php.ini практически завершена, нам остались лишь расширения.

Настройка расширений

Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.

Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:

extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so

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

Выводы

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

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

PHP: Инструкции по установке на Debian GNU/Linux

Compiling PHP on Ubuntu boxes.

If you would like to compile PHP from source as opposed to relying on package maintainers, here’s a list of packages, and commands you can run

STEP 1:
sudo apt-get install autoconf build-essential curl libtool \
  libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
  libreadline-dev libzip-dev libzip4 nginx openssl \
  pkg-config zlib1g-dev

So you don’t overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live

    mkdir -p ~/bin/php7-latest/

STEP 2:
# download the latest PHP tarball, decompress it, then cd to the new directory.

STEP 3:
Configure PHP. Remove any options you don’t need (like MySQL or Postgres (—with-pdo-pgsql))

./configure —prefix=$HOME/bin/php-latest \
    —enable-mysqlnd \
    —with-pdo-mysql \
    —with-pdo-mysql=mysqlnd \
    —with-pdo-pgsql=/usr/bin/pg_config \
    —enable-bcmath \
    —enable-fpm \
    —with-fpm-user=www-data \
    —with-fpm-group=www-data \
    —enable-mbstring \
    —enable-phpdbg \
    —enable-shmop \
    —enable-sockets \
    —enable-sysvmsg \
    —enable-sysvsem \
    —enable-sysvshm \
    —enable-zip \
    —with-libzip=/usr/lib/x86_64-linux-gnu \
    —with-zlib \
    —with-curl \
    —with-pear \
    —with-openssl \
    —enable-pcntl \
    —with-readline

STEP 4:
compile the binaries by typing: make

If no errors, install by typing: make install

STEP 5:
Copy the PHP.ini file to the install directory

    cp php.ini-development ~/bin/php-latest/lib/

STEP 6:

cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

STEP 7:
create symbolic links for your for your binary files

   cd ~/bin
   ln -s php-latest/bin/php php
   ln -s php-latest/bin/php-cgi php-cgi
   ln -s php-latest/bin/php-config php-config
   ln -s php-latest/bin/phpize phpize
   ln -s php-latest/bin/phar.phar phar
   ln -s php-latest/bin/pear pear
   ln -s php-latest/bin/phpdbg phpdbg
   ln -s php-latest/sbin/php-fpm php-fpm

STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version

# add this to .bashrc
if [ -d «$HOME/bin» ] ; then
  PATH=»$HOME/bin:$PATH»
fi

STEP 9: Start PHP-FPM

    sudo ~/bin/php7/sbin/php-fpm

PHP 7 – настройка файла PHP.INI

Если в этом параметре php ini указан путь, PHP должен автоматически добавить конструкцию include() в начало каждого PHP-файла. Следует учитывать ограничения для путей включаемых файлов.

Если в этом параметре указан путь, PHP должен автоматически ввести конструкцию include() в конец каждого PHP-файла, кроме случаев, когда осуществляется выход с помощью функции exit (). Следует учитывать ограничения для путей включаемых файлов.

Если установить это значение, вам будет разрешено включать или запрашивать файлы только из указанных каталогов. Каталог include обычно находится под корневым документом. Это необходимо, если вы работаете в безопасном режиме. Установите для параметра значение .in, чтобы включить файлы из каталога, в котором находится ваш скрипт. Несколько каталогов разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib.

При настройке php ini если вы используете Apache, то в файле httpd.conf корневой каталог документа для этого сервера или виртуального хоста уже задан. Установите это значение здесь, если используете безопасный режим или хотите разрешить PHP только для части сайта (например, только в одном подкаталоге).

Активируйте этот флаг, если загружаете файлы с помощью PHP-скрипта.

Не удаляйте комментарии из этой строки, если не понимаете, что такое HTTP-загрузка!

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

Определяет, что произойдет, если посетитель сайта нажмет в своем браузере кнопку «Остановить». По умолчанию установлено значение On, которое означает, что скрипт продолжит работать до завершения или таймаута. Если изменить значение данного параметра на Off, скрипт будет прерван. Этот параметр работает только в режиме модуля, а не в CGI.

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

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

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

Данная публикация представляет собой перевод статьи «PHP 7 — PHP.INI File Configuration» , подготовленной дружной командой проекта Интернет-технологии.ру

телеграм канал. Подпишись, будет полезно!

Настройка PHP — Документация ISPmanager Lite

PHP имеет множество настроек, которые может изменить Администратор или Пользователь ISPmanager. При этом набор значений зависит от режима работы. В режимах работы PHP «CGI», «FastCGI (Apache)» и «FastCGI (Nginx + PHP-FPM)» используются пользовательские значения. В режиме «Модуль Apache» — значения, указанные администратором. Если пользователь не изменял значение параметра, то вместо пользовательского значения переменной будет использоваться значение, указанное администратором.

Значения переменных выделены цветами:

  • Красный — параметры, значения которых не определены в конфигурационном файле PHP и получены непосредственно от самого интерпретатора PHP.
  • Зелёный — параметры, значения которых определены в глобальном конфигурационном файле PHP для администратора и в пользовательском для пользователя.
  • Синий — параметры, значения которых не определены.
  • Жёлтый — параметры, значения которых доступны пользователю только для чтения.

Изменение значений переменных


Чтобы изменить значение переменной:

  1. Под администратором перейдите в Настройки web-сервера → PHP → Настройка. Под пользователем перейдите в WWW → PHP → Настройка

    Обратите внимание!

    Администратор определяет значения каких переменных отображаются пользователям по умолчанию. Для настройки перейдите в Настройки web-сервера → PHP → Настройка, выберите переменную и нажмите Показать

  2. Выделите переменную и нажмите Изменить.
  3. Укажите новое Значение переменной.

Глобальный конфигурационный файл настроек хранится в:

  • CentOS: /etc/php.ini для нативной версии PHP и в /opt/<версия PHP>/etc/php.ini для альтернативных версий.
  • Debian: для каждого режима работы PHP индивидуальный файл. /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и /etc/php5/fpm/php.ini.

Пользовательские конфигурационные файлы хранятся в /var/www/<директория php-bin версии PHP>/<владелец WWW-домена>/php.ini. Настройки, которые изменял пользователь, хранятся в этой же директории в изменённых параметров .php.ini.

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

Шаблон создания конфигурационных файлов

Файл /usr/local/mgr5/etc/templates/php.ini используется как шаблон создания пользовательских конфигурационных файлов. При создании нового пользователя настройки PHP для него изменяются в соответствии с шаблоном. По умолчанию шаблон содержит строки:

session.save_path = "$HOMEDIR/bin-tmp/"
upload_tmp_dir = "$HOMEDIR/bin-tmp/"
sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]

 Пояснения

$HOMEDIR — макрос, который при создании пользователя заменяется на его домашнюю директорию.

Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»

Если пользователь ISPmanager сохраняет изменения настроек PHP:

  1. Изменённые значения переменных записываются в конфигурационный файл изменённых параметров.
  2. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
  3. Значения из конфигурационного файла изменённых параметров заменяют соответствующие значения в пользовательском конфигурационном файле.

Если администратор ISPmanager сохраняет изменения настроек PHP:

  1. Значения записываются в глобальный конфигурационный файл.
  2. Для каждого пользователя ISPmanager:
    1. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
    2. Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.

Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»

Если пользователь ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в конфигурационный файл PHP-FPM пользователя соответствующей версии PHP.

Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP.

Применение настроек для режима работы PHP «модуль Apache»

Пользователь не имеет доступа к изменению настроек PHP для этого режима.

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

Первоначальная настройка PHP


Чтобы упростить первоначальную настройку PHP основные параметры сгруппированы:

  1. Перейдите в Настройки web-сервера → PHP → Настройка → Основные.
  2. Выберите Временную зону, которая будет использоваться по умолчанию всеми функциями даты и времени. Указывается в переменной «date.timezone».
  3. Укажите Время выполнения PHP-скрипта в секундах. Если за это время загрузка скрипта не происходит, его работа завершается. Указывается в переменной «max_execution_time».
  4. Укажите Макс. размер запроса в МиБ. Оно определяет максимально допустимый размер данных, отправляемых методом POST. Указывается в переменной «post_max_size».
  5. Укажите Макс. размер файлов в МиБ. Оно определяет максимальный размер загружаемых с помощью PHP-скриптов файлов. Указывается в переменной «upload_max_filesize».
  6. Укажите Лимит памяти в МиБ. Он определяет максимальный объём оперативной памяти, который может использовать PHP-скрипт. Указывается в переменной «memory_limit».
  7. Чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Рекомендуем использовать эту опцию только для отладки скриптов и отключать её после завершения работы.
  8. Чтобы ISPmanager вёл журнал работы PHP-скриптов, включите опцию log_errors. Настройте список ошибок, записываемых в журнал. Для этого включите опцию Вывод всех ошибок и в поле Выбор флагов для игнорирования при выводе ошибок выберите исключения, которые не будут записываться.

     Пояснения

    В конфигурационный файл php.ini добавляются строки вида:

    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.

     Пояснения

    E_ALL — включает вывод всех ошибок.

    & ~E_DEPRECATED & ~E_STRICT — исключаемые ошибки, указанные через «& ~».

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

     Пояснения

    В конфигурационный файл php.ini добавятся строки вида:

    error_reporting = E_ERROR | E_NOTIC

     Пояснения

    E_ERROR | E_NOTIC — журналируемые ошибки, указанные через » | «.

Восстановление значения переменной


Чтобы восстановить значение переменной под администратором:

  1. Нажмите Настройки web-сервера → PHP → Восстановить.
  2. Изменённое значение удаляется из глобального конфигурационного файла PHP.
  3. Для каждого пользователя ISPmanager:
    1. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
    2. Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.

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

  1. Нажмите WWW → PHPВосстановить.
  2. Изменённое значение удаляется из пользовательского конфигурационного файла PHP.

Как установить PHP 7.4 на Debian 10 / Debian 9

Как установить PHP 7.4 на Debian 10 (Buster) / Debian 9 (Stretch)?. PHP является наиболее широко используемым языком сценариев на стороне сервера при создании динамических веб-страниц. PHP-приложения обычно хорошо работают с HTML и взаимодействуют с системами управления базами данных отношений. С каждым релизом PHP появляется множество новых возможностей.

Установка PHP на Debian 9/Debian 10

Выполните описанные ниже действия, чтобы установить PHP 7.4 в дистрибутиве Debian 10 & Debian 9 Linux. Последние сборки PHP для Debian доступны в репозитории SURY PHP PPA.

1. Обновление системы

Убедитесь что ваша система обновлена до актуального состояния. Для этого выполните следующие действия:

sudo apt-get update && sudo apt-get upgrade

2. Добавление нового репозитория

Загрузим и сохраним репозиторий PPA в файл на вашем сервере. Также загрузим ключ GPG.

sudo apt -y install lsb-release apt-transport-https ca-certificates 
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Добавим репозиторий:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

3. Установим PHP7.4 в Debian

Последний шаг-это установка PHP 7.4 на Debian 10 / Debian 9. Перед установкой обновите список системных пакетов в добавленных репозиториях.

sudo apt update

Затем установите новую версию PHP на Debian 10 / Debian 9:

sudo apt-get -y install php7.4

Ответьте Да, когда вам будет предложено завершить установку PHP в системе Debian 10 / Debian 9 Linux.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1
  libcurl4 libgdbm-compat4 libgdbm6 libjansson4 libldap-2.4-2 libldap-common liblua5.2-0 libnghttp2-14 libpcre2-8-0 libperl5.28 librtmp1
  libsasl2-2 libsasl2-modules libsasl2-modules-db libsodium23 libssh3-1 perl perl-modules-5.28 php-common php7.4-cli php7.4-common php7.4-json
  php7.4-opcache php7.4-readline psmisc ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
  libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
  libb-debug-perl liblocale-codes-perl openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1
  libcurl4 libgdbm-compat4 libgdbm6 libjansson4 libldap-2.4-2 libldap-common liblua5.2-0 libnghttp2-14 libperl5.28 librtmp1 libsasl2-2
  libsasl2-modules libsasl2-modules-db libsodium23 libssh3-1 perl perl-modules-5.28 php-common php7.4 php7.4-cli php7.4-common php7.4-json
  php7.4-opcache php7.4-readline psmisc ssl-cert
The following packages will be upgraded:
  libpcre2-8-0
1 upgraded, 36 newly installed, 0 to remove and 7 not upgraded.
Need to get 15.0 MB of archives.
After this operation, 76.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Используйте следующую команду для установки дополнительных пакетов:

sudo apt-get install php7.4-xxx

Пример:

sudo apt-get install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip}

Конфигурации PHP, связанные с Apache, хранятся в файле:

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

Использование PHP 7.4 на Debian с Nginx:

Установка php на Debian настраивает Apache. Для пользователей, заинтересованных в запуске Nginx и PHP, вам нужно остановить и отключить службу Apache.

sudo systemctl disable --now apache2

Затем установите пакеты расширения fpm и nginx.

sudo apt-get install nginx php7.4-fpm

Файлы конфигурации PHP FPM находятся в каталоге: 

sudo nano /etc/php/7.4/fpm/

Службы nginx и php-fpm должны быть запущены.

$ systemctl status php7.4-fpm nginx
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-17 17:32:26 UTC; 14s ago
     Docs: man:php-fpm7.4(8)
 Main PID: 12151 (php-fpm7.4)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2377)
   Memory: 14.7M
   CGroup: /system.slice/php7.4-fpm.service
           ├─12151 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
           ├─12152 php-fpm: pool www
           └─12153 php-fpm: pool www


● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-17 17:32:27 UTC; 12s ago
     Docs: man:nginx(8)
 Main PID: 12362 (nginx)
    Tasks: 2 (limit: 2377)
   Memory: 3.2M
   CGroup: /system.slice/nginx.service
           ├─12362 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─12363 nginx: worker process

Наслаждайтесь разработкой ваших веб-сайтов и веб-приложений с PHP в системе Debian 10 / Debian 9 Linux.

Также можете прочесть про установку PHP7.4 + Nginx на Ubuntu Server

Если есть вопросы, то пишем в комментариях.

RSS

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка phpmyadmin в Debian 10

Из этой инструкции вы узнаете, как установить phpmyadmin Debian 10 с Apache, MariaDB, PHP (стек LAMP). phpMyAdmin — это бесплатный веб-инструмент для управления базами данных с открытым исходным кодом, написанный на PHP. Он предоставляет удобный интерфейс, для управления базой данных MySQL или MariaDB.

Также мы узнаем, как включить базовую аутентификацию веб сервера для phpMyAdmin. Для начала, вам потребуется ОС Debian 10, работающая на вашем локальном компьютере или на удаленном сервере.

Содержание статьи:

Установка phpmyadmin в Debian 10

Предполагаю, что вы уже установили стек LAMP в Debian. Если нет, ознакомьтесь с соответствующей инструкцией.

Обратите внимание, что вам нужно иметь права root при установке программного обеспечения в Debian. Вы можете добавить sudo в начале команды или использовать команду su — для переключения на пользователя root. С этим разобрались, теперь давайте начнем установку phpMyAdmin.

Шаг 1: Загрузите phpMyAdmin

PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net с помощью следующей команды.

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip

Подсказка: Вы всегда можете использовать вышеуказанный формат URL для загрузки последней стабильной версии phpMyAdmin. Просто замените 4.9.0.1 на номер последней версии.

И извлеките его:

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

Переместите phpMyadmin 4.9 в каталог /usr/share/:

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

Затем сделайте пользователя веб-сервера (www-data) владельцем этой директории.

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Шаг 2: Создайте базу данных и пользователя

Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin. По умолчанию пакет MariaDB в Debian использует unix_socket для аутентификации входа пользователя, что в основном означает, что вы можете использовать имя пользователя и пароль ОС для входа в консоль MariaDB. Таким образом, вы можете выполнить следующую команду для входа без предоставления пароля root для MariaDB.

sudo mysql -u root

Затем создайте новую базу данных для phpMyAdmin, используя следующую команду SQL. Мы называем его phpmyadmin, вы можете использовать любое имя для базы данных.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Следующая команда SQL создаст пользователя базы данных phpmyadmin и установит пароль, и в то же время предоставит все разрешения новой базы данных новому пользователю, чтобы позже phpMyAdmin мог выполнять запись в базу данных. Замените текст, выделенный красным, на ваш пароль.

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'vash_parol';

Обновите таблицу привилегий и выйдите из консоли MariaDB.

FLUSH PRIVILEGES;
EXIT;

Шаг 3: Установите модули PHP

Выполните следующую команду, чтобы установить модули PHP, необходимые или рекомендованные phpMyAdmin:

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Затем перезапустите Apache:

sudo systemctl restart apache2

Шаг 4. Настройка Apache

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

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Вставьте следующий текст в файл:

# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>pen_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>pen_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>

Сохраните и закройте файл. Затем включите этот фрагмент конфигурации:

sudo a2enconf phpmyadmin.conf

Нам также нужно создать временную папку phpMyAdmin:

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Перезагрузите Apache, чтобы изменения вступили в силу:

sudo systemctl reload apache2

Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу:

http://ip_адрес/phpmyadmin

Если phpMyAdmin установлен на вашем локальном компьютере Debian, вы можете получить доступ к веб-интерфейсу phpMyAdmin, введя следующий текст в адресной строке браузера:

http://localhost/phpmyadmin

 

Если соединение отклонено или не удалось установить, возможно, существует межсетевой экран, предотвращающий запросы HTTP. Если вы используете брандмауэр iptables, вам нужно выполнить следующую команду, чтобы открыть TCP-порты 80 и 443.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Если вы используете брандмауэр UFW, выполните эту команду, чтобы открыть порты TCP 80 и 443:

sudo ufw allow http
sudo ufw allow https

Шаг 5: Запустите скрипт установки

Введите следующее в адресной строке браузера:

ip_адрес/phpmyadmin/setup

Или же:

localhost/setup

 

Нажмите кнопку Новый сервер, чтобы настроить сервер. Далее просто нажмите на кнопку Apply. Затем нажмите кнопку Display, чтобы отобразить файл конфигурации.

В каталоге /usr/share/phpmyadmin/ создайте файл config.inc.php:

sudo vi /usr/share/phpmyadmin/config.inc.php

Скопируйте содержимое файла config.inc.php со страницы установки phpMyAdmin и вставьте его в файл /usr/share/phpmyadmin/config.inc.php.

Шаг 6: Создайте администратора

Теперь, если вы попытаетесь войти в phpMyAdmin с учетной записью root MariaDB, вы можете увидеть следующую ошибку.

#1698 - Access denied for user 'root '@'localhost'

А также:

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

Если вы войдете в систему с пользователем phpmyadmin, вы не увидите вышеупомянутую ошибку. Однако пользователь phpmyadmin может использоваться только для управления базой данных phpmyadmin. Причиной ошибки является то, что по умолчанию пользователь root MariaDB проходит проверку подлинности с помощью плагина unix_socket, а не с помощью плагина mysql_native_password. Чтобы решить эту проблему, мы можем создать другого пользователя-администратора и предоставить все привилегии новому пользователю-администратору.

Войдите на сервер MariaDB из командной строки.

sudo mysql -u root

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

CREATE USER admin@localhost IDENTIFIED BY 'новый_пароль';

Предоставьте все привилегии для всех баз данных.

GRANT ALL PRIVILEGES *.* TO admin@localhost WITH GRANT OPTION;

Сбросьте привилегии и выйдите;

FLUSH PRIVILEGES;
EXIT;

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

Шаг 7: Настройте хранилище настроек

Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to 'Operations' tab of any database to set it up there.

Нажмите на ссылку Find out why. Затем нажмите Create, чтобы создать таблицы в базе данных phpmyadmin.

Шаг 8: Ограничение доступа к каталогу /setup

Чтобы ограничить доступ к каталогу /setup, мы можем включить базовую аутентификацию по паролю с веб-сервером Apache. Выполните следующую команду, чтобы установить пароль для пользователя admin. Файл /etc/apache2/htpasswd используется для хранения имен пользователей и паролей.

sudo htpasswd -c /etc/apache2/htpasswd admin

Затем отредактируйте файл конфигурации Apache для phpMyAdmin

sudo vi /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

Добавьте следующие строки.

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/apache2/htpasswd
</IfModule>
Require valid-user
</IfModule>
</Directory>

Сохраните и закройте файл. Затем перезагрузите Apache, чтобы изменения вступили в силу:

sudo systemctl reload apache2

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

Выводы

В этой статье мы разобрали как выполняется установка Phpmyadmin Debian 10 Buster вручную. Эту же инструкцию вы можете использовать и для других дистрибутивов.

Менеджер версий php для Debian/Ubuntu.

Скрипт мультиверсионности мной более не поддерживается, т.к в новых версиях дебиан все сложнее автоматизировать установку старых версий php. Поэтому php 5 собирайте руками. Либо проходите по ссылке.

Выкладываю мой скрипт который поможет установить несколько версий php из исходных кодов на ваш сервер. Скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu. Удобно с помощью скрипта поддерживать актуальные версии php на сервере с вестой, т.к скрипт умеет автоматически обновлять шаблоны весты при сборке.
На debian 7/8 с моими флагами установки без проблем собираются php 5.2 и выше.
На ubuntu 14.04/16.04 по умолчанию собираются php 5.3 и выше. 5.2 при компиляции валится с ошибкой. Поэтому если нужен 5.2 юзайте дебиан.
Что делает скрипт:

  1. При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в /usr/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.
  2. При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.
  3. Парсит http://php.net/downloads.php и http://php.net/releases/ на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в /opt/php/src.

    Также можно положить архивы с иходниками в /opt/php/src/bzips, тогда скрипт не будет их скачивать.

  4. Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.

    Тем кто хочет использовать свои параметры компиляции обязательно кликнуть сюда
    Можно свои параметры конфигурирования положить в файл /opt/php/options. Если скрипт находит этот файл, то он использует его для конфигурирования. Свой файл можно сделать на основе моего. Скрипт заменяет version в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.

  5. При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi в апаче. Если модуль не включен, то включает его.

Запустить скрипт очень просто

# git clone https://github.com/petranikin/mgrvphp.git
# cd mgrvphp
# bash mgrvphp

Немного скриншотов

linux — Где найти php.ini?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

php.ini не читается (Debian / ISP Config)

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

PHP: примечания по установке Debian GNU / Linux

Компиляция PHP на ящиках Ubuntu.

Если вы хотите скомпилировать PHP из исходного кода, а не полагаться на сопровождающих пакетов, вот список пакетов и команд, которые вы можете выполнить.

ШАГ 1:
sudo apt-get install autoconf build-essential curl libtool \
libssl- dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev

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

mkdir -p ~ / bin / php7-latest /

ШАГ 2:
# загрузите последний архив PHP, распакуйте его, затем перейдите в новый каталог.

ШАГ 3:
Настройте PHP. Удалите все ненужные параметры (например, MySQL или Postgres (—with-pdo-pgsql))

./configure —prefix = $ HOME / bin / php-latest \
—enable-mysqlnd \
— -with-pdo-mysql \
—with-pdo-mysql = mysqlnd \
—with-pdo-pgsql = / usr / bin / pg_config \
—enable-bcmath \
—enable-fpm \
— -with-fpm-user = www-data \
—with-fpm-group = www-data \
—enable-mbstring \
—enable-phpdbg \
—enable-shmop \
—enable- сокеты \
—enable-sysvmsg \
—enable-sysvsem \
—enable-sysvshm \
—enable-zip \
—with-libzip = / usr / lib / x86_64-linux-gnu \
— -with-zlib \
—with-curl \
—with-pear \
—with-openssl \
—enable-pcntl \
—with-readline

ШАГ 4:
скомпилируйте двоичные файлы, набрав : make

Если ошибок нет, установите, набрав: make install

ШАГ 5:
Скопируйте PHP.ini в каталог установки

cp php.ini-development ~ / bin / php-latest / lib /

ШАГ 6:

cd ~ / bin / php-latest / etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d / www.conf.default php-fpm.d / www.conf

STEP 7:
создайте символические ссылки для вашего двоичного файла файлы

cd ~ / bin
ln -s php-latest / bin / php php
ln -s php-latest / bin / php-cgi php-cgi
ln -s php-latest / bin / php-config php- config
ln -s php-latest / bin / phpize phpize
ln -s php-latest / bin / phar.phar phar
ln -s php-latest / bin / pear pear
ln -s php-latest / bin / phpdbg phpdbg
ln -s php-latest / sbin / php-fpm php-fpm

ШАГ 8: подключите локальный PHP в команду php. Вам нужно будет выйти, а затем снова войти в систему, чтобы php переключился на локальную версию вместо установленной версии

# добавьте это в .bashrc
if [-d «$ HOME / bin»]; затем
PATH = «$ HOME / bin: $ PATH»
fi

ШАГ 9: Запустите PHP-FPM

sudo ~ / bin / php7 / sbin / php-fpm

.

Encontrar php.ini en Linux — Clouding.io

Características

Характеристики

Характеристики

Ventajes
Преимущества
Avantatges
Funcionalidades
Функциональные возможности
Funcionalitats
Инфраэстрактура
Инфраструктура
Инфраэстрактура
API
API
API
Imágenes
Изображений
Imatges

Носотрос

О нас

Носальтрес

Más sobre Clouding
Подробнее о затемнении
Més sobre Clouding
Контакты
Связаться с нами
Contacte
Блог
Блог
Блог

Soporte

Поддержка

Супорт

Soporte Clouding.io
Поддержка Clouding.io
Поддержка Clouding.io
Облачные плюсы
Облачные плюсы
Облачные плюсы
Base de conocimiento
База знаний
База де конеиксемент

Контакты
Связаться с нами
Contacte
Вопросы-Ответы
Вопросы-Ответы
Вопросы-Ответы
Инисиар Сесион
Авторизоваться
Инисиар Сессио

Crea tu cuenta gratis

Создать бесплатный аккаунт

Crea el teu compte gratis

Каталон

Español

Английский

Характеристики

Характеристики

Характеристики

Ventajes
Преимущества
Avantatges
Funcionalidades
Функциональные возможности
Funcionalitats
Инфраэстрактура
Инфраструктура
Инфраэстрактура
API
API
API
Imágenes
Изображений
Imatges

Носотрос

О нас

Носальтрес

Más sobre Clouding
Подробнее о затемнении
Més sobre Clouding
Контакты
Связаться с нами
Contacte
Блог
Блог
Блог

Soporte

Поддержка

Супорт

Soporte Clouding.io
Поддержка Clouding.io
Поддержка Clouding.io
Облачные плюсы
Облачные плюсы
Облачные плюсы
Base de conocimiento
База знаний
База де конеиксемент

Контакты
Связаться с нами
Contacte
Вопросы-Ответы
Вопросы-Ответы
Вопросы-Ответы
Инисиар Сесион
Авторизоваться
Инисиар Сессио

Inicia tu Servidor Cloud

Запустите свой облачный сервер

Иниция эль теу Сервидор Клауд

Каталон

Español

Английский

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *