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

Change language: EnglishBrazilian PortugueseChinese (Simplified)FrenchGermanJapaneseRussianSpanishTurkishOther

Submit a Pull Request Report a Bug

Раздел содержит информацию и подсказки, относящиеся к установке PHP на » Debian GNU/Linux.

Внимание

Неофициальные сборки от третьих лиц не поддерживаются. О любых ошибках следует сообщать разработчикам Debian, но перед этим стоит проверить, возможно они уже исправлены в новых релизах, которые можно скачать на » странице загрузки.

Хотя и существует универсальная инструкция по установке PHP на Unix/Linux, в этом разделе мы рассмотрим особенности специфичные для Debian, такие как использование команд apt или aptitude. В рамках этого руководства обе эти команды рассматриваются как взаимозаменяемые.

Использование APT

Во первых, обратите внимание на то, что некоторые пакеты связаны:

libapache-mod-php нужен для интеграции с Apache 2, и php-pear с PEAR.

Во-вторых, перед установкой убедитесь, что список пакетов находится в актуальном состоянии. Как правило, это делается с помощью команды apt update.

Пример #1 Пример установки Apache 2 на Debian

# apt install php-common libapache2-mod-php php-cli

APT автоматически установит модуль PHP для Apache 2 и все их зависимости и, затем, активирует их. Apache должен быть перезапущен для того, чтобы изменения вступили в силу. Например:

Пример #2 Остановка и запуск Apache после установки PHP

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Контроль конфигурации

Изначально, PHP устанавливается только с основными модулями ядра. Если вы хотите установить дополнительные модули, такие как MySQL, cURL, GD и т.д., это также можно сделать с помощью команды apt.

Пример #3 Способы получить список дополнительных пакетов PHP

# apt-cache search php
# apt search php | grep -i mysql
# aptitude search php

Будет выведен список большого числа пакетов, включая несколько специфичных, таких как php-cgi, php-cli and php-dev.

Определите, какие вам нужны и установите с помощью apt-get или aptitude. И, так как Debian производит проверку зависимостей, вам будет выведен запрос на их установку.

Пример #4 Установка PHP с MySQL и cURL

# apt install php-mysql php-curl

APT автоматически добавит необходимые строки в соответствующие php.ini, /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.ini, и т.д. В зависимости от модуля, будут внесены записи типа extension=foo.so. В любом случае, чтобы эти изменения вступили в силу, необходимо будет перезапустить сервер веб-сервер.

Стандартные проблемы

  • Если скрипты PHP не разбираются веб-сервером, то скорее всего это означает, что PHP не был добавлен в конфигурацию веб-сервера. На Debian это обычно /etc/apache2/apache2.conf или похожий. Смотрите документацию Debian для выяснения подробностей.
  • Модуль, по-видимому, установлен, а его функции всё равно не распознаются. В таком случае убедитесь, что соответствующий ini-файл был загружен и/или веб-сервер был перезагружен после установки модуля.
  • Для установки пакетов в Debian существуют две основных команды (не считая стандартных вариантов Linux): apt и aptitude. Объяснения их синтаксиса, особенностей и отличий друг от друга выходит за рамки данного руководства.

add a note

User Contributed Notes 6 notes

up

down

61

thumbs at apache dot org

9 years ago

To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.

Specifically, the preferred method is now fastcgi, using either of those recipes:

(mod_fastcgi, httpd 2. 2)
http://wiki.apache.org/httpd/php-fastcgi

(mod_fcgid, httpd 2.2)
http://wiki.apache.org/httpd/php-fcgid

(mod_proxy_fcgi, httpd 2.4)
http://wiki.apache.org/httpd/PHP-FPM

While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.

Thank you!

up

down

38

kearney dot taaffe at gmail dot com

5 years ago

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

up

down

-16

marin at sagovac dot com

9 years ago

To install LAMP stack on Ubuntu (+Server) from 10. 04 you need first install taskel and then lamp-server for example:

Install taskel, follow terminal guides:
sudo apt-get install tasksel

Install LAMP stack package from Ubuntu repository:

sudo tasksel install lamp-server

up

down

-24

juraj at jurajsplayground dot com

13 years ago

On Ubuntu (since 7.04), rather do:
sudo tasksel install lamp-server

Details:
https://help.ubuntu.com/community/ApacheMySQLPHP

up

down

-27

John Fisher

16 years ago

With Apache2 and Php4 under Debian Sarge there is an extra configuration file :  /etc/apache2/sites-available/default

This file is not clearly documented, at least not for noobs, in Apache docs.

It overrides the conf file in the way you expect the /etc/apache2/conf. d/apache2-doc  to do according to the README.

Add ExecCGI to it to get rid of "Options ExecCGI is off in this directory"  errors.

up

down

-41

tranzbit at yahoo dot com

13 years ago

On Ubuntu:

sudo apt-get install apache2 php5 mysql-client-5.0 mysql-server-5.0 phpmyadmin libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql

then restart the computer/start mysql manually
From:
http://ubuntuforums.org/showthread.php?t=186492

add a note

PHP: Файл конфигурации — Manual

Change language: EnglishBrazilian PortugueseChinese (Simplified)FrenchGermanJapaneseRussianSpanishTurkishOther

Submit a Pull Request Report a Bug

Файл конфигурации (php.ini) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI)
  • Переменная среды PHPRC.
  • Местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP]. Для 32-разрядного PHP на 64-разрядной Windows [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]. Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x. y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]. Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], значение IniFilePath (только для Windows).
  • Текущая директория (исключая CLI).
  • Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
  • В директории Windows (C:\windows или C:\winnt) (для Windows) или --with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI — это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini), то он используется вместо php.ini. Тип интерфейса между веб-сервером и PHP может быть определён с помощью функции php_sapi_name().

Замечание:

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

В php.ini можно использовать переменные окружения, как показано ниже.

Пример #1 Переменные окружения php.ini

; PHP_MEMORY_LIMIT взята из переменных окружения
memory_limit = ${PHP_MEMORY_LIMIT}

Директивы php. ini, обрабатываемые модулями, описаны на соответствующих страницах модулей. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini. Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.

Пример #2 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
[php] ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
;    true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes
; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"
; обратный слеш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

Возможно обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = ${open_basedir} ":/new/dir".

Сканирование директорий

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini. Это можно сделать на моменте компиляции, указав опцию —with-config-file-scan-dir. Сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR.

Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе (; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATOR, которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью —with-config-file-scan-dir.

В каждой директории PHP сканирует все файлы заканчивающиеся на . ini в алфавитном порядке. Список всех загруженных файлов в том порядке, в котором они были загружены, доступен с помощью функции php_ini_scanned_files(), либо при запуске PHP с опцией —ini.

add a note

User Contributed Notes 2 notes

up

down

15

weili

1 year ago

For someone who's also wondering.

PHP can work even if there is no configuration file(php.ini) loaded,
it will simply applies the default values to directives.

up

down

-17

ohcc at 163 dot com

6 years ago

in php.ini you can reference to an existing directive or an environment variable using the syntax ${varname}.

Here are some examples.

sys_temp_dir = "${WINDIR}"

--- ${WINDIR} will be replaced by $_ENV['WINDIR'] at runtime

--- you can set environment variables by Apache and use them in php. ini
--- FcgidInitialEnv AUTHOR "WUXIANCHENG"
--- error_log = "${AUTHOR}.log"

error_log = "${sys_temp_dir}"

--- ${sys_temp_dir} will be replace by the value of sys_temp_dir

Also you can use PHP constants in php.ini, but DONT'T wrap them in ${} or "".

error_log = "/data/"PHP_VERSION"/"

---  it works like this php code:

$error_log =  "/data/" . PHP_VERSION . "/";

add a note

Как найти местоположение файла php.ini из командной строки

Содержание…

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

В этой статье мы узнаем, как найти и отредактировать файл php. ini с помощью командной строки. Если вы хотите отредактировать файл php.ini в Cpanel, следуйте этому руководству, отредактируйте файл php.ini в Cpanel.

Найти местоположение файла php.ini

Прежде всего, найдите местоположение файла php.ini с помощью командной строки в Linux.

  1. Войдите на свой сервер через ssh.
  2. Теперь проверьте установленную версию php с помощью команды ниже.
 $ php --версия

PHP 7.4.6 (cli) (НТС)
Авторское право (c) Группа PHP
Zend Engine v3.4.0, авторское право (c) Zend Technologies
    с Zend OPcache v7.4.6, Copyright (c), Zend Technologies
 

Давайте найдем файл php.ini, используя команду ниже.

 # php -i | grep php.ini
 

Вы получите вывод, как показано ниже:

 Файл конфигурации (php.ini) Путь => /etc
Загруженный файл конфигурации => /etc/php.ini
 

Теперь вы нашли файл php.ini, расположенный в каталоге /etc/.

Получить информацию о PHP с помощью CLI

Чтобы получить информацию о PHP, вы также можете использовать CLI. Введите «-i», а затем команду php. Например:

 # php -I
# php -i | более
# php -i | grep pdo
 

Вы также можете проверить загруженный модуль php с помощью вышеуказанного, но вы также можете проверить модуль php, создав файл php.info.

Часто задаваемые вопросы

Где я могу найти файл php.ini?

Файл php.in очень полезен для настройки поведения PHP во время выполнения и является файлом конфигурации по умолчанию для приложения php. Вы можете установить такие параметры, как директор загрузки, зарегистрировать глобальную переменную, отключить ошибки и многое другое. Итак, запустите ” php -i | grep php.ini», чтобы найти расположение файла php.ini.

Как открыть файл php.ini?

Чтобы открыть файл php.ini, вы можете использовать любой текстовый редактор, такой как vim, vi, nano и т. д. Пример: vim /etc/php.ini.

Как перезагрузить файл php.ini после обновления?

Перезагрузите просто запущенную службу apache, перезагрузите systemctl httpd.

Как открыть файл php.ini в терминале Linux?

Чтобы открыть файл php.ini в терминале Linux и просто использовать команду vim или vi. Например: vim /etc/php.ini.

Где находится файл php.ini в WordPress?

По умолчанию файл php.ini в WordPress находится в каталоге wp-admin.

Спасибо! за посещение LookLinux.

Если вы найдете это руководство полезным, поделитесь им с друзьями, чтобы сохранить его. Для более полезной темы посетите мой веб-сайт www.looklinux.com . Чтобы стать автором на LookLinux Отправьте статью . Оставайтесь на связи с Facebook .

Как найти файл php.ini, используемый командной строкой?

создано 14.11.22, обновлено 15.11.22. :: 4 минуты чтения

PHPIni FilePhp

Contents


Существует несколько способов найти файл php.ini с помощью командной строки в Linux Ubuntu, Linux Mint и других дистрибутивах Linux. Некоторые из показанных здесь параметров также совместимы с Windows, особенно с использованием WSL.

Что такое php.ini

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

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

Где находится файл php.ini по умолчанию

Файл php.ini ищется в следующих местах (по порядку):

  • Местоположение конкретного модуля SAPI (директива PHPiniDir в Apache 2, командная строка -c опция в CGI и CLI)

  • Переменная среды PHPRC.

  • Местоположение файла php.ini может быть установлено для разных версий PHP. Корень ключей реестра зависит от 32- или 64-битности установленной ОС и PHP. Для 32-битного PHP в 32-битной ОС или 64-битного PHP в 64-битной ОС используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] для 32-битной версии PHP в 64-битной ОС используйте [HKEY_LOCAL_MACHINE\SOFTWARE \WOW6432Node\PHP]]. Для установки той же разрядности проверяются следующие ключи реестра по порядку: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , где x, y и z означают основную, дополнительную и выпускную версии PHP.Для 32-разрядных версий PHP в 64-разрядной ОС проверяются следующие ключи реестра по порядку: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [ HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], где x, y и z означают основную, дополнительную и релизную версии PHP. ключи, первый найденный будет использоваться в качестве местоположения php. ini (только для Windows).0003

  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], значение IniFilePath (только для Windows).

  • Текущий рабочий каталог (кроме CLI).

  • Каталог веб-сервера (для модулей SAPI) или каталог PHP (иначе в Windows).

  • Каталог Windows (C:\windows или C:\winnt) (для Windows) или параметр времени компиляции –with-config-file-path.

Если php-SAPI.ini существует (где SAPI — это используемый SAPI, например, php-cli.ini или php-apache.ini ), он используется вместо php.ini . Имя SAPI можно определить с помощью php_sapi_name() (возвращает тип интерфейса между веб-сервером и PHP).

Как найти файл php.ini из командной строки

php –ini

Существует простая опция --ini , которую можно использовать при запуске php command:

 php --ini
 

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

 Файл конфигурации (php.ini) Путь: /etc/php/7.4/cli
Загруженный файл конфигурации: /etc/php/7.4/cli/php.ini
Сканируйте дополнительные файлы .ini в: /etc/php/7.4/cli/conf.d
Проанализированы дополнительные файлы .ini: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/15-xml.ini,
/etc/php/7.4/cli/conf.d/20-bcmath.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-gd.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-intl.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-mbstring.ini,
/etc/php/7.4/cli/conf.d/20-mysqli.ini,
/etc/php/7.4/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.4/cli/conf.d/20-pgsql.ini,
/etc/php/7.4/cli/conf.d/20-redis.ini,
/etc/php/7. 4/cli/conf.d/20-simplexml.ini,
/etc/php/7.4/cli/conf.d/20-sockets.ini,
/etc/php/7.4/cli/conf.d/20-sqlite3.ini,
/etc/php/7.4/cli/conf.d/20-xmlreader.ini,
/etc/php/7.4/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.4/cli/conf.d/20-xsl.ini,
/etc/php/7.4/cli/conf.d/20-zip.ini,
/etc/php/7.4/cli/conf.d/xdebug.ini
 

php-config —ini-dir

Используя php-config , вы можете указать только путь, по которому находится основной файл конфигурации PHP:

 php-config --ini-dir
 

Вывод примерно такой:

 /etc/php/7.4/cli/conf.d
 

php -i и grep

Команда php -i показывает полный результат phpinfo() . Вы можете найти все конфигурации и применить команду grep для фильтрации только файла конфигурации .ini :

 php -i | grep 'Файл конфигурации'
 

Или в Windows вы можете использовать вместо поиска :

 php -i | find/i"файл конфигурации"
 

Результат для обеих команд будет похож на:

 Файл конфигурации (php. ini) Путь => /etc/php/7.4/cli
Загруженный файл конфигурации => /etc/php/7.4/cli/php.ini
 

Наконец, вы можете использовать grep для фильтрации всех строк phpinfo() , который показывает .ini :

 php -i | grep "\.ini"
 

Вывод будет похож на php -i команда:

 Файл конфигурации (php.ini) Путь: /etc/php/7.4/cli
Загруженный файл конфигурации: /etc/php/7.4/cli/php.ini
Сканируйте дополнительные файлы .ini в: /etc/php/7.4/cli/conf.d
Проанализированы дополнительные файлы .ini: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/15-xml.ini,
/etc/php/7.4/cli/conf.d/20-bcmath.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-gd.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-intl.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-mbstring.