10.10 Apache user Dir

Apple OS
回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

10.10 Apache user Dir

文章 yehlu »

https://tvpsh2020.wordpress.com/2015/02 ... hpmyadmin/

OS X 10.10 Yosemite 安裝Apache,PHP,MySQL,phpMyAdmin
對於一個通勤上班的人來說,11吋的MacBook Air真的是首選,為了工作需求,我必須在OS X上裝好網頁伺服器的功能,但是第一次安裝就把整個Apache給炸了,因為我更新了Yosemite但是參考的網頁是Mavericks…嘖嘖

這次是第二次在Yosemite架設,終於成功了,也比那些XAMPP、MAMP等好用太多,因為別人幫你裝好的東西,權限都不知道設去哪了

Step 1 : Apache

其實很簡單的一句話就可以打開Apache了,快點打開終端機(以下稱之Terminal)

開啟

sudo apachectl start
停止

sudo apachectl stop
重啟

sudo apachectl restart
如果有正確開啟Apache,在瀏覽器輸入 http://localhost 就會出現“It works!”的字樣喔!
一般來說,Apache會指定系統預設的資料夾來作為網站的根目錄:

/Library/WebServer/Documents/
我們可以直接在這個資料夾放我們想要放的網頁,甚至加個替身在桌面以利存取
但是!你會常常被系統問密碼,因為這個資料夾算是在System Level底下的
總不能為了這樣子把密碼取消吧!
所以我們可以改用User Level底下的根目錄

只要簡單的在家目錄底下(就是個人帳號資料夾)新增“Sites”資料夾即可,他就是預設被隱藏的個人根目錄資料夾,建立資料夾後他會自動有一個自己的圖案

Sites

接著要寫一些設定檔,讓系統知道你的指定網頁伺服器路徑,首先在底下這個路徑新增 username.conf 檔案(請自行將username換成自己的,不帶引號)

/etc/apache2/users/
因為會遇到許多權限問題,建議在Terminal底下使用 nano 來進行編輯,直接切換至上述目錄後,輸入

代碼: 選擇全部

sudo nano username.conf
加入下面這段文字,記得一樣將 username 換成自己的

代碼: 選擇全部

<Directory "/Users/username/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
username.conf 的檔案權限應該長得像

-rw-r--r-- 1 root wheel 298 Jun 28 16:47 username.conf
如果不是,就需要調整檔案權限

sudo chmod 644 username.conf
接著我們要開啟一些Apache的功能

代碼: 選擇全部

sudo nano /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
還有這個檔案也要開啟,不能被註解(因為使用user level路徑)

代碼: 選擇全部

Include /private/etc/apache2/extra/httpd-userdir.conf
打開上述被引入的 httpd-userdir.conf 檔案

代碼: 選擇全部

sudo nano /etc/apache2/extra/httpd-userdir.conf
去掉註解:

代碼: 選擇全部

Include /private/etc/apache2/users/*.conf
重啟Apache

sudo apachectl restart
此時伺服器位置應該變成 http://localhost/~username/

/*************************************************************
** 使用Document Root當作伺服器目錄的人,記得要 Override .htaccess 喔!
** Terminal 鍵入
** sudo nano /etc/apache2/httpd.conf
** 文件中間加入

代碼: 選擇全部

AllowOverride All
**
** 並去掉以下 httpd.conf 註解

代碼: 選擇全部

LoadModule rewrite_module libexec/apache2/mod_rewrite.so
*************************************************************/
Step 2 : PHP

PHP 5.5.14 已經預設安裝在OS X Yosemite,只需要做一些設定就可以打開

sudo nano /etc/apache2/httpd.conf
去掉註解

LoadModule php5_module libexec/apache2/libphp5.so
重啟Apache

sudo apachectl restart
Step 3 : MySQL

OS X Yosemite 沒有內建MySQL,要自己去官網抓來裝囉
先選 Mac OS X 10.9 (x86, 64-bit), DMG Archive ,目前還沒有10.10版本,安裝過程中有可能會遇到Installation Failed,但還是可以正常運作,安裝完畢後可以在設定裡找到MySQL來執行,也可以透過Terminal執行

sudo /usr/local/mysql/support-files/mysql.server start
習慣Terminal執行的人,可以自行新增環境變數

cd ; nano .bash_profile
找空白處貼上

export PATH="/usr/local/mysql/bin:$PATH"
重新載入shell

source ~/.bash_profile
然後要設定MySQL的帳號密碼(密碼要用單引號包著喔)

/usr/local/mysql/bin/mysqladmin -u root password 'yourpasswordhere'
然後要做一點調校,避免常常跳出來的 “2002 MySQL Socket error"

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
接著是自動執行MySQL,在OS X設定裡出現的開機自動啟動選項是不能用的,要自己寫進plist

sudo nano /Library/LaunchDaemons/com.mysql.mysql.plist
新增下段文字

<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true />
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
儲存後執行下面指令

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Step 4 : phpMyAdmin

先下載phpMyAdmin最新版本,解壓縮至伺服器跟目錄(自己命名),然後新增一個config資料夾

mkdir ~/Sites/phpmyadmin/config
給他權限

chmod o+w ~/Sites/phpmyadmin/config
然後就開始設定,打開網址,點選New Server

/伺服器位址/phpmyadmin/setup/
輸入MySQL的帳號密碼後,點Save,接著去看config資料夾,把新增的config.inc.php移到phpMyAdmin的跟目錄,就可以刪掉config資料夾了

Extra : 權限設定

如果在執行網頁程式時有遇到權限問題(例如Wordpress),可以透過下列調整使Apache有R/W的能力,但是請確定這是localhost測試用,或是自用伺服器測試站,因為一旦設定後,你的Apache執行權限就是使用者本人了,完全root權限。
首先在Terminal查詢自己的uid及gid

id
可能會長這樣

uid=502(admin) gid=20(staff)
我們需要admin及staff這兩個單字,分別代表user及group
把它們(User及Group)新增在/etc/apache2/httpd.conf底下,有範例在下方
存檔後記得重啟Apache

Extra : Apache 開關App

此步驟可以建立一個切換Apache開關的App在桌面,打開 工具/工序指令編寫程式 之後貼上下方程式碼,在儲存成應用程式

do shell script "/usr/sbin/apachectl stop 2>&1" with administrator privileges
if result = "" then
display dialog "Apache Stopped" with icon 2 buttons ¬
{"OK"} giving up after 1


else
do shell script "/usr/sbin/apachectl start" with administrator privileges
display dialog "Apache Started" with icon 2 buttons ¬
{"OK"} giving up after 1
end if
—–參考文獻—–
[1] Get Apache, MySQL, PHP and phpMyAdmin working on OSX 10.10 Yosemite – http://coolestguidesontheplanet.com/get ... -yosemite/
[2] Installing phpMyAdmin on Mac OSX 10.9 Mavericks & 10.8, 10.7, 10.6 – http://coolestguidesontheplanet.com/ins ... 10-7-lion/
回覆文章

回到「Mac OS X」