Передбачається, що операційна система у вас вже встановлена, мережа налаштована, інтернет спритний, провайдер не жадібний (качати будемо багато) ... Будемо ставити все з репозиторіїв, збирати в ручну ми нічого не будемо.
1. Установка Nginx
Для початку додамо репозиторій проекту Nginx:
Додамо туди, офіційне дзеркало Nginx, то в якому вигляді представлений даний пакет, відображає бачення його розробників:
Тепер нам потрібно завантажити GPG ключ:
Встановимо GPG ключ:
Оновимо список пакетів:
Після установки nginx повинен відразу стартанути. Якщо стартанул без помилок, відразу переходимо до пункту 2 установка php-fpm.
Якщо вже стоїть апач, який за замовчуванням слухає порт 80, то після установки nginx виваляться помилки:
Дізнаємося, що у нас на порту 80:
Бачимо, що дійсно це apache2 вже слухає порт 80.
Тоді Стоп apache, потім перезапускаємо nginx.
2. Установка PHP-FPM
Нам необхідно усунути уразливість PHP:
Наводимо її до виду:
Зберігаємо зміни і перезапустити PHP-FPM:
3. Створимо віртуальний хост Nginx
Директорія для всіх сайтів у мене / var / www /. Ви можете вибрати будь-яку, головне щоб у nginx`а був доступ в цю директорію. Розташування сайтів, наприклад сайт test:
- / Var / www / test / www - коренева директорія
- / Var / log / nginx - access і error logs сайту test
Наполягаємо перший віртуальний хост Nginx, назвемо його test
Вміст файлу /etc/nginx/conf.d/test.conf (Тут я привожу тільки базові настройки, щоб працювало, якщо потрібно додати щось додатково, то ви зробите це самі, виходячи з ваших завдань)
Звертаю увагу! Всі віртуальні хости повинні мати в назві розширення .conf, інакше віртуальний хост не завантажиться.
Створимо тестовий файл, щоб перевірити працездатність PHP5:
Перезапустити Nginx, щоб зміни вступили в силу:
Чи не зибиваем прописати в / etc / hosts
Можливі помилки конфігурації nginx з php-fpm
502 Bad Gateway - якщо код помилки 502, замінюємо рядок (listen =.) В файлі /etc/php5/fpm/pool.d/www.conf
Після цього не забуваємо зробити restart php5-fpm. Помилки 502 більше бути не повинно.
Параметри, підтримувані командним рядком nginx
Nginx підтримує наступні параметри:
Слідував за інструкцією від початку і до кінця. Тестову сторінку на nginx + php-fpm підняв :)
Ще не прописав рядок listen = 127.0.0.1:9000, була помилка 502.
root 4 роки тому
Якщо в самому конфіги nginx віртуального хоста вказати, щоб запити йшли на fastcgi сервер через unix сокет, а не на порт 9000 - порт, на якому за замовчуванням висить php-fpm (127.0.0.1:9000) тобто прописати так в test.conf :
fastcgi_pass unix: /var/run/php5-fpm.sock;
то у файлі конфігурацій /etc/php5/fpm/pool.d/www.conf нічого змінювати не треба.
julia 3 роки тому
Вітаю!
Зробила все по Вашій інструкції і натрапила на таку помилку: при переході по test / index.php виводиться "No input file specified." А по test / - "403 Forbidden".
Як можна вирішити таку проблему?
root 3 роки тому
Привіт, julia.
По-перше, перевірте, будь ласка, свої шляхи. Ваш тестовий сайт повинен лежати по тому ж шляху, що прописаний в /etc/nginx/conf.d/test.conf в секції root: root / var / www / test / www; .
У вас (судячи по логах) ця директорія знаходиться в домашній папці вашого користувача, а у мене в прикладі не так: / home / julia / var / www / test / www
Якщо шляху з конфіга і реальний шлях до сайту в файлової системі у вас збігаються - то ок. Якщо немає - зробіть щоб збігалися :)
По-друге, поновіть, будь ласка, свій /etc/nginx/conf.d/test.conf як в пості, там я змінив розташування балок хоста з /var/www/test/logs/access.log на / var / log / nginx / test.access.log. Була можлива помилка - nginx: [emerg] open () "/var/www/test/logs/access.log" failed (2: No such file or directory).
По-третє, схоже у вас для nginx не вистачає прав:
"/home/julia/var/www/test/www/index.php" is forbidden (13: Permission denied)
Спробуйте зробити sudo chmod -R 777 / home / julia / var / www / test / www
Перевірити працездатність конфігурації nginx sudo nginx -t:
eugene $ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
UPD: Після правок конфігураційних файлів .conf не забувайте робити sudo service nginx restart або sudo service nginx reload щоб зміни вступили в силу.
Якщо до цих пір є помилки, пишіть :)
VYanchuk 2 роки тому