Skip to main content

Ўстаноўка apache і php на Debian



Пэўныя сістэмы кіравання кантэнтам не працуюць са звязкам nginx і php-fpm , і патрабуюць менавіта вэб-сервера apache з модулем php. Часцей за ўсё прычына гэтага - неабходнасць выкарыстання модуля rewrite для працы сайта.



Адной камандай ўсталюеце базавыя кампаненты. Залежнасці будуць устаноўлены аўтаматычна.

  # Aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd 

Змест артыкула:

наладжвальны apache

Перш за ўсё уключыце mod_rewrite. Ён абавязкова спатрэбіцца, калі ваш сайт будзе выкарыстоўваць ЧПУ.

  # A2enmod rewrite 

Ўключаць mod_php не запатрабуецца, паколькі пры ўсталёўцы ён будзе ўключаны аўтаматычна.



Таксама я рэкамендую адключыць наступныя модулі, калі яны вам не патрэбныя:

  # A2dismod -f autoindex deflate setenvif status 

Гэта дазволіць вам скараціць расход памяці.

Адкрыйце файл /etc/apache2/conf-available/charset.conf і раскаментуйце наступны радок:


  AddDefaultCharset UTF-8 

Дадзеная дырэктыва паказвае, што кадоўкай па-змаўчанні будзе UTF-8. Калі вашы сайты выкарыстоўваюць іншую кадыроўку, напрыклад, CP-1251, то неабходна ўказаць яе альбо тут жа, альбо ў параметрах віртуальнага хаста.

Захавайце змены.

Адкрыйце файл /etc/apache2/conf-available/security.conf і ператварыце радок ServerTokens OS ў ServerTokens Prod . Гэта схавае версію apache для кліентаў.

Радок ServerSignature On ператварыце ў ServerSignature Off .

Захавайце змены.

Адкрыйце для рэдагавання файл /etc/apache2/apache2.conf і знайдзіце параметр KeepAlive On . Калі пасля налады apache вы ўсталюеце nginx і будзеце проксировать ад яго запыты, то гэты параметр трэба пераўтварыць у KeepAlive Off , паколькі гэтую функцыю (падтрыманне злучэння з кліентам) будзе выконваць nginx. Калі вы плануеце выкарыстоўваць apache ў якасці асноўнага вэб-сервера, гэтую функцыю варта наладзіць.

MaxKeepAliveRequests - максімальная колькасць запытаў на падтрыманне пастаяннага злучэння. Для большай прадукцыйнасці рэкамендуецца ўсталяваць высокае значэнне. Для пачатку падыдзе значэнне па-змаўчанню - 100.

KeepAliveTimeout - час у секундах для чакання наступнага запыту ад таго ж самага кліента.

Захавайце змяненні і перазапусціце apache.

Адкрыйце файл /etc/apache2/mods-available/mpm_prefork.conf.

Параметры ў гэтым файле варта паказваць у залежнасці ад наведвальнасці сайта і рэсурсаў сервера. Для пачатку паспрабуйце запусціць сайт з мінімальнай канфігурацыяй і паназіраць за яго працай. Калі апынецца, што рэсурсаў недастаткова, павялічце іх.

Прывядзіце значэння па-змаўчанню да такога выгляду:

  StartServers 2
 MinSpareServers 2
 MaxSpareServers 6
 MaxRequestWorkers 32
 MaxConnectionsPerChild 0

StartServers - колькасць даччыных працэсаў сервера, якiя ствараюцца пры запуску.

MinSpareServers - мінімальная колькасць прастаіваюць працэсаў.

MaxSpareServers - максімальную колькасць прастаіваюць працэсаў.

MaxRequestWorkers - максімальную колькасць злучэнняў, якія будуць апрацоўвацца адначасова.

MaxConnectionsPerChild - максімальную колькасць злучэнняў, апрацаваўшы якія, даччыны працэс будзе завершаны. Можа быць карысны ў барацьбе з уцечкамі памяці.

Таксама захавайце змены і перазапусціце apache: service apache2 restart.

Стварэнне віртуальнага хаста

Віртуальным хастом называецца група канфігурацыйных параметраў для пэўнага сайта. Яна ўключае ў сябе абслугоўваецца дамен, email адміністратара, шляху да лог-файлаў, падключэнне апрацоўшчыкаў php і г.д.

Мне падабаецца размяшчаць канфігурацыі віртуальных хастоў ў адным файле - apache2.conf. Калі спатрэбіцца масава замяніць нейкае значэнне для ўсіх сайтаў, то не трэба будзе адкрываць па чарзе ўсе канфігурацыйныя файлы віртуальных хастоў.

У першую чаргу адключыце default site.

  # A2dissite 000-default 

У канцы файла /etc/apache2/apache2.conf прапішіце наступную дырэктыву:

  <VirtualHost *: 80>

 </ VirtualHost> 

У гэтай дырэктыве групуюцца ўсе параметры сайта. Менавіта яна з'яўляецца віртуальным хастом. Наступныя параметры прапісваем ўнутры гэтай дырэктывы.

ServerName - ваш дамен без www. (Напрыклад, example.com.)

ServerAlias - дамен з www (www.example.com)

DocumentRoot - каталог, дзе размяшчаюцца файлы вашага сайта. Напрыклад, / var / www /.

ServerAdmin - email адміністратара сайта.

ErrorLog - месцазнаходжанне лог-файла памылак. Як правіла, яны размяшчаюцца ў каталогу / var / log / apache2 /. Для яго служыць аліяс $ {APACHE_LOG_DIR}. прыклад:

  ErrorLog $ {APACHE_LOG_DIR} / example.com .error.log 

LogLevel warn . Нічога не мяняем, прапісваем так. Задае ўзровень лагаванне памылак.

CustomLog - Размяшчэнне і тып access-лога сайта. Па-змаўчанні тып - combined. Хоць існуюць і іншыя тыпы. прыклад:

  CustomLog $ {APACHE_LOG_DIR} /example.com.access.log combined 

У абодвух прыкладах example.com замяняем на ваш дамен без www.

Дадаем налады для mpm-itk, паколькі вырабілі ўстаноўку менавіта гэтага модуля. Што ён дае? Дазваляе апрацоўваць php-скрыпты ад імя карыстальніка - ўладальніка сайта.

  <IfModule mpm_itk_module>
 AssignUserId user group
 </ IfModule> 

Тут трэба замяніць user на імя карыстальніка і group на імя групы, у чыёй хатняй тэчцы размешчаны сайты.

Вызначаем налады для дырэкторый.

  <Directory />
 Options + FollowSymLinks
 AllowOverride None
 Require all granted
 </ Directory>
 <Directory / var / www>
 Options -Indexes + FollowSymLinks 
 AllowOverride All
 Order allow, deny
 allow from all
 </ Directory> 

Дырэкторыю / var / www заменіце на тую, дзе размешчаны вашыя сайты.

Падлучальны апрацоўшчык php-скрыптоў.

  <IfModule mod_php5.c>
 php_admin_flag engine on
 php_admin_value open_basedir "/ var / www: / tmp / sessions: / tmp / upload_tmp"
 php_admin_value upload_tmp_dir / tmp / sessions
 php_admin_value session.safe_path / tmp / upload_tmp
 php_admin_value sendmail_path "/ usr / sbin / sendmail -t -i -fmail@example.com"
 </ IfModule> 

open_basedir ў якасці значэння паказваем праз двукроп'е каталогі, куды php будзе мець доступ да каталогу з сайтам, каталог для захоўвання файлаў сесій, каталог для загрузкі часовых файлаў.

upload_tmp_dir - каталог для захоўвання часовых файлаў. Калі вы загружаеце фота (ці нешта яшчэ) на сайт, загружаны файл спачатку змяшчаецца ў гэты каталог, а затым у канчатковае месцазнаходжанне.

session.safe_path - каталог для захоўвання сесій.

З меркаванняў бяспекі, гэтыя два каталога ня варта трымаць у агульнадаступным месцы. Стварыце іх у хатнім каталогу карыстальніка, дзе размяшчаюцца вашыя сайты. Дазвольце доступ да іх толькі гэтаму карыстальніку (правы 0750).

sendmail_path - шлях да sendmail і параметры. Як правіла, sendmail размяшчаецца ў каталогу / usr / sbin. Пасля параметру -f варта паказаць email, не падзяляючы прабелам.

Захоўваем канфігурацыйны файл apache2.conf, перазапускаем apache:

  service apache2 restart 

Тэставанне наладжанай звязка

У каталогу сайта стварыце файл index.php. Прапішіце ў ім код:

  <? Php phpinfo ();  ?> 

Пасля чаго адкрыйце ваш сайт у браўзэры і паглядзіце, адлюстроўваецца Ці інфармацыя аб php. Калі так, то сервер паспяхова настроены і можна размясціць сайт у прызначаным для яго каталогу.

У іншым выпадку варта прааналізаваць логі памылак, праверыць налады ў канфігурацыйных файлах.



Як вы ацэніце артыкул?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 адзнак, сярэдняе: 5,00 з 5)
Загрузка ...

” 2 Каментары "Усталяванне apache і php на Debian"

  1. Дзякуй. Мяне завуць Сяргей. 65 гадоў. нав. лекар. СПб. Завёў VDS хостынг. На ім усталяваўся сайт: egmontgroup.ru
    Па Вашым артыкуле: php7. Таксама postgreSQL 9.4 і Apache 2.4
    У прынцыпе нармальна. На лакальным кампутары Debian 8.6 jessey (на VDS тое ж самае). Усталяваў ўсё такое ж. Але ўжо дні і ночы не магу запусціць Apache. У логах незразумела мне, на VDS нічога такога не было.
    А як з VDS хостынгу (там толькі ssh (я карыстаюся putty).) Скапіяваць якія - то конфігі, ды і наогул. ?
    З павагай. Дзякуй. Мой мэйл sergeygsd@yandex.ru
    яшчэ спадабалася пераключэнне працы паміж версіямі php.

Дадаць каментар

Ваш e-mail не будзе апублікаваны.