Apache 2.0 на Unix системах
Этот раздел описывает установку PHP c Apache 2.0 на Unix системах.
Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM или первый Apache. Подробную информацию по этому вопросы вы можете найти в соответствующем разделе FAQ
За базовой информацией об Apache 2.0 обращаетесь к » документации Apache.
Замечание: Совместимость PHP и Apache 2.0.x Следующие версии PHP признаны совместимыми с веб-сервером Apache 2.0.x
Эти версии PHP совместимы с Apache 2.0.40 и более поздними релизами сервера.
- PHP 4.3.0 и более поздние, доступны на странице » http://www.php.net/downloads.php.
- Последняя стабильная разрабатываемая версия. Скачать исходные коды можно здесь:» http://snaps.php.net/php5-latest.tar.gz, а бинарные сборки для Windows здесь: » http://snaps.php.net/win32/php5-win32-latest.zip.
- Версии в разработке: » http://qa.php.net/.
- Вы всегда можете получить PHP с помощью » анонимного CVS.
Apache 2.0 SAPI поддерживается начиная с версии PHP 4.2.0. PHP 4.2.3 работает с версией Apache 2.0.39, не используйте другие версии Apache с PHP 4.2.3. Все же рекомендуется устанавливать PHP 4.3.0 или более позднюю версию и самую последнюю версию Apache2.
Все упомянутые версии PHP продолжают работать с Apache 1.3.x.
Скачайте последнюю версию » Apache 2.0 и соответствующую версию PHP. Это краткое руководство описывает лишь базовую установку Apache 2.0 и PHP Для получения более детальной информации прочитайте » документацию Apache. В инструкции ниже опущены номера версий - замените 'NN' на номер версии присутствующий в именах скачанных вами файлов.
Пример #1 Инструкция по установке PHP, как подгружаемого модуля Apache 2
1. gzip -d httpd-2_0_NN.tar.gz 2. tar xvf httpd-2_0_NN.tar 3. gunzip php-NN.tar.gz 4. tar -xvf php-NN.tar 5. cd httpd-2_0_NN 6. ./configure --enable-so 7. make 8. make install Теперь ваш Apache 2.0.NN доступен как /usr/local/apache2, сконфигурирован с поддержкой подгружаемых модулей и стандартным мульти-процессорным модулем (MPM) prefork. Чтобы простестировать правильность установки используйте стандартную процедуру запуска Apache, такую как: /usr/local/apache2/bin/apachectl start Затем остановите сервер, чтобы сконфигурировать и установить PHP /usr/local/apache2/bin/apachectl stop. 9. cd ../php-NN 10. Теперь мы сконфигурируем PHP. Здесь вы можете настроить установку PHP при помощи параметров командной строки скрипта configure. Вы можете включить или выключить некоторые расширения. Просмотрите вывод команды ./configure --help для получения полного списка параметров конфигурации. В нашем примере мы сконфигурируем PHP очень просто - с поддержкой Apache и MySQL. В вашей системе путь до apxs может отличаться от указанного в примере, так же бинарный файл может иметь имя apxs2. ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql 11. make 12. make install Если вы решите изменить параметры конфигурации после установки, вам надо будет повторить только три последних шага. Так же вам надо будет рестартовать Apache, чтобы новые модули подгрузились и начали работать. Перекомпиляция Apache для этого не требуется. Заметьте, что 'make install' установит так же PEAR, различные инструменты PHP - такие как phpize, версию PHP для командной строки (PHP CLI) и т.д. 13. Настройка вашего php.ini cp php.ini-dist /usr/local/lib/php.ini Вероятно, вы захотите изменить некоторые настройки в php.ini. Если вы предпочитаете держать файл php.ini в другом месте, используйте параметр --with-config-file-path=/some/path в шаге 10. Если вы используете php.ini-recomended, прочитайте его, чтобы знать какие изменения в поведении PHP это повлечет. 14. Отредактируйте ваш httpd.conf, чтобы Apache подгружал модуль PHP. Путь в инструкции LoadModule должен указывать на модуль PHP. Команда make install может добавить эту иструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться. Для PHP 4: LoadModule php4_module modules/libphp4.so Для PHP 5: LoadModule php5_module modules/libphp5.so 15. Теперь следует сконфигурировать Apache, чтобы он передавал файлы с некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем это для файлов с расширениями .php и .phtml. Вы можете добавить так же другие расширения в конец строки, разделяя их символом пробела. AddType application/x-httpd-php .php .phtml Сделаем то же самое для расширения .phps - модуль PHP покажет его как исходный код с подстветкой синтаксиса, вместо того, чтобы исполнять. AddType application/x-httpd-php-source .phps 16. Используйте стандартную процедуру запуска Apache, например: /usr/local/apache2/bin/apachectl start
Следуя иструкциям выше вы запустите веб-сервер Apache 2.0 с поддержкой PHP, как модуля SAPI. Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. Используйте ./configure --help для получения полного списка параметров конфигурации. Если вы хотите собрать многопоточную версию Apache 2.0, вам следует заменить стандартный модуль MPM prefork на worker или perchild. Чтобы сделать это, нужно добавить в строку configure на шаге 6, описанном выше один из двух параметров --with-mpm=worker или --with-mpm=perchild. Вам следует как могут повлиять такие изменения. Для получения подробной информации прочитайте документацию Apache касательно » модулей MPM.
Замечание: Если вы хотите использовать зависимый контент (content negotiation), прочитайте Apache MultiViews FAQ.
Замечание: Для построения многопоточной версии Apache, ваша система должна поддерживать потоки. Это так же подразумевает сборку PHP c поддержкой Zend Thread Safety (ZTS). И, как следствие, не все расширения PHP смогут работать. Рекомендуется установка Apache с модулем MPM prefork.
- Apache 1.3.x на системах Unix
- Apache 2.x на Unix системах
- Nginx 1.4.x on Unix systems
- Установка PHP на Lighttpd 1.4 на Unix системах
- Sun, iPlanet and Netscape servers on Sun Solaris
- Установка с интерфейсами CGI и командной строки
- Инструкции по установке для ОС HP-UX
- OpenBSD installation notes
- Инструкции по инсталляции для ОС Solaris
- Debian GNU/Linux installation notes
Коментарии
When I upgrade to apache 2.2, this:
AddType application/x-httpd-php .php5
AddType application/x-httpd-php .php42
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .asp
...does not worked for me, so I did this:
<FilesMatch "\.(php*|phtm|phtml|asp|aspx)$">
SetHandler application/x-httpd-php
</FilesMatch>
Another interesting point with Apache 2.2 is following.
Let suppose we installed PHP as module. But for some directory, we need to use PHP as CGI (probably because of custom configuration). This can be done using:
<FilesMatch "\.(php*|phtm|phtml|asp|aspx)$">
SetHandler none
</FilesMatch>
AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge
Note type must be different than "application/x-httpd-php" and also you need to deactivate the handler on sertain extention. You can do mixed configuration:
<FilesMatch "\.(php)$">
SetHandler none
</FilesMatch>
AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge
in such case files like *.php5 and so on will be parsed via module, but *.php will go to php-huge executable.
I had just installed php8.1.12 on a machine used for writing C code.
Below are some libraries that I needed to download on a debian-based OS.
apt-get install libpcre3 libpcre3-dev
apt-get install apache2-dev
apt-get install libxml2-dev
apt-get install libsqlite3-dev
These were the missing packages that I required.
If you get an error regarding a missing package or library, for example when I needed sqlite3, run the command:
apt search sqlite3
And you'll be able to see if there's any dev or lib packages.
The apache2 instructions worked flawlessly at the time of php8.1.12; and in order to get certain requirements for an application, I had to run the php configure file like so:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql --with-mysqli --with-zip --enable-gd
The extra flags allowed me to use both types of mysql, allowed me to utilize PHP zip archiving, and allowed me to use Gnatt stuff.