「Homebrew」タグアーカイブ

もう自前のサーバーで管理したくない

自前のサーバーでこのブログを動かしているが、先日OSのアップデートのタイミングでApacheがうまく動かなくなってしまった。起動はしているのだが、サイトが表示されない。結局、OSアップグレードを完了したらうまく表示されるようになったのだが、WordPressのデータを他のサーバーに移行しようとしてえらく苦労した。

なぜ苦労したかというと、マルチサイト仕様にしていたためだ。これはまずいと復帰後、マルチサイトを解除した。もともと1つのブログしか動かしていないのだし、これでいいのだ。動かしているブログの階層が変わるので、URLの置換や画像データの移動など、結構面倒であった。

とはいえ、もうできるだけ自分でサーバーは管理したくないので、レンタルサーバーで処理したいと考えている。つい先日サーバーを更新したばかりだが、数ヶ月かけて移行を考えたい。

暗号化

alm-oreに影響を受けたわけではないと思いたいが、本サイトもやっとhttps化した。やはりLet’s Encryptを利用して無料で暗号化してある。本サイトはMacにhomebrewで環境を構築しているが、https化には構想から結局1ヶ月くらいかかった。Macをもう一台用意してテスト環境でうまく行くことを確認してからの移行なので時間がかかったのだが、そもそもhomebrewでのhttps化については情報が本当に少ない。素直にCentOSなどで構築したほうがよほど楽だろう (といってもそれほど手順が異なるわけでもない)。近々その方法を当ブログに載せておこうと思う。

.htaccessをおいたとたんに500 Internal Server Errorが出る場合

Homebrewを使ってWebサーバーを構築した場合、.htaccessファイルを置いたとたんに500 Internal Server Errorが出ることがある。

/usr/local/etc/httpd/httpd.conf

<Directory "/usr/local/var/www">
    AllowOverride All
</Directory>

とするだけではなく、

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

のコメントアウトを外す必要がある。

HomebrewでApacheをインストールした場合の80番ポートの動作

Homebrewを使って10.13 (High Sierra) にApacheをインストールするとデフォルトでは8080ポートで動作する。これを80番ポートで動かすためには、httpd.confに

Listen 80
ServerName localhost:80

とするだけではなく、Apacheの起動時に

# sudo brew servicses start httpd

としなければならない (sudoにしないといけない)。sudoしないと80番ポートの場合はApacheが動かないので注意。sudoしなくても8080ポートでは動くのでしばらく訳がわからなかった。

Homebrew

現在研究室サーバーとして運用している Mac mini ServerにはもともとMac OS 10.7 Serverがインストールされていた。最近ちょっと欲張ってMavericks (10.9) にアップグレードしてみたら、Server機能がたった2000円で追加できるという。10.7は確か4000円くらいだったが、その前は数万円の高価なOSだったと思う。
10.7時代にはウェブ、メイル、メイリングリスト、共有フォルダの機能を使っていたが、10.9になりメイリングリストの機能は削られたようだ (少なくともMailmanをGUIで設定できる機能はなくなった)。安いので仕方がない。
続きを読む Homebrew

Apacheが自動起動しない時の対処方法 (homebrewの場合)

MacbookにLAMP環境を構築」を参考に、HomebrewでMavericks (10.9.2) にインストールしたApacheを自動起動しようとしたがうまくいかない (正確に言えば、ちょっと前まで動いていたが、なぜかうまく動かなくなった)。手続きは簡単で、

$ sudo cp /usr/local/opt/httpd/*.plist /Library/LaunchDaemons $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd.plist

の2行を実行するだけ。ところがある時から再起動時にsudo apachectl startなどとしないとApacheが起動しなくなってしまった。再起動後に「$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd.plist」とやると、「homebrew.mxcl.httpd: Already loaded」と言われるのでロードはされているのだろう。
となると、ロードされるhomebrew.mxcl.httpd.plistの中身が気になる。ということで、中身を見てみた。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>homebrew.mxcl.httpd</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/opt/httpd/sbin/apachectl</string>
            <string>start</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

こんな感じ。これを以下のように書き換えてみた。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Disabled</key>
        <false/>
        <key>Label</key>
        <string>homebrew.mxcl.httpd</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/opt/httpd/sbin/apachectl</string>
            <string>start</string>
        </array>
        <key>OnDemand</key>
        <false/>
    </dict>
</plist>

変更点はDisabledをfalse、OnDemandをfalseにしたところ。これで再起動時にきちんとApacheが立ち上がるようになった。