Trong macOS phiên bản mới (như 10.11, 10.12, 10.13 ...) có cài sẵn mặc định Webserver Apache HTTP và PHP, tuy nhiên
để dễ tuỳ biến trong phần này sẽ huỷ sử dụng cài đặt mặc định đó để sử dụng phiên bản Apache
, PHP
, MySQL
tuỳ chọn.
Do sử dụng brew
để cài đặt, nên đảm bảo cài đặt công cụ này trước: Sử dụng Homebrew (brew)
Các file cấu hình cho Apache, PHP, MySQL sử dụng Visusal Studio Code
để soạn thảo, nên cũng cần cài VS Code trước:
Cài đặt Visual Studio Code
Đầu tiên cần đảm báo có Command Line Tools
xcode-select --install
Có một số thư viện có thể cần bổ sung, chạy lệnh sau để cài đặt:
# brew install openldap libiconv
Cài đặt Apache
Trước tiên cần huỷ đi việc sử dụng Apache cài đặt mặc định nếu đang kích hoạt:
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
Tiến hành cài đặt Apache bằng lệnh:
# brew install httpd
Cấu hình để Apache tự động chạy khi khởi động hệ thống:
# sudo brew services start httpd
Mặc định Webserver Apache HTTP cài theo cách trên nó làm việc trên cổng 8080
, nên có thể truy cập địa chỉ
http://localhost:8080
, kết quả như sau chứng tỏ Apache đã cài thành công
Khi làm việc với Apache một số lệnh có thể dùng tới như:
#Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop
Thông tin cấu hình chỉnh của Apache lưu trong file /usr/local/etc/httpd/httpd.conf
,
để soạn thảo - thay đổi cấu hình gõ lệnh
#Khởi động Apache # code /usr/local/etc/httpd/httpd.conf
Thay đổi một số cấu hình Apache
8080
thành cổng 80
, tìm đến:Listen 8080
Listen 80
#ServerName www.example.com:8080
ServerName localhost
admin
tìm đến:User _www Group _www
User admin Group _www
.htaccess
:#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
/Users/admin/Documents/testweb/
,
và cấu hình để chạy trên domain ảo testweb.com
<VirtualHost *:80> DocumentRoot "/Users/admin/Documents/testweb/" ServerName testweb.com <Directory "/Users/admin/Documents/testweb"> AllowOverride all Options Indexes FollowSymLinks MultiViews Require all granted </Directory> </VirtualHost>
Tiếp theo thay đổi host
bằng cách gõ:
# code /etc/hosts
127.0.0.1 testweb.com
Khởi động lại Apache sudo apachectl restart, tạo ra một file index.html
có nội dung TEST PAGE
trong thư mục web, chạy kiểm tra http://testweb.com
Cài đặt PHP
Ta cài PHP thông qua brew
với các phiên bản hỗ trợ như 7.1
7.2
7.3
..., các phiên bản
như 5.6
, 7.0
bị đánh dấu là lỗi thời - nếu vẫn muốn cài phiên bản lỗi thời này thì gõ lệnh sau trước khi cài đặt.
# brew tap exolnet/homebrew-deprecated
Để cài đặt phiên bản PHP nào thì gõ lệnh cài đặt brew install
với tham số bản PHP như php@7.2
,
php@7.4
, php8.0
..., ví dụ:
#CÀI PHP5.6 # brew install php@5.6 #CÀI PHP7.2 # brew install php@7.2
File cấu hình cho từng phiên bản PHP nằm trong các thư mục con trong /usr/local/etc/php/
như:
/usr/local/etc/php/5.6/php.ini /usr/local/etc/php/7.2/php.ini
Cấu hình Apache để làm việc với PHP, ví dụ cấu hình để Apache gọi đến phiên bản PHP7.2 đã cài đặt.
Mở file /usr/local/etc/httpd/httpd.conf
và thêm vào
#LoadModule php5_module /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so
#LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
Cũng cần đảm bảo trong httpd.conf
có định nghĩa Handler, để Apache biết gọi đến PHP với các file có phần mở rộng .php
<IfModule dir_module> DirectoryIndex index.php index.html </IfModule> <FilesMatch \.php$> Sethandler application/x-httpd-php </FilesMatch>
Khởi động lại Apache, sau đó tạo một file index.php
trong thư mục website, với nội dung:
<?php phpinfo(); ?>
Kiểm tra thử http://testweb.com
Chuyển đổi nhanh phiên bản PHP với SPHP
Cài đặt SPHP
# curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw > /usr/local/bin/sphp # chmod +x /usr/local/bin/sphp # export PATH=/usr/local/bin:/usr/local/sbin:$PATH
Nếu có cài nhiều phiên bản PHP và muốn chuyển nhanh sang một phiên bản thì gõ lệnh
#CHUYỂN SANG PHP5.6 # sphp 5.6 #CHUYỂN SANG PHP 7.2 # sphp 7.2
Cài đặt extension memcached, xdebug cho PHP, cơ bản sử dụng pecl để cài đặt (kể cả các extension khác nếu cần)
brew install zlib brew install libmemcached pecl install memcached pecl install xdebug
Sử dụng PHP-FPM
Mỗi phiên bản cài đặt trên, đồng thời nó cũng có PHP-FPM được cài đặt.
File cấu hình trong thư mục tương ứng với bản PHP, ví dụ PHP 8.0 thì file cầu hình tại /usr/local/etc/php/8.0/php-fpm.d/www.conf
Với PHP-FPM thì máy chủ Web (như Apache, Nginx) sẽ chạy code PHP thông qua proxy, được phục vụ bởi dịch vụ PHP-FPM đang lắng nghe trên cổng nào đó (mặc định là 9000).
Để rõ hơn cho trường hợp sử dụng này hãy tham khảo Apache Handler và Nginx - VHost
Nếu bạn muốn dùng PHP-FPM để chạy code PHP, để tiện hãy mở file cấu hình www.conf
sửa dòng
listen = 127.0.0.1:9000
Thành
listen = 0.0.0.0:9000
Sau đó dùng lệnh brew services
quản lý dịch vụ PHP cho phù hợp (về lệnh này xem thêm
Sử dụng lệnh brew)
Khi bạn cập nhật cấu hình, để khởi động lại dịch vụ bạn dùng lệnh (ví dụ cho bản php 7.2)
brew services restart php@7.2
Nếu dịch vụ đang bị dừng dùng lệnh sau để chạy
brew services start php@7.2
Để dừng dịch vụ
brew services stop php@7.2
Khi bạn chuyển phiên bản PHP, bạn cần dừng dịch vụ, sau khi chuyển phiên bản bạn dùng brew services start chạy bản mới.
Nếu dịch vụ đang chạy, dùng lệnh sau kiểm tra xem đã có dịch vụ PHP đang chạy và cổng lắng nghe
lsof -Pni4 | grep LISTEN | grep php
Cài đặt MySQL
Cài đặt bằng brew
#Cài phiên bản mặc định 8. # brew install mysql #Nếu cài phiên bản 5.6 # brew install mysql@5.6 #Nếu cài phiên bản 5.7 # brew install mysql@5.7
Thiết lập MySQL chạy cùng hệ thống
# brew services start mysql # Kiểm tra xem các dịch vụ nào đang thiết lập chạy tự động # brew services list # Kiểm tra phiên bản mysql # mysql -V
# Chạy mysql nếu đang dừng # brew services run mysql # Dừng mysql # brew services stop mysql # Khởi động lại mysql # brew services restart mysql
Mặc định user có quyền cao nhất là root
với password là rỗng ''
, nếu muốn thiết lập password mới
cho root
chạy lệnh:
mysqladmin -u root password 'newpassword'
File config my.cn tìm bằng lệnh mysql --help
nó nằm ở: /usr/local/etc/my.cn
Công cụ quản trị MySQL
Có nhiều công cụ để quản trị MySQL, thậm chí có thể sử ngay ứng dụng nền web như phpmyadmin
, ở đây
gợi hai công cụ chạy trên macOS đó là MySQL Workbench
và Sequel Pro
Cài đặt Workbench
brew cask install --appdir="/Applications" mysqlworkbench
Cài đặt Workbench
brew cask install --appdir="/Applications" sequel-pro