Mac OSX Mavericks (10.9)에 FuelPHP를 도입하는 방법과 웹 공유 설정을 터미널에서 만드는 방법과 문서 루트 변경

목표 확인



http://localhost 에 액세스하여 다음 화면이 표시되는 것이 목표.


일반적으로 Mac에서는 웹 공유를 하면, http://localhost/~{username} 에서/Users/{Username}/Sites/public_html 이하의 데이터를 읽을 수 있게 됩니다.

그러나 이번에는 DocumentRoot를 다른 작업 디렉토리로 설정합니다.

Apache 설정



먼저 기본적으로 들어있는 (이상) Apache 버전을 확인합니다.
hoge% http -v
Server version: Apache/2.2.24 (Unix)
Server built:   Aug 24 2013 21:10:43

아무래도 문제 없지만, 머신 기동시에 아파치도 일어나도록 설정합니다.
hoge% sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Password:

Apache의 변경을 반영하기 위해 재시작합니다. 하지만 아마, graceful 쪽이 좋을지도 모르지만, 분명은 모릅니다.
hoge% sudo apachectl configtest
Syntax OK
hoge% sudo apachectl graceful
(△ sudo apachectl restart)

Apache의 설정을 만나십시오.

각 계정의 conf 파일이 없으면 생성합니다.
hoge% sudo vim /etc/apache2/users/{username}.conf
----
<Directory "/Users/{username}/Sites"> #DocumentRootの指定をします。通常だとこちらです。
#<Directory "/Users/{username}/workspace/fuga"> #DocumentRootは変更できます。
    AllowOverride All
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
    AddHandler cgi-script .cgi
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

# ここも設定します
#AllowOverride None
AllowOverride All 
----

가상 호스트 설정



가상 호스트를 설정합니다. 하지 않아도 되지만, 여러 호스트를 사용하고 싶었기 때문에.
덧붙여 httpd.conf를 괴롭힐 때는 백업을 취합시다.
hoge% sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.yymmdd
hoge% sudo vim /etc/apache2/httpd.conf
# Virtual hosts
-#Include /private/etc/apache2/extra/httpd-vhosts.conf
+Include /private/etc/apache2/extra/httpd-vhosts.conf

#.htaccessの有効化
#AllowOverride None
AllowOverride All

그런 다음 가상 호스트의 내용을 설정합니다.
이 때 기본 설정은 주석 처리됩니다.
hoge% sudo vim /etc/apache2/extra/httpd-vhosts.conf
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#<VirtualHost *:80>
#    ServerAdmin [email protected]
#    DocumentRoot "/usr/docs/dummy-host.example.com"
#    ServerName dummy-host.example.com
#    ServerAlias www.dummy-host.example.com
#    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
#    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" comm
#</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName localhost
    #ServerAlias www.dummy-host.example.com
    ErrorLog "/private/var/log/apache2/error.log"
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog "/private/var/log/apache2/access.log" combined

    # DocumentRoot "/Users/{username}/workspace/fuga/public/" #ここでDocumentRootを変更できます
    DocumentRoot "/Users/{username}/Sites" #通常の設定にしたい場合はこちら。 /Users/{username}/Sites/public_html の方が一般的かも。
    <Directory "/">
        AllowOverride All
        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
        AddHandler cgi-script .cgi
        <Limit GET POST OPTIONS PROPFIND>
            Order allow,deny
            Allow from all
        </Limit>
        <LimitExcept GET POST OPTIONS PROPFIND>
            Order deny,allow
            Deny from all
        </LimitExcept>
    </Directory>
</VirtualHost>


변경 사항을 반영합니다.
hoge% sudo apachectl configtest                                              [/etc/apache2/users]
Warning: DocumentRoot [/Users/hoge/Sites/] does not exist
httpd: apr_sockaddr_info_get() failed for hoge-no-macbookAir
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

제 경우에는 Sites 디렉토리가 없었기 때문에 만들었습니다.
적절한 문자열의 index.html 파일을 만들고 Apache를 업데이트합니다.
hoge% mkdir -p ~/Sites
hoge% echo Now Web Sharing! > ~/Sites/index.html  
hoge% sudo apachectl restart    

일단 여기서 http://localhost/~{username} 에 액세스하면 Now Web Sharing! 라고 표시된 페이지가 나올까 생각합니다.


문서 루트 변경



문서 루트를 변경하려면 다음 세 파일을 만지십시오.
$sudo vi /etc/apache2/httpd.conf
---
# 2箇所あります

#DocumentRoot "/Library/WebServer/Documents"
 DocumentRoot "Users/{username}/workspace/fuga"

#<Directory "/Library/WebServer/Documents">
 <Directory "Users/{username}/workspace/fuga">


그런 다음 가상 호스트와 각 사용자의 conf입니다.
hoge% sudo vim /etc/apache2/extra/httpd-vhosts.conf
hoge% sudo vim /etc/apache2/users/{username}.conf

#両ファイルとも以下の Users/{username}/workspace/fuga 部分を指定したいパスに変更します
----
<Directory "/Users/{username}/workspace/fuga">
    Options ・・・・
    Allow ・・・・
     
     
</Directory>
----

그러면 이 위치에 있던 index.html이 http://localhost 에서 볼 수 있게 됩니다.

PHP 설정


hoge% php -v                                                                 [/etc/apache2/users
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

mod_rewire 모듈이 있는지 확인
$httpd -M

httpd.conf에서 php5_module을 읽습니다.
hoge% sudo vim /etc/apache2/httpd.conf 
-#LoadModule php5_module libexec/apache2/libphp5.so
+LoadModule php5_module libexec/apache2/libphp5.so

php.ini.default를 php.ini에 복사하고 편집합니다.
hoge% sudo cp /etc/php.ini.default /etc/php.ini
hoge% sudo chmod 644 /etc/php.ini 
hoge% sudo vim /etc/php.ini
; http://php.net/date.timezone
→date.timezone ="Asia/Tokyo"

php가 활성화되었는지 확인합니다.
$ vim ~workspace/fuga/test.php
---
<?php
phpinfo();
?>
---

http://localhost/test.php 방문.

PHP 버전 정보 등이 표시되면 OK.


FuelPHP 설치


$ curl get.fuelphp.com/oil | sh

FuelPHP로 프로젝트 만들기



자신의 작업 디렉토리에서.
$ cd ~/workspace/fuga/nemu
$ oil create blog
---

FuelPHPの目標の画面を http://localhost/ で出すには、DocumentRootを、oil create した作業用ディレクトリの下のpublicディレクトリに設定します。

これで見れるようになります。

http://localhost/ 
![fuelPHP.png](https://qiita-image-store.s3.amazonaws.com/0/18705/e18aef2b-b1d1-c573-7804-9f35667ba03a.png)


また、 http://localhost/~{username} は、変わらず見れます。

좋은 웹페이지 즐겨찾기