Cài đặt XDebug PHP-FPM Nginx PHPStorm trên Ubuntu Linux khá rắc rối. Trong bài này tôi ghi lại kinh nghiệm đã cấu hình để gỡ rối ứng dụng PHP bằng cách cài XDebug trong PHP-FPM, cấu hình cả trên server và máy trạm lập trình. Công cụ lập trình PHP ở đây là PHPStorm của hãng JetBrains. Hiện nay Techmaster là đối tác đào tạo được JetBrains cung cấp license sử dụng PHPStorm miễn phí.

Tham khảo bài viết Cài đặt Phalcon trên máy ảo để từng bước dựng máy chủ ảo hoá Ubuntu-Nginx-PHP-FPM,MySQL,vsFTP…

Cấu hình XDebug trong PHP-FPM trên web server

Bật Terminal , SSH vào Ubuntu server cài Nginx và PHP-FPM.

Gõ lệnh để sửa Xdebug.ini sudo nano /etc/php5/fpm/conf.d/xdebug.ini

Gõ password để mở nano và thêm các dòng lệnh như sau:

zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.profiler_output_dir=/home/techmaster/profile
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.remote_enable=true
xdebug.remote_host=192.168.1.100
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_autostart=0

Nếu máy chủ Nginx-FPM là remote server (không cùng IP với máy tính lập trình, cài PHPStorm), thì dòng lệnh xdebug.remote_host=192.168.1.100 sẽ cho biết địa chỉ IP của máy tính cài PHPStorm. Nếu Nginx-FPM cài trên máy tính với PHPStorm thì xdebug.remote_host= 127.0.0.1 (localhost).

Khởi động lại PHP-FPM service sudo service php5-fpm restart. Lưu ý không cần khởi động lại Nginx service vì 2 dịch vụ này độc lập với nhau khác với trường hợp Apache-PHP.
 

Cấu hình PHPStorm

Học lập trình trực tuyến

Cấu hình để PHPStorm nối vào XDebug. PHPStorm phải mở một cổng để XDebug gọi vào, trả về thông tin tại đoạn lệnh đang được gỡ rối

Lưu ý remote_port là 9001. Bạn có thể chọn port khác nhưng giống với xdebug.remote_port trong xdebug.ini trên máy chủ. Nếu lập trình trên môi trường Windows hãy đảm bảo là Firewall trên Windows không chặn máy tính khác gọi vào cổng này!

Học lập trình online

Cấu hình kết nối FTP server ở remote server. Nhớ ấn Test FTP Connection để kiểm tra kết nối

Ánh xạ mã nguồn ở máy lập trình vào mã nguồn trên máy chủ:

Menu Tool > Deployment > Configuration…

Nếu bạn muốn cập nhật ngay mã nguồn lên remote server khi lưu mã nguồn trong PHPStorm thì bật lựa chọn menu Tools > Deployment > Automatic Update.

Học lập trình tại trung tâm

Ánh xạ thư mục mã nguồn ở máy lập trình (local) và thư mục mã nguồn trên remote server. Lưu ý gõ đường dẫn tương đối với máy chủ FTP

Cấu hình Run/Debug Configurations

Một dự án PHP có thể cấu hình để chạy trên máy trạm local trước, nếu mọi thứ ổn thì có thể đẩy lên máy chủ (remote server) rồi tiếp tục kiểm thử. Hoặc lập trình viên muốn chạy PHPUnit để unit test trước….

Trong PHPStorm cần phải tạo cấu hình cụ thể trong từng hoàn cảnh. Ở đây tôi tạo cấu hình để gỡ rối trên remote server nên chọn

Học lập trình ở đâu chất lượng nhất?

Chọn PHP Web Application -> chọn máy chủ -> đường dẫn tương đối ứng với dự án hiện tại

Cài thêm mở rộng (extension) JetBrains IDE Support trên Chrome

Trong quá trình phát triển web site, bạn cần có công cụ để gỡ rối cả mã JavaScript, HTML, CSS. Do vậy nên cài thêm JetBrains IDE Support.

Tham khảo khoá học “Xây dựng web site thương mại điện tử PHP-MySQL”. Đây là khoá học chuyên nghiệp nhất để đào tạo lập trình viên PHP phát triển những ứng dụng web chuyên nghiệp, có tốc độ cao, chức năng đa dạng đáp ứng nhu cầu start up, thương mại điện tử và gia công cho thị trường quốc tế.