Hướng dẫncàiđặt Nginx vớiPHP5và
MySQL hỗtrợtrênFedora13-phần 2
Cài đặt PHP5
Chúng ta có thể khiến cho PHP5 hoạt động tốt trong nginx thông qua FastCGI, thực ra
không có gói FastCGI daemon độc lập dành cho Fedora, do đó chúng ta phải sử dụng gói
FastCGI có sẵn của lighttpd (lighttpd-fastcgi) vàcàiđặt cùng với php-cli với 1 số module
PHP5 tương tự như php-mysql:
yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-
pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-
mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
Sau đó mở file /etc/php.ini và thêm dòng cgi.fix_pathinfo = 1 vào phía cuối file:
vi /etc/php.ini
[ ]
cgi.fix_pathinfo = 1
Gói lighttpd-fastcgi có đi kèm với file thực thi /usr/bin/spawn-fcgi, tại đây chúng ta có
thể khởi động và kích hoạt các ứng dụng FastCGI. Các bạn có thể tìm hiểu thêm tại đây
(spawn-fcgi –help). Để khởi động dịch vụ PHP FastCGI daemon và “lắng nghe” các tín
hiệu từ cổng 9000 trên localhost, hoạt động như nhóm vàtài khoản người dùng nginx,
chúng ta thực hiện câu lệnh sau:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P
/var/run/fastcgi-php.pid
Đương nhiên, chẳng ai muốn gõ câu lệnh dài như vậy mỗi khi hệ thống khởi động, để
khắc phục điều này, mở /etc/rc.local :
vi /etc/rc.local
và thêm dòng lệnh sau ở phía cuối:
[ ]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P
/var/run/fastcgi-php.pid
Thiết lập và tùy chỉnh nginx
File cấu hình thiết lập của nginxđặttại /etc/nginx/nginx.conf:
vi /etc/nginx/nginx.conf
Cấu trúc của file này tương đối dễ hiểu (các bạn có thể tìm hiểu thêm tại đây hoặc đây)
Trước tiên, tăng số lượng tiến trình xử lý và thiết lập giá trị của keepalive_timeout theo
như sau:
[ ]
worker_processes 5;
[ ]
keepalive_timeout 2;
[ ]
Các host ảo được định nghĩa và khởi tạo trong biến server {}. Hãy điều chỉnh lại giá trị
vhost mặc định theo như sau:
[ ]
server {
listen 80;
server_name _;
#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;
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;
}
}
[ ]
server_name _; là giá trị khởi tạo catchall vhost mặc định (nếu muốn bạn có thể tự khởi
tạo hostname như www.example.com). Trong phần định nghĩa của location /, chúng ta
thêm index.php vào dòng index. Còn giá trị root /usr/share/nginx/html; chỉ ra rằng thư
mực tàiliệu mặc định là /usr/share/nginx/html.
Phần quan trọng dành cho PHP là location ~ \.php$ {}. Bỏ dấu chú thích để kích hoạt tính
năng và dịch vụ tương ứng, và thay đổi dòng root trỏ tới thư mục root của website (root
/usr/share/nginx/html;). Bên cạnh đó, hãy đảm bảo rằng bạn đã thay đổi dòng
fastcgi_param thành fastcgi_param SCRIPT_FILENAME
/usr/share/nginx/html$fastcgi_script_name; nếu không thì các trình biên dịch PHP sẽ
không thể tìm được các đoạn mã tương ứng trong trình duyệt.
Lưu thay đổi của file và khởi động lại nginx:
/etc/init.d/nginx restart
Tiếp theo, tạo file PHP trong thư mục root /usr/share/nginx/html :
vi /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
Sau đó, kiểm tra lại bằng cách gọi file đó ra trong trình duyệt
(http://192.168.0.100/info.php):
Như bạn đã thấy, PHP5 đã hoạt động, và hoạt động thông qua FastCGI (đã được chỉ ra
trong Server API). Khi kéo danh sách xuông dưới, bạn có thể thấy tất cả các module đã
được kích hoạt trong PHP5, bao gồm cả MySQL:
Trên đây là 1 cách để càiđặtNginxvớiPHP5vàMySQL trong nền tảng Fedora 13 serve
. Hướng dẫn cài đặt Nginx với PHP5 và
MySQL hỗ trợ trên Fedora 13- phần 2
Cài đặt PHP5
Chúng ta có thể khiến cho PHP5 hoạt động tốt trong nginx thông. module đã
được kích hoạt trong PHP5, bao gồm cả MySQL:
Trên đây là 1 cách để cài đặt Nginx với PHP5 và MySQL trong nền tảng Fedora 13 serve