Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
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.4 (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.4 (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/local/bin. Mọi lệnh chạy /usr/local/bin/php sẽ thực chất chạy /usr/local/Cellar/php55/5.5.4/bin/php.
ln -s /usr/local/Cellar/php55/5.5.4/bin/php /usr/local/bin
Làm tương tự đối với php-fpm
ln -s /usr/local/Cellar/php55/5.5.4/sbin/php-fpm /usr/local/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.