とある学生の適当記録

どこにでもいそうなとある学生の気になったことまとめ。つらつらと個人的なことを書いていきます

YosemiteでApacheを使う

Mac OS X Yosemitelocalhostを使っていろいろやる場合の備忘録

おしながき

Apacheのバージョン確認
Apacheの起動方法
任意のディレクトリにファイルを置く場合
cgiファイルを動かす
エラーの確認方法
追記OS X Mavericksでの起動方法

Apacheのバージョン確認

ターミナルで

httpd -v

このようになると思います

f:id:Nyakamyu:20150714100634p:plain

Apacheの起動方法

ターミナルを開いて


> sudo apachectl start


アクセスはhttp://localhost/
ファイルの場所はシステムディレクトリ
/Library/WebServer/Documents/
の中になりますがファイルを移したりするとパスワードなどを毎回聞かれるので何かと不便(そのままでいい人は構いませんが)


任意のディレクトリにファイルを置く場合

以下はシステムディレクトリじゃなくてユーザディレクトリにファイル置きたいよって人向け

ユーザディレクトリを有効化

ターミナルで


> sudo emacs /etc/apache2/httpd.conf

(vimの人はemacsの部分をviで)
このファイルの中身を編集.編集する箇所は


#LoadModule userdir_module libexec/apache2/mod_userdir.so

#Include /private/etc/apache2/extra/httpd-userdir.conf

#AddHandler cgi-script .cgi

この3行がコメントアウトされているのでアンコメント(#を消す)

ファイルを置く場所を作る

ホームディレクトリにSitesのフォルダを作成してIndex.htmlを作成

次にユーザ専用のファイルを作成


> sudo emacs /etc/apache2/users/ユーザ名.conf

※ユーザ名はシステム環境->ユーザとグループにて確認
このファイルに以下をコピペ(<>が全角になっているので半角に直してください)

< Directory "/Users/ユーザ名/Sites/">
AllowOverride All
Options Indexes MultiViews
Options +FollowSymLinks
Require all granted
AddHandler cgi-script .cgi
< /Directory>
ユーザファイルの読み込み設定

> sudo emacs /etc/apache2/extra/httpd-userdir.conf

の中の


Include /private/etc/apache2/users/*.conf

をアンコメント(#を消す)

これにて設定は終了


> sudo apachectl restart

をしてhttp://localhost/~ユーザ名/に移動してIndex.htmlの中身が表示されていたらOK

apacheの終了は


> sudo apachectl stop

cgiファイルを動かす

cgiファイルを動かしたい場合は次の3つの方法を追加で行います


一番最初にいじった/etc/apache2/httpd.confにおいてアンコメントした

AddHandler cgi-script .cgi

の後にcgiプログラムを動かしたい言語を追記.例えばRubyPerlで動かしたい場合は

AddHandler cgi-script .cgi .rb .pl

のようにします


/private/etc/apache2/httpd.confにおいてファイル編集

#LoadModule cgi_module libexec/apache2/mod_cgi.so

をアンコメント


最後に/Users/~ユーザー名/Sites/以下に.htaccessというファイル名を作成.ファイルの中身は

Options +ExecCGI

これを行ったらApacheを再起動するとcgiファイルが動くと思います.

※アクセス権限を与えるのを忘れずに
ディレクトリのパーミッション(アクセス権限)を与える

sudo chmod 755 ~/Sites

ファイルを追加したらディレクトリに移動して

sudo chmod 755 ○○○.cgi


エラーの確認方法

なにかエラーが起きてcgiファイルなどが実行できない場合は

tail -f /private/var/log/apache2/error_log

で確認しましょう(エラー内容は各自で処理してください)

OS X Mavericksでの起動方法

Mavericksでは/etc/apache2/users/ユーザ名.confのファイル内部を

< Directory "/Users/ユーザ名/Sites/">
AllowOverride All
Options Indexes FollowSymLinks MultiViews +ExecCGI
AddHandler cgi-script .cgi
Order allow, deny
Allow from all
< /Directory>

にします.あとは基本同じ