Dutch PHP Conference 2025 - Call For Papers

Замітки для Debian GNU/Linux

Ця сторінка містить замітки та підказки призначені для встановлення PHP на » Debian GNU/Linux.

Увага

Неофіційні збірки від третіх сторін тут не згадуються. Про будь-які несправності потрібно звітувати команді Debian, якщо їх не можна відтворити, використовуючи останні збірки з нашої » сторінки завантажень.

Хоча загальні інструкції для встановлення PHP на Unix застосовуються також і до Debian, ця сторінка містить специфічну інформацію щодо інших моментів, як наприклад використання команд apt або aptitude. Тут використовуються ці дві команди по черзі.

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

По-перше, варто зауважити, що інші пов'язані пакети можуть потребувати libapache2-mod-php для інтеграції з Apache 2, та php-pear для PEAR.

По-друге, перед встановленням пакетів список пакетів має бути оновлено. Типово, це робиться через запуск команди apt update.

Приклад #1 Приклад встановлення Debian з Apache 2

# 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. Вони встановлюються за допомогою apt або aptitude. Оскільки Debian виконує перевірку залежностей, буде запропоновано, наприклад, встановити MySQL та cURL:

Приклад #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 2 notes

up
73
thumbs at apache dot org
11 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
42
kearney dot taaffe at gmail dot com
6 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
To Top