Примітки щодо встановлення в Debian GNU/Linux

Хоча PHP можна зібрати з початкового коду, він також доступний у вигляді пакетів в » Debian GNU/Linux. Це діє і для інших дистрибутивів на основі Debian, як от Ubuntu, Kali Linux і Linux Mint.

Увага

Збірки від сторонніх розробників вважаються неофіційними і безпосередньо проектом PHP не підтримуються. Про знайдені вади, якщо вони не можуть бути відтворені на » офіційних збірках, необхідно повідомляти постачальників цих неофіційних збірок.

Пакунки можна встановити командою apt або aptitude. Ці дві команди вважаються рівнозначними.

Використання APT

По-перше, варто зауважити, що інші пов'язані пакети можуть потребувати libapache2-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, як от php-cgi, php-cli та php-dev, а також багато інших розширень PHP. Під час встановлення розширень будуть автоматично встановлені додаткові пакунки, необхідні для задоволення залежностей цих розширень.

Приклад #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-файл та вебсервер було перезапущено після встановлення цих розширень.
add a note

User Contributed Notes 2 notes

up
73
thumbs at apache dot org
12 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-FPMWhile 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
42
kearney dot taaffe at gmail dot com
7 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 runSTEP 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-devSo 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-readlineSTEP 4:compile the binaries by typing: makeIf no errors, install by typing: make installSTEP 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.confmv php-fpm.d/www.conf.default php-fpm.d/www.confSTEP 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-fpmSTEP 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 .bashrcif [ -d "$HOME/bin" ] ; then  PATH="$HOME/bin:$PATH"fiSTEP 9: Start PHP-FPM    sudo ~/bin/php7/sbin/php-fpm
To Top