Cài đặt Apache, MySQL, PHP trên macOS Sierra
Bài đăng này đã không được cập nhật trong 3 năm
Cài đặt Apache, MySQL, PHP trên macOS Sierra
Bài viết này sẽ hướng dẫn các bạn cài đặt Apache, MySQL, PHP (hay còn gọi là “AMP” stack) chạy trên Mac OS Sierra.
Apache/WebSharing
Web serving đã được build sẵn thông qua app Apache.
Để start Apache
sudo apachectl start
Để stop Apache
sudo apachectl stop
Để restart Apache
sudo apachectl restart
Để show version Apache
httpd -v
Version mặc định của Apache trên macOS Siera là Apache/2.4.23
Sau khi restarting Apache mở browser và truy cập vào http://localhost sẽ thấy xuất hiện “It Works!“
Nếu có vấn đề gì đó của Apache mà không thấy thì có thể chạy lại file config
apachectl configtest
Document Root
Document root là nơi để các file của website nó thường có các tên phổ biến như sau public_html
và htdocs
. OSX có 2 web roots một là ở mức system (system level) hai là mức người dùng (user level). Có thể setup cả hai hoặc chỉ sử dụng một.
System Level Web Root
Mặc định sẽ là http://localhost/
và các file được để ở trong thư mục /Library/WebServer/Documents/
User Level Root
Bạn cần tạo folder “Sites” cho account của bạn và add file “username.conf” vào bên trong /etc/apache2/users/
Có thể file đó đã có sẵn thì sẽ không cần tạo nữa. Tiếp đến là mở file và thay username theo như code bên dưới
<Directory "/Users/username/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
Kiểm tra Permission
-rw-r--r-- 1 root wheel 298 Jun 28 16:47 username.conf
nếu không giống như trên thì cần thay đổi lại quyền
sudo chmod 644 username.conf
Tiếp theo mở httpd.conf và cho phép một số module bằng cách uncomment.
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Tiếp tục với file
sudo nano /etc/apache2/extra/httpd-userdir.conf
và uncomment
Include /private/etc/apache2/users/*.conf
Lưu lại tất cả những thay đổi ở trên.
Cuối cùng là restart apache
sudo apachectl restart
và truy cập vào http://localhost/~username/ Sẽ thấy cấu trúc folder như sau
Override .htaccess and allow URL Rewrites
Nếu như sử dụng document root là /Library/WebServer/Documents thì sẽ setting file .htaccess để ghi đè lên setting mặc định bằng cách edit httpd.conf AllowOverride thành All và edit Apache
Để URL rewrites hoạt động được thì cần uncomment module ở dưới trong file httpd.conf
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
PHP
PHP 5.6.24 đã có sẵn ở macOS Sierra và cần được enable lên bằng cách uncomment trong file httpd.conf LoadModule php5_module libexec/apache2/libphp5.so
Sau đó restart lại Apache
Để test PHP thì tạo file “phpinfo.php” và đặt trong folder root với nội dung bên dưới và xem trên browser
<?php phpinfo(); ?>
MySQL
macOS Sierra Public Beta không làm việc tốt với MySQL 5.7.x nhưng một số vấn đề đã được giải quyết ở version MySQL 5.7.16
MySQL không được load sẵn ở macOS Sierra mà cần phải download về và cài đặt. MySQL 5.7.16 làm việc tốt với macOS nên hãy download version 5.7.16 để sử dụng http://dev.mysql.com/downloads/mysql/ Sau khi download về và mở file .dmg và tiến hành cài đặt
Khi kết thúc cài đặt thì có dialog thông báo mysql root password tạm thời và sau đó phải đổi lại password này.
Stop MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
Start với chế độ an toàn
sudo mysqld_safe --skip-grant-tables
Mở một terminal mới
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Thay đổi MyNewPass bằng password mà bạn muốn
Start MySQL
sudo /usr/local/mysql/support-files/mysql.server start
Ngoài ra để thao tác dễ dàng hơn với MySQL mà không sử dụng terminal thì có thể cài phpmyadmin.
Trên đây là bài viết hướng dẫn active AMP stack chạy trên macOS Sierra
All rights reserved