1. An Nguyen

    An Nguyen bụi Ban quản trị

    9/5/12
    #1
    Nếu có ý định dùng IIS làm web server, bạn cần biết qua cách cài đặt và cấu hình PHPMySQL sao cho hoạt động trên IIS

    Công cụ cần thiết

    - MySQL download bản MySQL Installer 5.5.23 tại đây
    - Sử dụng PHP 5.3+ VC9 Non Thread Safe hoặc PHP 5.2 VC6 Non Thread Safe tại đây
    (VC9 đòi hỏi Microsoft 2008 C++ Runtime x86 (hoặc x64)​


    - Wincache 1.1 for PHP (tăng tốc ứng dụng web PHP) - tạm thời chỉ dùng được với bản PHP 5.3 hoặc 5.2​
    - FastCGI for IIS (CGI là bộ thông dịch script cho các web server, để có thể chạy các ứng dụng web, FastCGI là sự thay thế cho CGI) - chỉ dùng với bản PHP Non Thread Safe (NTS)​
    php app.png
    1. Cài đặt - cấu hình PHP và trên IIS 5.1 và 6.0 (XP và Server 2003)

    - Giải nén PHP vào thư mục bất kỳ, ví dụ C:\PHP
    - Cài đặt Microsoft C++ Runtime x86, FastCGI và Wincahe (giải nén vào folder C:\PHP\ext).

    wincache.png
    - Copy và đổi tên file php.ini-production thành php.ini
    php co.png
    - Thiết lập file php.ini
    (Để enable 1 chỉnh sửa nào đó trong PHP cần bỏ dấu ; trước hàng đó)

    Extension_dir="C:\PHP\ext" (folder chứa Extension)
    Thiết lập CGI và FastCGI​
    Mã (Text):
    1. fastcgi.impersonate = 1      (cho phép IIS định nghĩa phạm vi bảo mật...)
    2. fastcgi.logging = 0          (nên tắt, nếu bật có thể gây rỗi HTTP 500 Exception trong IIS)
    3. cgi.fix_pathinfo=1            (cho phép php truy cập các thông tin về CGI, cần cài đặt FastCGI trước)
    4. cgi.force_redirect = 0        (cần thiết khi dùng IIS, nhưng nếu kích hoạt sẽ gây hỏng php trên windows)
    5.  
    Thêm thư mục PHP vào Path của Windows
    My Computer > Properties > Advanced > Environment Variables > System Variables >​
    điền ;C:\PHP vào Path
    Hoặc chép tất cả file PHP vào thư mục Windows (C:\Windows mặc định có sẵn trong PATH). làm này đã lỗi thời và có thể gây lỗi.​

    env.png



    Thêm PHP.ini vào System Variables
    Environment Variables > System Variables >New >​
    Mã (Text):
    1. Variable name: PHPRC
    2. Variable value C:\PHP (nơi chứa php.ini)
    phprc.png


    Thiết lập FastCGI làm việc với IIS
    Mã (Text):
    1. cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
    2. -extension:php -path:"C:\PHP\php-cgi.exe"
    Lệnh này xe tạo 1 IIS script ánh xạ (map) *.php (kết quả là tất cả URL với đuôi .php đêu được xử lý bởi FastCGI extension. Nó sẽ thiết lập FastCGI đẻ sử dụng file php-cgi.exe để tiến hành các yêu cầu PHP

    Restart lại máy để hoàn tất quá trình cài đặt và cấu hình

    Kết thúc để kiểm tra xem PHP có cài đặt và cấu hình đúng không, tạo 1 code php lưu lại tên phpinfo.php với nội dung
    Mã (Text):
    1. <?php
    2. phpinfo();
    3. ?>
    4.  
    Chạy thử qua http://localhost/phpinfo.php hay nơi bạn để file phpinfo.php

    info.png



    2. Cài đặt và cấu hình PHP trên IIS 7+ (Windows 7, Server 2008, Windows 8)

    Cài đặt tương tự như IIS5.1 và II6, nhưng khác ở chỗ từ Windows 7 trở đi, đã tích hợp sẵn CGI, nên chỉ cần bật lên.
    - Đối với Windows 7 thông qua Windows Features > .. > CGI (như hình vẽ)
    f.png

    - Đối với Windows Server 2008+ thông qua Add Role Services > CGI
    b4cf2bb34e3c20eebcf8f9e8e7949efd-iis7w2k8cgi.png

    Cũng thiết lập CGI trong php.ini
    Mã (Text):
    1. fastcgi.impersonate = 1
    2. fastcgi.logging = 0
    3. cgi.fix_pathinfo=1
    4. cgi.force_redirect = 0
    Tạo Handler Mapping cho PHP trong IIS
    Mở IIS > Handler Mappings
    b4cf2bb34e3c20eebcf8f9e8e7949efd-iis7handlericon.png

    Tại khung Action > chọn Add Module Mapping.. và điền các thông số sau:
    Mã (Text):
    1.  
    2.     Request path: *.php
    3.     Module: FastCgiModule
    4.     Executable: C:\php\php-cgi.exe
    5.     Name: PHP_via_FastCGI
    Nhấp vào Request Restriction.. và thiết lập như hình vẽ

    b4cf2bb34e3c20eebcf8f9e8e7949efd-iis7handlermap.png
    Hoặc đơn giản hơn bằng cách dùng lệnh trong CMD

    Mã (Text):
    1. %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
    2. /+[fullPath='c:\PHP\php-cgi.exe']
    Code này sẽ tạo 1 tiến trình IIS FastCGI sử dụng php-cgi.exe để xử lý các yêu cầu về PHP

    Mã (Text):
    1. %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
    2. /+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
    3. scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
    Code này sẽ tạo handler mapping cho tên mở rộng .php. Tất cả URL tận cùng bằng .php đều được xử lý bởi module FastCGI
     
    Đang tải...
Đã lưu nháp Draft deleted
Đang tải...