magicvn

Internship/Fresher
Aug 10, 2014
22
1
0

Cấu hình webserver với FastCgi ExternalServer


Cài đặt apache

Cài đặt apache 2.2

Cấu hình biên dịch mã nguồn:
./configure \
--prefix=/usr/local/apache22 \
--enable-vhost-alias \
--enable-so

Enable-so: cho phép load thư viện động

Biên dịch module mod_fastcgi

Mod_fastcgi là một module của apache được dùng để chạy các sctipt và chương trình CGI
Phiên bản mới nhất của mod_fastcgi là 2.4.6 chúng ta có thể download phiên bản này trên website http://www.fastcgi.com/

Biên dịch mod_fastcgi

Sau khi download và giải nén mã nguồn cài đặt của mod_fastcgi, ta di chuyển vào thư mục chứa mã nguồn cài đặt và tạo file biên dịch.
tar -zxvf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6/
cp Makefile.AP2 Makefile
cp Makefile.AP2 Makefile

biên dịch mã nguồn

make top_dir=/usr/local/apache22
make install top_dir=/usr/local/apache22

sau khi cài đặt thành công chúng ta sẽ có được file “mod_fastcgi.so” nằm trong thư mục “moules” của apache.
Để apache chạy với fastcgi chúng ta cần thêm dòng bên dưới vào file cấu hình httpd.conf của apache
LoadModule fastcgi_module modules/mod_fastcgi.so
Sau đó khởi động lại dịch vụ httpd để hoàn tất

/usr/local/apache22/bin/apachectl restart

Cài đặt php-fpm

Các phiên bản từ 5.2 trở về trước không hỗ trợ php-fpm. Nên để cài đặt php-fpm chúng ta phải sử dụng các phiên bản php lớn hơn 5.2 . trong bài viết sử dụng phiên bản php 5.3
Để tải các phiên bản của php chúng ta có thể vào trang
Sau tải xong php5.3 chúng ta cần giải nén mã nguồn php5.3 và di chuyển vào thư mục chứa mã nguồn để biên dịch

Cấu hình biên dịch

./configure --prefix=/usr/local/php53 --enable-fpm

Tạo file khởi động php-fpm

Di chuyển vào thư mục chứa mã nguồn biên dịch php5.3
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod a+x /etc/init.d/php-fpm
/sbin/chkconfig --add php-fpm
/sbin/chkconfig php-fpm on

Khởi động dịch vụ php-fpm
Service php-fpm restart
Cấu hình apche chạy với dịch vụ php-fpm

Php-fpm là một server riêng biệt và chạy độc lập với webserver được dùng để thông dịch các script php cho webserver httpd
Trên các hệ thống unix đưa ra cho chúng ta hai cách để webserver giao tiếp với php-fmp.
· Dùng domain socket
· Dùng tcp/ip socket

Cấu hình dùng TCP/IP socket

Cấu hình apache

Thêm đoạn bên dưới vào file cấu hình virtual host và save lại
<IfModule mod_fastcgi.c>
Alias /php.fcgi /usr/local/apache22/htdocs/phiuit/fcgi-bin/php.fcgi
FastCGIExternalServer /usr/local/apache22/htdocs/phiuit/fcgi-bin/php.fcgi -flush -host 127.0.0.1:9000
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /php.fcgi
</IfModule>

Cấu hình php-fpm

[phiuit]
listen = 127.0.0.1:9000
listen.owner = phiuit
listen.group = phiuit
listen.mode = 0660
user = phiuit
pm = ondemand
pm.max_children = 20
pm.max_requests = 1024

khởi động lại dịch vụ webserver và php-fpm để hoàn tất
Service php-fpm restart
Service httpd restart

Cấu hình dùng domain socket

Khái niệm domain soket:

là một file đặt biệt trên hệ thống unix với 2 processes kết nối đến chúng tất cả các dữ liệu được sent đến file từ một socket thì sẽ được nhận bởi socket còn lại. domain socket thì được đánh giá là nhanh hơn so với TCP/IP socket , nhưng không có khả năng chống overhead so với TCP/IP socket

Cấu hình apache

Thêm đoạn bên dưới vào file cấu hình virtual host và save lại
<IfModule mod_fastcgi.c>
Alias /php.fcgi /usr/local/apache22/htdocs/phiuit/fcgi-bin/php.fcgi
FastCGIExternalServer /usr/local/apache22/htdocs/phiuit/fcgi-bin/php.fcgi -flush -socket /tmp/php-fpm.sock
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /php.fcgi
</IfModule>

Cấu hình php-fpm

[phiuit]
listen = /tmp/php-fpm.sock
listen.owner = phiuit
listen.group = phiuit
listen.mode = 0660
user = phiuit
pm = ondemand
pm.max_children = 20
pm.max_requests = 1024

khởi động lại dịch vụ webserver và php-fpm để hoàn tất
Service php-fpm restart
Service httpd restart

Kiểm tra

Tạo file info.php đặt trong thư mục home của user với nội dung bên dưới

<?php>
phpinfo();
?>

Nếu đúng sẽ cho ta kết quả như bên dưới

Configure webserver with FastCgi ExternalServer(1)


Các bạn có thể xem các lab liên quan đến cài đặt các dịch vụ trên CentOS
 
Last edited by a moderator:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu