Встановлення на Unix системи

Зміст

Цей розділ описує основне налаштування та встановлення PHP на Unix системи. Обов'язково прочитайте всі розділи призначені для ваших платформ чи веб-сервера, перш ніж почати процес.

Як зазначено в розділі Загальні Інструкції Встановлення, ми головним чином працюватимемо над встановленням PHP, що призначається для веб-програмування, хоча згадаємо також і про налаштування PHP для використання в командному рядку.

Є кілька способів встановлення PHP на Unix платформі - або в процесі збірки та конфігурування, або за допомогою готових дистрибутивів. Ця документація в основному сфокусована на процесі збірки та конфігурування PHP. Багато Unix-подібних систем мають певні програми встановлення пакетів. Вони можуть допомогти з налаштуванням стандартної конфігурації, але якщо вам потрібен інший набір функцій (такий як безпековий сервер, або різні драйвера до баз даних), вам може знадобитись компіляція PHP та/або веб-сервера. Якщо ви не знайомі з побудовою та компіляцією вашого програмного забезпечення, варто перевірити чи немає вже готових пакетів, що мають версію PHP з потрібною функціональністю.

Необхідні знання та програмне забезпечення для компіляції:

  • Базові знання Unix (вміння оперувати "make" та компілятором C)
  • Компілятор ANSI C
  • Веб-сервер
  • Будь-які специфічні компоненти модулів (такі як бібліотеки GD, PDF, і т.д.)

При побудові безпосередньо із сирців Git чи після ручних модифікацій, вам також можуть знадобитись:

  • autoconf: 2.13+ (для PHP < 5.4.0), 2.59+ (для PHP >= 5.4.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (окрім 1.4.2)
  • re2c: Версії 0.13.4 або новішої
  • flex: Версії 2.5.4 (для PHP <= 5.2)
  • bison: Version 1.28 (preferred), 1.35, or 1.75 (for PHP <= 5.4), 2.4.x <= 2.7.x (for PHP 5.5), 2.4.x <= 3.0.0 (for PHP 5.6)

Ініціалізуючий процес встановлення та налаштування PHP контролюється через опції командного рядка при виконанні скрипта configure. Можна побачити список всіх доступних параметрів разом з коротким поясненнями, запустивши ./configure --help. Наш посібник документує різні параметри окремо. Можна проглянути основні параметри конфігурації в додатковому розділі, тоді як специфічні параметри для різних розширень можна знайти на відповідних сторінках (див. зміст даної сторінки).

Коли PHP сконфігуровано, все готово для побудови модулів та/або виконавчих файлів. Команда make повинна подбати про це. Якщо це не вдається та ви не можете зрозуміти чому, дивіться розділ Проблеми встановлення.

add a note add a note

User Contributed Notes 2 notes

up
11
cj3 at clifjackson dot net
6 years ago
I recently ran in to a situation where I was building PHP 7.1.13 from source. Configuration & make went fine, however, when I ran make install it hung. It turns out that if you are building PHP with Apache (apxs) the make file calls apxs with the -a flag which tells it to modify the httpd.conf file. If, for whatever reason, the file is not writeable then it fails and you get the hang.

Line 108 in my Makefile looks like this:

INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/lib64/httpd/modules' && $(mkinstalldirs) '$(INSTALL_ROOT)/etc/httpd/conf' && /usr/sbin/apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/lib64/httpd/modules'      -S SYSCONFDIR='$(INSTALL_ROOT)/etc/httpd/conf' -i -a -n php7 libphp7.la

I had to remove the -a flag and then it was fine.
up
-20
Arjan van Bentem
17 years ago
When using Red Hat Fedora, beware of Security Enhanced Linux, SELinux.

Quoted from Red Hat: "The security goal is to make sure that Apache HTTP is only reading the static Web content, and not doing anything else such as writing to the content, connecting to database sockets, reading user home directories, etc."

These limitations include, among many other things, using mkdir to create directories, using fopen to access files, using fopen or get_headers to read URLs, or using exec to run external applications that happen to use sockets (or maybe access some files, but which will run fine when executed from the command line as Unix user apache or httpd -- such as HylaFAX "faxstat" as invoked from nweb2fax recvq.php and sendq.php).

See /var/log/messages for any denials due to the SELinux policy. To disable it:

- System, Administration, Security Level and Firewall
- open the SELinux tab
- click the Transition tree
- check Disable SELinux protection for Apache HTTP
- execute /etc/init.d/httpd restart

See also http://fedora.redhat.com/docs/selinux-faq/ and http://php.net/results.php?q=selinux&p=wholesite
To Top