Cài đặt môi trường Apache, MySQL và APC trên OSX 10.10 Yosemite

Trong bài Cài đặt và sử dụng nhiều phiên bản PHP trên Mac OS X 10.10 Yosemite trước chúng ta đã cài đặt và sử dụng web server apache với nhiều phiên bản php để thuận tiện cho việc phát triển web. Trong bài này chúng ta sẽ cùng nhau cài đặt các thành phần cần thiết khác bao gồm: MySQL, Virtual Hosts cho Apache phát triển nhiều ứng dụng web đồng thời, APC cho caching và Xdebug.

MySQL

Mặc dù việc cài đặt MySQL là không bắt buộc để phát triển web với php nhưng hầu hết các ứng dụng web ngày nay đều sử dụng nó. Phổ thông thì mọi người sẽ sử dụng MySQL của Oracle, nhưng chúng ta sẽ sử dụng MariaDB - một phiên bản thay thế cho MySQL với rất nhiều ưu điểm mới và có thể cài đặt và cập nhật dễ dàng với Brew. Hướng dẫn chi tiết về việc cài đặt MariaDB bằng HomeBrew có thể tìm thấy dễ dàng trên trang http://mariadb.com nhưng bạn cũng có thể cài đặt trực tiếp theo các câu lệnh sau trên terminal:

brew install mariadb
unset TMPDIR
mysql_install_db

Sau khi cài đặt thành công, bạn có thể khơi động mysql server bằng câu lệnh:

mysql.server start

Bạn sẽ thấy thông báo sau trên terminal sau khi khơi động thành công:

Starting MySQL
. SUCCESS!

Bạn nên bảo mật mysql server sau khi cài đặt. Cách đơn giản nhất là sử dụng script được cung cấp sẵn bằng câu lệnh:

/usr/local/bin/mysql_secure_installation

Sau đó bạn chỉ việc trả lời các câu hỏi để có một môi trường mong muốn.

Nếu bạn cần stop server, câu lệnh cũng rất đơn giản:

mysql.server stop

Apache Virtual Hosts

Trong quá trình phát triển web, sẽ có những lúc bạn cần phát triển đồng thời vài dự án cùng lúc, khi đó bạn sẽ cần có nhiều virtual hosts thiết lập cho các dự án khác nhau. Điều này nghĩa là bạn có thể thiết lập project-a.mydomain.com truy cập tới dự án A và project-b.mydomain.com truy cập tới dự án B.

Apache đã có sẵn mẫu thiết lập cho việc này nhưng nó không được enable sẵn. Để enable chức năng này, bạn sẽ cần bỏ comment dòng sau trong file /etc/apache2/httpd.conf:

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

Tiếp theo bạn có thể thiết lập file /etc/apache2/extra/httpd-vhosts.conf theo nhu cầu sử dụng.

Bạn sẽ cần edit file này với lệnh sudo giống như khi thay đổi file httpd.confbài trước. Trong file này đã có sẵn một vài hướng dẫn nhưng điểm quan trọng bạn cần ghi nhớ là các rules này được match theo thứ tự. Khi bạn thiết lập virtual hosts, bạn sẽ mất thiết lập cũ về document root. Bởi vậy bạn sẽ cần thêm lại nó đầu tiên như là 1 virtual host:

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites/project-a"
    ServerName project-a.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites/projects/project-b"
    ServerName project-b.mydomain.com
</VirtualHost>

APC Cache

Caching trong PHP là một yếu tố có ảnh hưởng lớn tới hiệu suất (performance) của ứng dụng web. Có 2 loại caching cơ bản, cả 2 đều có tác dụng lớn đến tốc độ và hiệu suất.

Loại thứ nhất được gọi là opcode cache. Loại này sẽ lấy PHP script của bạn và compile nó để chạy (execution) nhanh hơn. Loại này có thể cho tốc độ tăng gấp 3 lần.

Loại thứ hai là user cache. Loại này la sử dụng một nơi mà PHP có thể lưu và lấy dữ liệu (data) một cách nhanh chóng. Thông thường nó sẽ chạy trong memory, chúng sẽ không tồn tại mãi mãi nhưng lại cực kỳ nhanh.

Đối với PHP 5.4, một trong những lựa chọn tốt nhất là APC Cache. Nó thực sự là kết hợp của cả 2 loại cache: opcache và user cache. Một giải pháp tất cả trong một cho việc caching.

Đối với PHP 5.5 và 5.6 sẽ thêm thú vị vì nó có sẵn Zend OPCache mặc định nhưng bạn vẫn có thể sử dụng APCu Cache như là data store.

Cài đặt APC cho PHP 5.4

Đầu tiên, bạn cần chắc chắn là bạn đang sử dụng PHP 5.4, sau đó chúng ta sẽ dùng brew để cài đặt APC:

sphp 54
brew install php54-apc

Cài đặt OPCache và APCu cho PHP 5.5 và 5.6

Chuyển qua sử dụng PHP 5.5 và cài đặt theo các câu lệnh sau:

sphp 55
brew install php55-opcache
brew install php55-apcu

Bạn cũng cần lặp lại các bước này cho PHP 5.6

sphp 56
brew install php56-opcache
brew install php56-apcu

Khởi động lại Aache với câu lệnh cơ bản sudo apachectl restart để cập nhật thay đổi. Bạn có thể truy cập http://localhost/info.php để chắc chắn bằng các thông tin liên quan tới APC. Ví dụ:

APC Information

Thực tế bạn có khá nhiều lựa chọn cho việc caching. Có một số cũng có thể cài đặt qua brew như XCache, Memcache. Để tìm thấy danh sách các packages có thể cài đặt, đơn giản gõ:

brew search php54

hoặc

brew search php55

hoặc

brew search php56

Xdebug

Một trong những điều quan trọng nhất của quá trình phát triển nói chung và web nói riêng là khả năng debug và sửa lỗi. PHP hỗ trợ sẵn rất giới hạn cho việc dump các biến (variables) hoặc log ra file. Đối với các tình huống phức tạp hơn, bạn sẽ cần thứ gì đó mạnh mẽ hơn. Xdebug cung cấp như một phần mở rộng (extension) debugging và profiling cho PHP. Nó cung cấp một output "thân thiện" (friendly) với HTML cho var_dump() method giúp cho việc đọc hiểu dễ dàng hơn phiên bản mặc định. Nó cũng cung cấp các methods dumping hữu dụng khác cũng như hiển thị stack traces. Một trong những chức năng tuyệt vời nhất là khả năng remote debug, nghĩa là bạn có thể set breakpoints và chạy từng bước qua PHP code của bạn để điều tra bug. Tài liệu đầy đủ về Xdebug có các thông tin về các chức năng khác mà các bạn có thể tham khảo

Việc cài đặt Xdebug cũng dễ dàng như các thành phần trước.

sphp 54
brew install php54-xdebug

và cho PHP 5.5:

sphp 55
brew install php55-xdebug

cho PHP 5.6:

sphp 56
brew install php56-xdebug

Bạn sẽ cần restart apache tiếp bằng lệnh sudo apachectl restart để các thay đổi có hiệu quả. Truy cập http://localhost/info.php để chắc chắn các thông tin về Xdebug đã được hiển thị:

Xdebug Information

W00fz đã tạo ra một công cụ tuyệt vời cho việc tắt bật xdebug một cách nhanh chóng. Nó sẽ giá trị khi cài vào thư mục ~/bin.

Đến đây thì bạn đã có một môi trường hoàn toàn đầy đủ cho việc phát triển PHP trên OS X 10.10 Yosemite rồi đấy. Việc của bạn bây giờ sẽ là tạo ra các ứng dụng PHP thật tuyệt vời thôi. Happy coding !


All Rights Reserved