Cài đặt và sử dụng nhiều phiên bản PHP trên Mac OS X 10.10 Yosemite
Bài đăng này đã không được cập nhật trong 3 năm
Thực sự thì việc phát triển web trên môi trường Mac OS X khá là tuyệt vời. Việc setup môi trường để phát triển PHP có khá nhiều lựa chọn, trong đó có thể kể đến 1 phần mềm khá là thông dụng - MAMP Pro. MAMP Pro cung cấp một giao diện thân thiện cho việc quản lý Apache, PHP và MySQL. Tuy nhiên, việc tuỳ biến sẽ trở lên khó khăn hơn do MAMP Pro sử dụng những configuration template riêng. Và đôi khi, MAMP Pro còn bị chậm mà không rõ nguyên nhân !!!
Đó là lý do mà chúng ta sẽ thực hiện theo cách khác, cài đặt và thiết lập mọi thứ qua terminal. Thực sự thì việc sử dụng mọi thứ qua terminal khá là thú vị. Nó có thể hơi khó 1 chút đối với người mới (do type nhiều) nhưng khi đã làm quen rồi thì rất thích thú (vẫn là do được type nhiều)
Apache
OSX 10.10 Yosemite được cài đặt sẵn Apache 2.4. Để khởi động web server, các bạn chỉ việc mở Terminal (/Applications/Utilities/Terminal) và gõ:
sudo apachectl start
Quá dễ đoán đối với việc stop và restart đúng không?
sudo apachectl stop
sudo apachectl restart
OK rồi, hãy start apache ngay đi và mở trình duyệt lên và gõ thử localhost xem có hiện ra It works! hay không nào.
Chú ý
: Nếu bạn không thể truy cập được http://localhost thì bạn sẽ cần thêm alias vào file /etc/hosts
: 127.0.0.1 localhost
. Mặc định thì nó đã có sẵn.
Document Root
Điều đầu tiên chúng ta muốn làm sẽ là thay đổi Document Root cho Apache. Đây là folder mà Apache sẽ tìm kiếm file để phục vụ. Mặc định thì Document Root được thiết lập ở /Library/WebServer/Documents
. Thiết lập này thường được dùng cho các máy có nhu cầu làm máy chủ (web server). Chúng ta sẽ thay đổi nó về thư mục home - thư mục user của bạn. Để thực hiện điều này, chúng ta cần thay đổi file /etc/apache2/httpd.conf
. Do đây là file được sở hữu bởi root
nên bạn sẽ cần thêm sudo
để có thể thay đổi được file. Ở đây mình dùng vim, bạn có thể dùng các editor khác như sublime text hay nano nếu thích.
sudo vi /etc/apache2/httpd.conf
Tìm từ DocumentRoot
, bạn sẽ thấy dòng sau:
DocumentRoot "/Library/WebServer/Documents"
Thay đổi đường dẫn thành folder dưới user của bạn. Ở đây tôi dùng thư mục Sites
DocumentRoot "/Users/your_user/Sites"
Bạn cũng cần thay đổi đường dẫn ở trong thẻ <Directory>
<Directory "/Users/your_user/Sites">
Ở ngay trong block của <Directory>
bạn sẽ thấy AllowOverride
, hãy thay đổi nó thành như sau:
AllowOverride All
User & Group
Bây giờ Apache đã được thiết lập để trỏ tới thư mục Sites
trong thư mục home của bạn. Tuy nhiên chúng ta vẫn có một vấn đề, đó là mặc định apache sẽ chạy dưới user _www
và group _www
. Điều này sẽ dẫn tới các vấn đề liên quan tới permisssion khi truy cập các file trong thư mục home. Chúng ta sẽ cần thay đổi chúng thành user mà bạn đang dùng và group staff
. Vẫn ở trong file httpd.conf
, bạn tìm 2 thiết lập User
và Group
và thay đổi chúng:
User your_user
Group staff
Đến đây chúng ta có thể save lại file httpd.conf
. Nếu bạn vẫn dùng vim thì type :wq
và enter
Tạo thư mục Sites
Sau khi chỉnh sửa file httpd.conf
thì tất nhiên bạn sẽ cần restart lại apache để cập nhật các thiết lập mới:
sudo apachectl restart
Bây giờ bạn cần tạo thư mục Sites
ở trong thư mục home (your_user) của bạn. Ở trong thư mục Sites
, chúng ta sẽ tạo thêm 1 file index.html
với nội dung đơn giản: <h1>Day la thu muc goc cua web server</h1>
. Bạn có thể làm việc này bằng Terminal hay Finder tuỳ bạn, ở đây tôi dùng terminal luôn:
mkdir ~/Sites
echo "<h1>Day la thu muc goc cua web server</h1>" > ~/Sites/index.html
Bây giờ hãy mở http://localhost
bằng trình duyệt để kiểm tra xem nội dung chúng ta vừa viết có hiện ra không nhé. Nếu và nó nên hiện ra nội dung như thế, chúng ta có thể đến bước tiếp theo
Homebrew
Việc cài đặt và cả quá trình sử dụng của chúng ta sẽ phụ thuộc rất nhiều vào một package manager trên OS X được gọi là Homebrew. Để cài đặt được Homebrew thì Xcode 6.1 (hoặc hơn) và Command Line Tools là yêu cầu bắt buộc. Hãy chắc chắn rằng bạn cài đặt Xcode trước. Sau khi cài đặt thành công, mở Xcode, đồng ý với Terms and Conditions, sau đó cài đặt Command Line Tools bằng câu lệnh sau:
xcode-select --install
Installation
Cài đặt Homebrew bằng câu lệnh sau:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Hãy nhập password khi được yêu cầu. Quá trình này có thể sẽ mất vài phút. Sau khi hoàn thành, bạn có thẻ kiểm tra việc cài đặt brew có thực sự hoàn tất hay không bằng câu lệnh:
brew --version
Verificaton
Để chắc chắn rằng mọi thứ ổn và được update mới nhất, hãy chạy 2 lệnh sau:
brew doctor
brew update
Install PHP 5.4, 5.5, 5.6
Việc cài đặt các phiên bản PHP khi đã có brew khá là đơn giản. Hãy chạy các câu lệnh sau để cài đặt PHP 5.4, 5.5 và 5.6
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
brew install php54
brew install php55
brew install php56
Quá trình này sẽ mất thời gian một chút. Sau khi hoàn thành, nếu bạn muốn thay đổi một số thiét lập cho mỗi bản php thì có thể tìm file php.ini
của mỗi version trong các đường dẫn sau:
/usr/local/etc/php/5.4/php.ini
/usr/local/etc/php/5.5/php.ini
/usr/local/etc/php/5.6/php.ini
Thiết lập Apache
Bạn đã cài đặt nhièu phiên bản php, nhưng chúng ta cần phải thiết lập Apache để sử dụng chúng. Để làm được điều này, chúng ta sẽ lại phải thay đổi file /etc/apache2/httpd.conf
. Hãy tìm #LoadModule php5_module
và thêm vào bên dưới:
# Brew PHP LoadModule
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
Ở đây chúng ta thiết lập để apache sử dụng php 5.4. Chúng ta sẽ thêm việc chuyển đổi phiên bản php sau. Bạn cũng nên bỏ comment module mod_rewrite.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Lưu lại thay đổi và restart Apache:
sudo apachectl restart
Validating PHP Installation
Cách tốt nhất để kiểm tra php version cũng như các module mà apache đang sử dụng là tạo 1 file info.php
ở thư mục Sites
sử dụng hàm phpinfo()
:
echo "<?php phpinfo();" > ~/Sites/info.php
Mở địa chỉ http://localhost/info.php
trên trình duyệt để thấy các thông tin về phiên bản php đang dùng.
PHP Switcher Script
Ở phần trên chúng ta đã hard-coded Apache để sử dụng PHP 5.4. Nhưng mục đích của chúng ta là có thể chuyển đổi các phiên bản PHP. Bây giờ chúng ta sẽ thực hiện việc đó qua PHP switcher script
Sẽ hữu ích hơn nếu bạn thiết lập 1 thư mục bin
ở trong thư mục home và setup srcipt trong đó:
mkdir -p ~/bin/
curl -L https://raw.githubusercontent.com/conradkleinespel/sphp-osx/master/sphp > ~/bin/sphp
chmod +x ~/bin/sphp
Cập nhật PATH
Để thuận tiện hơn cho việc tìm thấy script khi đang sử dụng terminal, chúng ta sẽ cần cập nhật PATH bằng cách thêm /Users/your_user/bin
và /usr/local/bin
, /usr/local/sbin
(của Homebrew). Phụ thuộc vào shell bạn dùng mà bạn sẽ cần thêm dòng sau vào file ~/.profile
, ~/.bash_profile
hoặc ~/.zshrc
export PATH=/usr/local/bin:/usr/local/sbin:$PATH:/Users/your_user/bin
Chú ý
: Thay your_user bằng user thực sự.
Hãy tắt tất cả tab và cửa sổ terminal đi và mở lại để cập nhật. Có thể kiểm tra lại PATH bằng lệnh echo $PATH
Thiết lập Apache sử dụng PHP Switcher
Chúng ta sẽ lại phải cập nhật file /etc/apache2/httpd.conf
. Tìm Brew PHP
bạn đã thêm vào trước đó. Thay dòng LoadModule
thành:
# Brew PHP LoadModule
LoadModule php5_module /usr/local/lib/libphp5.so
Để thay đổi phiên bản PHP sử dụng sang 5.5 chúng ta sẽ sử dụng lệnh:
sphp 55
Và restart apache để các thay đổi có hiệu lực
sudo apachectl restart
Như vậy, khi bạn muốn thay đổi phiên bản php để sử dụng, chỉ cần dùng sphp
và restart lại apache. Hi vọng bài viết này sẽ giúp cho việc lập trình php trên môi trường OS X của bạn dễ dàng hơn
Nguồn tham khảo: Grav
All rights reserved