今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

apache2が起動しなくて時間を浪費した

Mac Yosemite には最初から apache2 がインストールされてるので、起動すれば動く(はずである)。

$ sudo apachctl start

apache を起動して http://localhost/ にアクセスしても、エラーで接続できない。

http://localhost/
Page load failed with error: ネットワーク接続が切れました。

apache の設定が悪いのかと思って確認するけど、悪いところはなさそうだし。

sudo vi /etc/apache2/httpd.conf

再起動してもダメだし。

$ sudo apachectl restart

特にエラーも出ない。

ログを確認してみると、そもそもログに何も出力されてない!
ファイル更新時刻がはるか昔。
以前は動いてたことがわかるが、たぶんYosemiteにしてから Mac の apache2 は使ってないと思われ。

$ ls -l /private/var/log/apache2/

起動してみる。

sudo apachectl start
Password:
/System/Library/LaunchDaemons/org.apache.httpd.plist: Operation already in progress

動いとる?

$ ps ax | grep httpd
 2675 s002  U+     0:00.00 grep httpd

プロセスがいませんが。。。(;^ω^)

apache2 を再インストールしてみる。

$ brew tap homebrew/apache2
==> Tapping homebrew/apache
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-apache'...
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 14 (delta 7), reused 6 (delta 5), pack-reused 0
Unpacking objects: 100% (14/14), done.
Checking connectivity... done.
Tapped 11 formulae (47 files, 200K)

brew search で確認。

$ brew search httpd
darkhttpd			 homebrew/apache/httpd24	  lighttpd
homebrew/apache/httpd22		 libmicrohttpd			  mighttpd2
homebrew/head-only/httpdiff

インストールスタート!

$ brew install httpd24
==> Installing httpd24 from homebrew/homebrew-apache
==> Tapping homebrew/dupes
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-dupes'...

(略)

pcre/8.37/bin/pcregrep: Failed to create dir 'pcre/8.37'Can't create 'pcre/8.37/bin/pcregrep'
pcre/8.37/bin/pcretest: Failed to create dir 'pcre/8.37'Can't create 'pcre/8.37/bin/pcretest'
tar: Error exit delayed from previous errors.
Error: Failure while executing: tar xf /Library/Caches/Homebrew/pcre-8.37.yosemite.bottle.tar.gz
Warning: Bottle installation failed: building from source.
==> Downloading https://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2
######################################################################## 100.0%
Error: Permission denied - /usr/local/Cellar/pcre/8.37

怒られたのでぐぐってみたら、chown しろと書いてあった。

$ sudo chown -R `whoami` /usr/local

もっかいやってみる。

$ brew install httpd24
==> Installing httpd24 from homebrew/homebrew-apache
==> Installing dependencies for homebrew/apache/httpd24: pcre, homebrew/dupes/zlib
==> Installing homebrew/apache/httpd24 dependency: pcre
==> Downloading https://homebrew.bintray.com/bottles/pcre-8.37.yosemite.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/pcre-8.37.yosemite.bottle.tar.gz
==> Pouring pcre-8.37.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/pcre/8.37: 146 files, 5.9M
==> Installing homebrew/apache/httpd24 dependency: homebrew/dupes/zlib
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/dupes/zlib-1.2.8.yosemite.bott
######################################################################## 100.0%
==> Pouring zlib-1.2.8.yosemite.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/zlib/lib
    CPPFLAGS: -I/usr/local/opt/zlib/include

==> Summary
🍺  /usr/local/Cellar/zlib/1.2.8: 9 files, 392K
==> Installing homebrew/apache/httpd24
==> Downloading https://archive.apache.org/dist/httpd/httpd-2.4.12.tar.bz2
######################################################################## 100.0%
==> ./configure --enable-layout=Homebrew --enable-mods-shared=all --enable-unique-id --enable-ssl -
==> make
==> make install

==> Caveats

To have launchd start homebrew/apache/httpd24 at login:
    ln -sfv /usr/local/opt/httpd24/*.plist ~/Library/LaunchAgents
Then to load homebrew/apache/httpd24 now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.httpd24.plist
==> Summary
🍺  /usr/local/Cellar/httpd24/2.4.12: 211 files, 4.5M, built in 6.6 minutes

インストール成功したらしい。

スタートしてみる。

$ sudo apachectl start
Password:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using MacbookPro.local. Set the 'ServerName' directive globally to suppress this message

怒られた。

ぐぐったらエライ人が教えてくれた。

Apacheのエラー:Could not reliably determine the server’s fully qualified domain name… – DACELO SPACE

けど、解決できんw
/etc/hosts から余計なのを削除したのに、この警告が消えないの。
なんでやねん!

httpd.conf に ServerName を設定しても消えんし。

ServerName 192.168.0.10

とりあえず動いたから放置する。