PHP.mk документација

Apache 2.x на Unix системи

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

install.unix.apache2.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека install.unix.apache2.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Apache 2.x на Unix системи

Референца за `install.unix.apache2.php` со подобрена типографија и навигација.

install.unix.apache2.php

Apache 2.x на Unix системи

Овој дел содржи белешки и совети специфични за инсталациите на PHP на Apache 2.x на Unix системи.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Не препорачуваме користење на нишкаст MPM во продукција со Apache 2. Користете го prefork MPM, кој е стандарден MPM со Apache 2.0 и 2.2. За информации зошто, прочитајте ја поврзаната ставка од ЧПП за користење Apache2 со нишкаст MPM

На » Apache документација е најавторитетниот извор на информации за серверот Apache 2.x. Повеќе информации за опциите за инсталација за Apache може да се најдат таму.

Најновата верзија на Apache HTTP Server може да се добие од » Apache страница за преземање, и соодветна верзија на PHP од погоре споменатите места. Овој брз водич покрива само основите за почеток со Apache 2.x и PHP. За повеќе информации прочитајте го » Apache документација. Броевите на верзиите се изоставени овде, за да се осигура дека упатствата не се погрешни. Во примерите подолу, 'NN' треба да се замени со специфичната верзија на Apache што се користи.

Во моментов постојат две верзии на Apache 2.x - има 2.4 и 2.2. Додека постојат различни причини за избор на секоја, 2.4 е моментално најновата верзија и онаа што се препорачува, ако таа опција ви е достапна. Сепак, упатствата овде ќе работат и за 2.4 и за 2.2. Имајте предвид дека Apache httpd 2.2 е официјално крај на животот (End Of Life), и не се издаваат нови развојни или безбедносни поправки за него.

  1. Земете го Apache HTTP серверот од локацијата наведена погоре и распакувајте го:

    tar -xzf httpd-2.x.NN.tar.gz
    
  2. Слично, земете и распакувајте го изворниот код на PHP:

    tar -xzf php-NN.tar.gz
    
  3. Изградете и инсталирајте го Apache. Консултирајте ја документацијата за инсталација на Apache за повеќе детали за градење на Apache.

    cd httpd-2_x_NN
    ./configure --enable-so
    make
    make install
    
  4. Сега имате Apache 2.x.NN достапен под /usr/local/apache2, конфигуриран со поддршка за модули што може да се вчитаат и стандардниот MPM prefork. За да ја тестирате инсталацијата, користете ја вашата нормална процедура за стартување на Apache серверот, на пр.:

    /usr/local/apache2/bin/apachectl start
    
    и запрете го серверот за да продолжите со конфигурацијата за PHP:
    /usr/local/apache2/bin/apachectl stop
    
  5. Сега, конфигурирајте и изградете го PHP. Овде ги прилагодувате PHP со разни опции, како кои екстензии ќе бидат овозможени. Стартувајте скриптата. Список на достапни опции заедно со кратки објаснувања може да се прикаже со извршување на за список на достапни опции. Во нашиот пример ќе направиме едноставна конфигурација со Apache 2 и поддршка за MySQL.

    Ако го изградивте Apache од изворниот код, како што е опишано погоре, подолниот пример ќе одговара на вашата патека за apxs, но ако го инсталиравте Apache на некој друг начин, ќе треба да ја прилагодите патеката до apxs соодветно. Имајте предвид дека некои дистрибуции може да преименуваат apxs to apxs2.

    cd ../php-NN
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql
    make
    make install
    

    Ако одлучите да ги промените вашите опции за конфигурација по инсталацијата, ќе треба повторно да ги извршите configure, makeПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во направи инсталирај чекори. Треба само да го рестартирате апач за да стапи на сила новиот модул. Повторно компајлирање на Апач не е потребно.

    Имајте предвид дека освен ако не е поинаку наведено, направи инсталирај исто така ќе инсталира Инсталирање пакети, разни PHP алатки како што се phpize, инсталирајте го PHP CLI, и повеќе.

  6. Поставете го вашиот php.ini.

    cp php.ini-development /usr/local/lib/php.ini
    

    Може да го уредите вашиот .ini датотека за да ги поставите опциите на PHP. Ако претпочитате да имате php.ini на друга локација, користете --with-config-file-path=/some/path во чекор 5.

    Ако наместо тоа изберете php.ini-production, бидете сигурни да го прочитате списокот со промени во него, бидејќи тие влијаат на тоа како се однесува PHP.

  7. Уредете го вашиот httpd.conf за да го вчитате PHP модулот. Патеката на десната страна од LoadModule изјавата мора да укажува на патеката на PHP модулот на вашиот систем. На направи инсталирај од погоре можеби веќе го додаде ова за вас, но проверете.

    За PHP 8:

    LoadModule php_module modules/libphp.so

    За PHP 7:

    LoadModule php7_module modules/libphp7.so
  8. Кажете му на Apache да парсира одредени екстензии како PHP. На пример, нека Apache парсира .php датотеки како PHP. Наместо само да го користи Apache AddType директива, сакаме да избегнеме потенцијално опасни преземања и креирани датотеки како exploit.php.jpg да се извршуваат како PHP. Користејќи го овој пример, можете да имате било која екстензија(и) да се парсира како PHP со едноставно додавање. Ќе додадеме .php за да демонстрираме.

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

    Или, ако сакаме да дозволиме .php, .php2, .php3, .php4, .php5, .php6Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во .phtml датотеки да се извршуваат како PHP, но ништо друго, би го користеле ова:

    <FilesMatch "\.ph(p[2-6]?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    И за да дозволиме .phps датотеки да се обработуваат од php филтерот за извор, и да се прикажуваат како изворно кодиран со синтаксна ознака, користете го ова:

    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>

    mod_rewrite може да се користи за да се дозволи било кој произволен .php датотека да се прикажува како изворно кодиран со синтаксна ознака, без потреба да се преименува или копира во .phps датотека:

    RewriteEngine On
    RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    php филтерот за извор не треба да биде овозможен на продукциски системи, каде што може да открие доверливи или на друг начин чувствителни информации вградени во изворниот код.

  9. Користете ја вашата нормална процедура за стартување на Apache серверот, на пр.:

    /usr/local/apache2/bin/apachectl start
    

    OR

    service httpd restart
    

Следејќи ги чекорите погоре ќе имате активен Apache2 веб сервер со поддршка за PHP како SAPI модул. Се разбира, постојат многу повеќе опции за конфигурација достапни за Apache и PHP. За повеќе информации напишете скриптата. Список на достапни опции заедно со кратки објаснувања може да се прикаже со извршување на во соодветното дрво на изворниот код.

Apache може да биде изграден мултитредиран со избирање на worker MPM, наместо стандардот prefork MPM, кога Apache е изграден. Ова се прави со додавање на следната опција на аргументот предаден на ./configure, во чекор 3 погоре:

--with-mpm=worker

Ова не треба да се преземе без да се биде свесен за последиците од оваа одлука и да има барем фер разбирање за импликациите. Документацијата на Apache во врска со » MPM-Модули дискутира за MPMs во многу поголем детал.

Забелешка:

На Apache MultiViews ЧПП дискутира за користење на multiviews со PHP.

Забелешка:

За да се изгради мулти-тредирана верзија на Apache, целниот систем мора да поддржува нишки. Во овој случај, PHP исто така треба да биде изграден со Zend Thread Safety (ZTS). Под оваа конфигурација, нема да бидат достапни сите екстензии. Препорачаната поставка е да се изгради Apache со стандардниот prefork MPM-Module.

Белешки од корисници 2 забелешки

nmmm на nmmm точка nu
пред 16 години
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.
Утринска ѕвезда
3 години пред
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.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.