Nginx және PHP екеуін достастырамыз

PHP және Apache арқылы сервер тұрғызу туралы тонналап жазылған. Ал nginx туралы аздау. Бірақ nginx-тің apache-дан артықшылығы болмаса кемшілігі жоқ шығар.



Nginx арқылы php сайтты көтеруді, яғни, nginx-ті php файлдарын интерпретация жасауға баптау жасайық. Барлық баптаулар debian жүйесінде жүргізіледі. Ең алдымен жүйеге nginx веб серверін орнатамыз:

sudo apt-get install nginx


Енді php-дің өзін қондырып алуымыз керек:

sudo apt-get install php5 php5-fpm


Мұндағы php5-fpm ол FastCGI Process Manager пакеті. FastCGI Process Manager дегеніміз PHP FastCGI альтернативасы. Егер Apache+PHP баптап жүрген болсаңыз PHP FastCGI талай көрген болуыңыз керек. Ал PHP-FPM-нің айтулары бойынша тым жүктелген сайттар үшін артықшылықтары бар.

Жүйеде керек бағдарламалар орнады енді nginx-ты баптау жасау қажет. Ол үшін /etc/nginx/sites-enabled/default баптау файлын өзгертуіміз қажет. Егер файлды өңдеуге ашсақ, ішінде пікірленген, әр жолақ жақсы түсіндірілген баптау ашылуы керек. Сол жерде root /var/www/html директивасын көреміз. Бұл nginx файлдарды қайдан іздеуі қажеттігін көрсетеді.

Одан соң index директивасының қатарына index.php атауын ендіріп қойыңыз (үнсіз келісім бойынша ашылуы үшін):

index index.php index.html index.htm index.nginx-debian.html;


Содан соң барып, мынандай баптау енгіземіз:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
}


Осы баптау nginx пен php байланысуына жауап береді. Болды енді nginx-ті өшіріп қосу қалды:

sudo service nginx restart

Барлығы дұрыс бапталған болса nginx еш қатесіз өшіп қосылады. Тексеріп көру үшін /var/www/html/test.php файлын құрып ішіне мынандай код енгізіңіз:

<?php
phpinfo();


және браузерден localhost/test.php ашыңыз. Барлығы дұрыс болса php туралы мәлімет көрсетіледі. Бұл баптауды қарапайым сайт жасауда немесе жылдам прототиптер жасағанда пайдаланған ыңғайлы.

P.S. php баптауы мына жерде болады:
/etc/php5/fpm/php.ini


Ол файлды өзгерткен соң php-ді өшіріп қосу керек:
service php5-fpm restart


Nginx баптауының толық нұсқасы:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

  • +1
0 пікір
Тек тіркелген қолданушылар ғана пікір қалдыра алады.