仮想化生活への軌跡

Feed Rss


WebサーバーをUbuntu Server 14.04 LTSに移行しました

03.19.2015, Apache, Ubuntu Server, Webアプリ, by .

WebサーバーのOSをUbuntu Server 12.04 LTSから昨年リリースの14.04 LTSにようやく移行することができました。
メジャーアップデートということもあり、各種デーモンの設定周りにいろいろと違いが見られたので、個人的に気になった点をメモしておきます。




1. sudoコマンド時のエラー

VMware ESXiの仮想マシンにインストールを完了し、ログインユーザーでルート権限を取得しようとsudo su -コマンドを入力したところでいきなり遭遇したのがこの問題です。

具体的には、sudoコマンドを実行すると下記のエラーが出現します。
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory


ルート権限の取得自体は問題なくできるのですが、メモリリークの表示はサーバーOSである以上看過できません。

こちらのサイトによると、原因は”libpam-smbpass”というSambaのユーザーアカウントとUbuntuのユーザーアカウントを結びつけるソフトのバグだそうです(したがって、このエラーはSambaをインストールしなければ出現しないかもしれません)。

解決法は簡単で、この”libpam-smbpass”を削除するだけです。
sudo apt-get purge libpam-smbpass


CUIでSambaのコンフィグファイル(/etc/samba/smb.conf)の設定を手動で行う限り、削除しても特に支障はないでしょう。


2. ネットワークの再起動コマンドの不具合

より深刻な問題(?)はこちらの不具合です。

ネットワーク周りの設定を完了し、これを反映させるためにネットワークの再起動を行おうと次のコマンドを入力してもレスポンスメッセージの表示が一切なく、設定内容も反映されません。
sudo /etc/init.d/networking restart


Ubuntuのフォーラムのやり取りによれば、networkingスクリプトに「予期せぬ変更」があり(早い話がバグだと思うのですが)、次のコマンド入力が14.04でネットワークを再起動する「唯一の方法」になったそうです。
sudo ifdown eth0 && ifup eth0


厳密には再起動とは異なるように思われるのですが、ともかくこれで設定の反映は完了します。


3. Apache2のサイト定義ファイルの変更

Ubuntu Server 14.04 LTSでは、パッケージインストールされるApache2のバージョンが”Apache/2.4.7 (Ubuntu)”へとアップしています。
これにより、Apache2の設定周りにもいろいろと変更点が生じています。

細かな所をあげるときりがないのですが、一番目につくのがサイト定義ファイル名の変化です。
従来は/etc/apache2/sites-availableに”default”と”default-ssl”というファイルがあったはずですが、14.04ではこれらが”000-default.conf”、”default-ssl.conf”となっています。

ファイル名以外の変更点としては、以下の点に注意が必要です。

①拡張子”.conf”が必要
従来は不要でしたが、今回からはサイト定義ファイルに”.conf”の拡張子をつけなければなりません。
他方、サイトの有効化・無効化を行う際には拡張子の指定は不要です。
a2ensite 000-default (有効化)
a2dissite 000-default (無効化)


②設定内容の変更
viで設定ファイルを開くと、従来に比べ内容が随分シンプルになっていることが分かります。
とはいえ、基本的には従来の設定ファイルがほとんどそのまま流用可能です(拡張子の付加は必要)。

ただし、重要な変更点があります。
それはアクセス許可設定周りの記述方法です。
従来は”Order”で指定していましたが、14.04ではこの記述は使えません。

14.04でアクセス制御を行うには”Order”の代わりに”Require”を使用します。
具体的には次のように記述します。
        <Directory /var/www/ドキュメントルート>
                Options Includes ExecCGI FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>


また、/cgi-bin配下でcgiを使用する場合は以下のとおりに記述します。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Require all granted
        </Directory>


“Require”の設定方法の詳細はApacheのオンラインドキュメントで確認することができます。

なお、cgiモジュールを有効化する場合は以下のコマンドを入力します。
sudo a2enmod cgi


4. リバースプロキシ配下でのリモートIPの取得

リバースプロキシ配下にあるWebサーバーでリモートIPのアクセスログを取得するためには”mod_rpaf”を使用します。
14.04でのインストール方法は別記事で紹介しているので、そちらを参照してください。

なお、WordPressを稼働する場合は、さらにwp-config.phpに以下の内容を追記します。
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];


Advertisement


RelatingPosts

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*