自前のサーバーでこのブログを動かしているが、先日OSのアップデートのタイミングでApacheがうまく動かなくなってしまった。起動はしているのだが、サイトが表示されない。結局、OSアップグレードを完了したらうまく表示されるようになったのだが、WordPressのデータを他のサーバーに移行しようとしてえらく苦労した。
なぜ苦労したかというと、マルチサイト仕様にしていたためだ。これはまずいと復帰後、マルチサイトを解除した。もともと1つのブログしか動かしていないのだし、これでいいのだ。動かしているブログの階層が変わるので、URLの置換や画像データの移動など、結構面倒であった。
とはいえ、もうできるだけ自分でサーバーは管理したくないので、レンタルサーバーで処理したいと考えている。つい先日サーバーを更新したばかりだが、数ヶ月かけて移行を考えたい。
結構苦労をしたので、メモがわりにやり方をここに載せておく (23/4/2018一部更新)。Apacheは、たんにbrew install httpdでインストールしたもの (Apache/2.4.33)。
続きを読む Homebrew上で構築したWebサイトのSSL化 (Let’s Encrypt) →
alm-oreに影響を受けたわけではないと思いたいが、本サイトもやっとhttps化した。やはりLet’s Encryptを利用して無料で暗号化してある。本サイトはMacにhomebrewで環境を構築しているが、https化には構想から結局1ヶ月くらいかかった。Macをもう一台用意してテスト環境でうまく行くことを確認してからの移行なので時間がかかったのだが、そもそもhomebrewでのhttps化については情報が本当に少ない。素直にCentOSなどで構築したほうがよほど楽だろう (といってもそれほど手順が異なるわけでもない)。近々その方法を当ブログに載せておこうと思う。
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を使って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ポートでは動くのでしばらく訳がわからなかった。
現在研究室サーバーとして運用している Mac mini ServerにはもともとMac OS 10.7 Serverがインストールされていた。最近ちょっと欲張ってMavericks (10.9) にアップグレードしてみたら、Server機能がたった2000円で追加できるという。10.7は確か4000円くらいだったが、その前は数万円の高価なOSだったと思う。
10.7時代にはウェブ、メイル、メイリングリスト、共有フォルダの機能を使っていたが、10.9になりメイリングリストの機能は削られたようだ (少なくともMailmanをGUIで設定できる機能はなくなった)。安いので仕方がない。
続きを読む 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が立ち上がるようになった。
広島修道大学での担当科目や社会心理学・人間行動進化学関係の記事を掲載するウェブログ