Nginx (Engine X) คือ Web Server ฟรี ประสิทธิภาพสูงรองรับการทำ reverse proxy ตลอดจน IMAP/POP3 Proxy Server โดย Nginx มีการพัฒนาในปี 2002 และเปิดตัวครั้งแรกในปี 2004 โดยตัว Nginx ถือว่าเป็น Web Server ที่มีประสิทธิภาพสูง และน่าสนใจเป็นอย่างมาก
PHP-FPM คือ FastCGI Process Manager เป็นอีกหนึ่งทางเลือกของ PHP FastCGI โดยตัว PHP-FPM นั้นถูกพัฒนาต่อยอดขึ้นมาเพื่อการประมวลผลเว็บไซต์ที่่มีความต้องการด้านประสิทธิภาพการทำงาน และความเร็วที่สูงกว่าปกติ
หมายเหตุ
บทความนี้จะสอนติดตั้ง Linux, Nginx, MySQL 5.5, PHP 5.1, phpMyAdmin 4.1 (LEMP) บน CentOS 6 แต่จะไม่ได้ลงรายละเอียดต่าง ๆ เช่น VirtualHost (VH) หรือ การปรับ Config Nginx เชิงลึก เป็นต้น
วิธีติดตั้ง Linux, Nginx, MySQL, PHP, phpMyAdmin (LEMP) บน Linux CentOS
1. ติดตั้ง Remi Repository
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
2. ติดตั้ง Nginx Repository
vi /etc/yum.repos.d/nginx.repo
เพิ่มข้อมูลเข้าไปในไฟล์ดังนี้
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
3. ติดตั้ง Ngnix, MySQL 5.5, PHP 5.4 & PHP-FPM
yum --enablerepo=remi,remi-test install nginx mysql mysql-server php php-common php-fpm phpmyadmin
4. ติดตั้ง Modules ที่จำเป็นให้กับ PHP
yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
5. Start Service Nginx, MySQL, PHP-FPM
/etc/init.d/nginx start
/etc/init.d/mysqld start
/etc/init.d/php-fpm start
6. แก้ไขไฟล์ config Nginx
vi /etc/nginx/conf.d/default.conf
แก้ไขเป็นดังนี้
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
7. ลิ้งค์ phpMyAdmin เข้ากับ Directory Web ของ Nginx (Default Web Root)
cd /usr/share/nginx/html/
ln -s /usr/share/phpMyAdmin/ phpmyadmin
8. กำหนด Username และ Password ให้กับ MySQL
mysqladmin -u root password 01234
9. แก้ไขให้สามารถเข้าถึง phpMyAdmin ได้จากเครื่องอื่น ๆ
vi /etc/httpd/conf.d/phpMyAdmin.conf
แก้ไขเป็น
<Directory /usr/share/phpMyAdmin/>
order allow,deny
allow from all
</Directory>
10. สร้างไฟล์ php เพื่อทดสอบการติดตั้ง
vi /usr/share/nginx/html/phpinfo.php
ใส่ข้อมูลเข้าไปในไฟล์ดังนี้
<?php
phpinfo();
?>
11. Restart Nginx
/etc/init.d/nginx restart
12. ปิด Firewall (ปิดเพื่อการทดสอบเท่านั้น)
/etc/init.d/iptables stop
13. ทดสอบการติดตั้งโดยเปิดโปรแกรมเว็บเบราว์เซอร์แล้วพิมพ์ http://localhost/phpinfo.php
14. ทดสอบการติดตั้ง phpMyAdmin โดยเปิดโปรแกรมเว็บเบราว์เซอร์แล้วพิมพ์ http://localhost/phpmyadmin