Apache PHP MySql Server

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

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

Apache

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
Apache Config

Thay đổi một số cấu hình Apache

Đổi cổng HTTPD Thay đổi cổng 8080 thành cổng 80, tìm đến:
Listen 8080
Thay bằng:
Listen 80
Đổi ServerName tìm đến:
#ServerName www.example.com:8080
Thay bằng:
ServerName localhost
Thay đổi user chạy , ví dụ muốn đổi vai trò chạy là của user admin tìm đến:
User _www
Group _www
Thay bằng:
User admin
Group _www
Bật mod_rewrite, để hỗ trợ viết lại URL và .htaccess:
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Thay bằng:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Tạo thử một VirtualHost: ví dụ webiste lưu tại /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
Thêm vào:
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

test apache

Cài đặt PHP

Ta cài PHP thông qua brew với các phiên bản hỗ trợ gồm 7.1 7.2 7.3, các phiên bản 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 tương ứng:

#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 ở:

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.2/php.ini

Cấu hình Apache, 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 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

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'

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 WorkbenchSequel Pro

Cài đặt Workbench

brew cask install --appdir="/Applications" mysqlworkbench
Workbench

Cài đặt Workbench

brew cask install --appdir="/Applications" sequel-pro
sequel
Đăng ký theo dõi ủng hộ kênh