Пэўныя сістэмы кіравання кантэнтам не працуюць са звязкам nginx і php-fpm , і патрабуюць менавіта вэб-сервера apache з модулем php. Часцей за ўсё прычына гэтага - неабходнасць выкарыстання модуля rewrite для працы сайта.
Адной камандай ўсталюеце базавыя кампаненты. Залежнасці будуць устаноўлены аўтаматычна.
# Aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd
Змест артыкула:
- Настраиваем apache 1 Наладжвальны apache
- Создание виртуального хоста 2 Стварэнне віртуальнага хаста
- Тестирование настроенной связки 3 Тэставанне наладжанай звязка
наладжвальны 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. Калі так, то сервер паспяхова настроены і можна размясціць сайт у прызначаным для яго каталогу.
У іншым выпадку варта прааналізаваць логі памылак, праверыць налады ў канфігурацыйных файлах.
Дзякуй. Мяне завуць Сяргей. 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.
Логі гэта проста файлы - капіюйце іх куды заўгодна без праблем