Use Apache OSX 10.11
OSX 10.11 仍然內建 Apache
1 2 3 4 5
| $ sudo apachectl start $ sudo apachectl stop $ sudo apachectl restart $ apachectl configtest $ httpd -v
|
設定 document root
OSX預設有兩個網頁根目錄
- System Level - 所有使用者使用同一個全域根目錄
/Library/WebServer/Documents/
- User Level - 每個使用者有自己的根目錄
~/Sites
從 10.7 之後 Apple 不再提供介面來管理必須要透過指令介面設定, 而使用 User Level 可以避開很多權限的問題所以一般建議使用 User Level
User Level 設定
1 2 3 4 5 6
| $ mkdir ~/Sites
$ cd /etc/apache2/users $ sudo vi [username].conf $ ls -ahl
|
[username].conf
使用者網站設定
1 2 3 4 5
| <Directory "/Users/username/Sites/"> AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted </Directory>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ sudo vi /etc/apache2/httpd.conf # 解開註解 # 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
# 處理另外一個設定檔 $ sudo vi /etc/apache2/extra/httpd-userdir.conf # 解開註解 # Include /private/etc/apache2/users
|
設定檔的 Include 關聯 /etc/apache2/httpd.conf
解開 Include /private/etc/apache2/extra/httpd-userdir.conf
之後便能夠使用 /etc/apache2/extra/httpd-userdir.conf
針對使用者目錄來設定
而 httpd-userdir.conf
解開 Include /private/etc/apache2/users/*.conf
之後所有在 /etc/apache2/users
的 .conf
設定就會被套用
System Level 設定
設定允許 .htaccess
來複寫預設值
1 2 3 4 5 6 7
| $ sudo vi /etc/apache2/httpd.conf
$ sudo apachectl restart
|
安裝 MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| $ brew install mysql # 需要開機啟用的話 $ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
# homebrew suggested, notice before setting need to stop mysqld $ unset TMPDIR $ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
# 加入設定檔 $ cp -v $(brew --prefix mysql)/support-files/my-default.cnf $(brew --prefix)/etc/my.cnf
# 預設 MySQL 沒有密碼執行下列指令 $ $(brew --prefix mysql)/bin/mysql_secure_installation
# 移除重新安裝 $ brew remove mysql $ brew cleanup $ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist $ rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist $ sudo rm -rf /usr/local/var/mysql
# 透過 brew services 操作 # https://github.com/Homebrew/homebrew-services $ brew tap homebrew/services
$ brew services start mysql $ brew services stop mysql $ brew services restart mysql $ brew services list
# 登入 MySQL $ mysql --host=localhost --user=root -p
# 建立使用者 mysql> CREATE USER '[username]'@'localhost' IDENTIFIED BY '[password]'; mysql> SELECT User,Host FROM mysql.user; mysql> GRANT ALL PRIVILEGES ON * . * TO '[username]'@'localhost'; mysql> FLUSH PRIVILEGES;
# 設定使用者密碼 mysql> SET PASSWORD FOR '[username]'@'localhost' = PASSWORD('[password_here]');
|
詳細建立角色權限
phpMyAdmin 安裝
下載 phpMyAdmin 解壓縮並移至 document root 目錄
1 2 3 4 5
| $ cd phpmyadmin $ mkdir config $ chmod o+w config # Visit http://localhost/~[username]/phpmyadmin/setup # After save file move config.inc.php to phpmyadmin folder
|
問題
- apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
解法
1 2 3 4
| $ sudo vi /etc/apache2/httpd.conf
$ apachectl configtest
|
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
1 2 3 4 5 6 7
| $ ps -ef | grep mysql $ kill -9 [id]
$ touch /tmp/mysql.sock $ brew services start mysql
|
- Warning: mysqli::mysqli(): (HY000/2002): No such file or directory
1 2 3 4
| $ cd /var $ sudo mkdir mysql $ ln -s /tmp/mysql.sock mysql/mysql.sock $ brew services restart mysql
|
解法
參考資源