27.01.2011

Встановлення та налаштування NGINX з PHP FastCGI в CentOS

Встановлення та налаштування NGINX з PHP FastCGI в CentOS

Як відомо, найкращий спосіб економії оперативної пам'яті на VPS для хостингу своїх сайтів - це встановлення NGINX з FastCGI FPM. Розглянемо, як це можна зробити на VPS з CentOS 5, використовуючи загальнодоступні репозиторії CentOS 5 для простого оновлення софту.

Використаємо для цього репозиторій CentALT. Отже, почнемо:

1. Оновлюємо систему на сервері:

yum -y update

2. Встановлюємо CentALT репозиторій:

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm
yum -y update

3. Встановлюємо NGINX, PHP-FPM, vsftpd, phpMyAdmin, mysqld:

yum install nginx php-fpm php-gd php-mysql mysql-server vsftpd

4. Створюємо користувача на vps, від якого будемо заливати файли по ftp на сервер. Додаємо в /etc/shells шелл /bin/date:

echo "/bin/date" >>/etc/shel

Визначимо id користувача nginx:

id nginx

Визначимо id користувача nginx:

id nginx
uid=102(nginx) gid=102(nginx) groups=102(nginx)

Нас цікавить uid. Таким чином, створюємо користувача:

useradd -u 102 -o -s /bin/date -p пароль ftpuser

ftpuser - логін ftp-користувача, пароль - бажаний пароль.

5. Встановимо пароль root mysql-серверу, так як будемо використовувати phpMyAdmin з обмеженням по паролю користувача mysql:

chkconfig mysqld on
service mysqld start
mysql_secure_installation

Там пишемо два рази бажаний пароль root mysql, з усім погоджуємося.

6. Налаштовуємо vsftpd:

chkconfig vsftpd on
vi /etc/vsftpd/vsftpd.conf

Редагуємо там:

anonymous_enable=YES на anonymous_enable=NO

Це заборонить анонімний ftp.

Додаємо:

chroot_local_user=YES

Це заборонить ftp-користувачу заходити нижче домашньої директорії.

Запускаємо ftp сервер:

service vsftpd start

7. Налаштовуємо PHP-FPM:

chkconfig php-fpm on
vi /etc/php-fpm.conf

Там замінюємо 2 рядки:

<!–- <value name=”user”>nobody</value> -–>
<!–- <value name=”group”>nobody</value> -–>

На:

<value name=”user”>nginx</value>
<value name=”group”>nginx</value>

Запускаємо php-fpm:

service php-fpm start

8. Налаштовуємо nginx:

chkconfig nginx on
vi /etc/nginx/nginx.conf

Туди пишемо:

user nginx;
worker_processes 1;

events {
       worker_connections 1024;
}

http {
       include mime.types;
       default_type application/octet-stream;

       server {
              listen 80;
              server_name site.name www.site.name;

              location / {
                         root /home/ftpuser/site.name;
                         index index.php index.html index.htm;
              }

              error_page 500 502 503 504 /50x.html;
              location = /50x.html {
              root /usr/local/www/nginx-dist;
        }

        location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param script_FILENAME /home/ftpuser/site.name$fastcgi_script_name;
        include fastcgi_params;
}

Тут в worker_processes пишемо кількість cpu в системі (у нас 1), site.name - це ім'я сайту, який ми будемо хостити на сервері, ftpuser - користувач ftp.

Запускаємо nginx:

service nginx start

9. Робимо так, щоб phpMyAdmin був нам доступний за адресою http://site.name/myadmin:

ln -s /usr/share/phpMyAdmin /home/ftpuser/site.name/myadmin

10. Після цього заходимо на створений нами ftp, використовуючи дані, які ми прописали в пункті 4, робимо директорію site.name і заливаємо в неї контент сайту. Також, використовуючи дані доступу root до mysql, за допомогою phpMyAdmin, створюємо і заливаємо базу даних сайту.

Останні новини

Знижка на всі домени України до 21.10.2022!
14.10.2022
Знижка на всі домени України до 21.10.2022!
Шановні користувачі! Цілий тиждень у нас знижка -15% на реєстрацію всіх українських доменів за промокодом defendersday22!
Подорожчання низки українських доменів UA ccTLD!
28.09.2022
Подорожчання низки українських доменів UA ccTLD!
Шановні користувачі! З 1 жовтня 2022 року на нас чекає подорожчання низки українських доменів - in.ua, od.ua, mk.ua!
Важливі зміни у роботі низки українських доменів!
09.03.2022
Важливі зміни у роботі низки українських доменів!
Шановні користувачі! У деяких українських доменних зонах збільшено термін періоду Redemption з 30 до 60 днів.
Подорожчання виділених IP-адрес (IPv4) у Німеччині!
09.08.2021
Подорожчання виділених IP-адрес (IPv4) у Німеччині!
Шановні користувачі! У Німеччині істотно подорожчали додаткові виділені IP-адреси (IPv4) та IP-мережі.

Останні записи з блогу

Коронавірус Coronavirus (COVID-19) та кібершахраї в мережі Інтернет
02.03.2020
Коронавірус Coronavirus (COVID-19) та кібершахраї в мережі Інтернет
Паніку навколо коронавірусу COVID-19 використовують у мережі Інтернет кібершахраї - фішинг, продаж масок, вакцин і тестів.
Не відправляється пошта - перевіряємо чи не блокує провайдер 25 порт
11.01.2020
Не відправляється пошта - перевіряємо чи не блокує провайдер 25 порт
Перевіряємо чи блокує провайдер 25 порт за допомогою командного рядка в ОС Windows. Як відправляти пошту якщо 25 порт заблокований.
Як встановити Clam AntiVirus (ClamAV) на VPS або сервер з ОС CentOS
11.11.2019
Як встановити Clam AntiVirus (ClamAV) на VPS або сервер з ОС CentOS
Встановлюємо Clam AntiVirus (ClamAV) на VPS / VDS або виділений сервер з ОС CentOS і налаштовуємо щоденне сканування сервера.
ISPmanager більше не підтримує резервне копіювання на Яндекс.Диск
20.10.2019
ISPmanager більше не підтримує резервне копіювання на Яндекс.Диск
Протягом тижня Яндекс.Диск зникне зі списку сховища для резервного копіювання в панелі ISPmanager та інших продуктах ISPsystem.