Hôm nay tôi hướng dẫn các bạn cài đặt Phalcon trực tiếp trên Mac OSX để lập trình.
Phalcon là thư viện lập trình PHP ngày càng trở nên phổ biến, hiện HomeBrew đã có formula để cài đặt Phalcon. Việc cấu hình lập trình thư viện Phalcon trên MacOSX trở nên thuận tiện hơn bao giờ hết.

Phalcon là thư viện lập trình PHP dễ học, năng suất lập trình cao, nhiều tính năng và quan trọng là nó có tốc độ cao nhất trong số các thư viện PHP hiện nay.

Quá trình cài đặt – cấu hình mất khoảng 15 phút nếu bạn đã có kiến thức căn bản về lệnh trong Linux. Trước khi cài bạn nên cài và học cách sử dụng công cụ HomeBrew. Tôi đã viết một bài hướng dẫn tại đây, Homebrew công cụ không thể thiếu khi lập trình trên MacOSX.

Cài đặt Nginx

brew info nginx
brew install --devel nginx #cài bản đang phát triển 1.5.5 sắp tới là 1.5.6
brew install --devel --with-gunzip nginx #bổ xung thêm gunzip nếu muốn bổ xung module nén nội dung web site trước khi trả về cho browser

Bật / tắt Nginx

nginx  #khởi động nginx
sudo nginx -s stop  #tắt nginx

Nếu Nginx bật thử vào địa chỉ http://localhost:8080 kiểm tra

Cài đặt PHP với FPM

brew tap josegonzalez/php
brew tap homebrew/dupes #Nếu không tap homebrew/dupes sẽ có lỗi: No available formula for zlib
brew info josegonzalez/php/php55
brew install --with-pgsql --with-fpm --without-apache php55  #cài PHP5 bật FPM tắt Apache, cài hỗ trợ cho Postgresql

Kiểm tra version, thư mục của PHP và PHP-FPM sau khi cài

php -v #Trả về PHP 5.5.11 (Cli)
which php #Trả về địa chỉ file chạy PHP, thường là /usr/local/bin/php
php-fpm -v #Trả về PHP 5.5.11 (fpm-fcgi) 
which php-fpm #Trả về /usr/local/bin/php-fpm

Xử lý lỗi

configure: error: Cannot find OpenSSL’s <evp.h> khi cài PHP55
Lỗi này là do XCode chưa cài Command Line Tools. Bật XCode lên, vào Preferences > Downloads > Components chọn cài Command Line Tools, kích thước khoảng 110Mb. Khi nào cài xong tiếp tục lệnh brew install –with-fpm –without-apache php55

Lỗi hay xảy ra nữa đó là trong Mountain Lion đã có sẵn PHP và PHP-FPM phiên bản cũ hơn. Cách xử lý như sau:

Gõ php -v để kiểm tra xem version cũ có tồn tại trước đó không, sau đó gõ which php để biết xem nó ở đâu.

Mở Finder tìm đến đúng file php cũ xóa nó đi và gõ lệnh sau đây vào Terminal. Lệnh này thực chất là tạo ra symbolic link từ thư mục PHP55 do Homebrew cài vào thư mục /usr/bin. Mọi lệnh chạy /usr/bin/php sẽ thực chất chạy /usr/local/Cellar/php55/5.5.11/bin/php.
ln -s /usr/local/Cellar/php55/5.5.11/bin/php /usr/bin

Làm tương tự đối với php-fpm
ln -s /usr/local/Cellar/php55/5.5.11/sbin/php-fpm /usr/bin

Cài đặt XDebug để gỡ rỗi khi lập trình

brew info php55-xdebug #xem trước thông tin
brew install php55-xdebug #sau đó cài đặt XDebug

Cài đặt Phalcon

brew install autoconf #để cấu hình tự động trước đã
brew info php55-phalcon #Kiểm tra thông tin gói php55-phalcon
brew install php55-phalcon

Khi cài lại, biên dịch lại PHP để bổ xung chức năng thì cần làm các bước sau

brew list #xem cùng với PHP còn có module nào được cài
sh webstop.sh #xem bài "Shell script to start and stop Nginx, PHP-FPM and Postgresql"
brew uninstall php55 #gỡ PHP55
brew uninstall php55-xdebug #gỡ module XDebug
brew uninstall php55-phalcon #gỡ module Phalcon
#cài lại có thể thêm bớt các module
brew install --with-pgsql --with-fpm --without-apache php55
brew install php55-xdebug #sau đó cài lại các module
brew install php55-phalcon
sh webstart.sh #khởi động lại Nginx, PHP-FPM và Postgresql

Sửa file cấu hình nginx.conf để Nginx gọi vào PHP-FPM

nano /usr/local/etc/nginx/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;
        root /usr/local/var/www;
        index  index.html index.htm index.php;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {
            root   html;
        }
        //Đoạn này cấu hình để Nginx gọi vào fastcgifastcgi PHP-FPM ở cổng 9000
        location ~ .php$ {
            include fastcgi.conf;
            fastcgi_intercept_errors on;
            fastcgi_pass 127.0.0.1:9000;
        }
    }
}

Kiểm tra xem Nginx, PHP, XDebug, Phalcon đã được load hay chưa?

Sau khi cấu hình xong hay bật Nginx và PHP-FPM lên. Lưu ý trong Mountain Lion đi kèm máy chủ Apache2 và PHP. Nếu Nginx muốn dùng cổng 80 để lập trình thì ta phải làm các bước sau đây.

sudo apachectl stop  #Tắt web server Apache2 nếu nó đang chạy
sudo nginx #bật web server Nginx lên

sudo PHP-FPM -F #Nếu muốn chạy ở chế độ Foreground. Đóng terminal là tắt PHP-FPM FastCGI server
sudo PHP-FPM -D #Chạy PHP-FPM ở chế độ ngầm - daemon

PHP-FPM -i #in ra các biến, thông số cấu hình hệ thống. Rất cần thiết khi troubleshooting.

Tạo một file index.php ở thu mục gốc chạy lệnh phpinfo
<?php phpinfo(); ?>

Lưu ý nếu bật server Nginx mà quên không bật PHP-FPM thì khi truy xuất tới file PHP, Nginx sẽ trả file PHP như là một file tĩnh được download.

Trên đây mới chỉ cấu hình Nginx đơn giản. Trong bài tiếp theo tôi sẽ hướng dẫn cấu hình Nginx cho multi-domain để lập trình nhiều dự án PHP, Phalcon trên cùng một máy Mac.

lập trình php với Phalcon