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-мережі.

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

Як встановити Postfix на CentOS Stream 10 і налаштувати сервер SMTP
18.03.2025
Як встановити Postfix на CentOS Stream 10 і налаштувати сервер SMTP
Встановлюємо Postfix на VPS/VDS або виділений сервер із ОС CentOS Stream 10 та налаштовуємо SMTP сервер.
Коронавірус 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 і налаштовуємо щоденне сканування сервера.