カテゴリー : Apache

[Apache][エラー] httpd: apr_sockaddr_info_get() failed for

Apache をインストールして、起動や configtest すると下記のようなエラーが発生しました。

httpd: apr_sockaddr_info_get() failed for server_name
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

■ 解決方法

● /etc/hosts に正しくホスト名を設定する

(例) ホスト名が www.codenote.net のとき

127.0.0.1               www.codenote.net localhost.localdomain

● /etc/sysconfig/network の設定変更

HOSTNAME=www.codenote.net

● service network restart を実行する

/etc/sysconfig/network の設定変更後、network 再起動をやり忘れていた場合。
 

● /etc/httpd/conf/httpd.conf の ServerName の設定変更

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName www.codenote.net:80

以上です。
 

【参考】

Apache で apr_sockaddr_info_get() failed for が発生する – foldrrの日記 はてなブックマーク - Apache で apr_sockaddr_info_get() failed for が発生する - foldrrの日記

Apache の httpd: apr_sockaddr_info_get() failed for エラー はてなブックマーク - Apache の httpd: apr_sockaddr_info_get() failed for エラー

[Apache][エラー] configure: error: no acceptable C compiler found in $PATH

Apache をソースコードからのインストールしようとして、コンパイルしたらエラーが発生しました。

checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/httpd-2.2.22/srclib/apr':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
configure failed for srclib/apr

gcc がないため、エラーとなっていたみたいです。

gcc と gcc-c++ をインストールして解決しました。

# yum -y install gcc gcc-c++

以上です。
 

[Windows] Apache をアンインストール (uninstall) する方法

Windows7 にインストールしている Apache をアンインストールする手順をご紹介します。

Apache HTTP Server

続きを読む

[Apache] SSL環境を構築する方法

Apache + SSL 環境を構築したので手順をメモ。

ほぼ下記の記事を読めばOKです。

[Think IT] 第7回:Apache+SSL環境を構築しよう! (1/3)

以下、手順です。
 

ApacheのSSL設定

まず、SSL用の設定ファイル httpd-ssl.conf を読み込むようにコメントアウトを外します。

# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-ssl.conf

次に、httpd-ssl.conf を編集します。

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

VirtualHost にグローバルIP、DocumentRoot、ServerName、ServerAdmin を適宜、変更します。

また、SSLCertificateFile と SSLCertificateKeyFile の箇所をそれぞれ証明書のパス、秘密鍵のパスに変更します。

<VirtualHost xxx.xxx.xxx.xxx:443>
DocumentRoot "/usr/local/apache2/htdocs"
ServerName example.com:443
ServerAdmin you@example.com
 
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

最後に、変更が完了したら、Apacheを再起動します。

# service httpd configtest
# service httpd restart

以上です。

[Symfony] Apache標準の404 Not Found が表示されるので mod_rewrite を有効にする

Symfony 1.4 にて、prod環境にするとApache標準の404 Not Found が表示されるという症状に陥りました。

Apache の mod_rewrite を有効にすることで解決したので、その手順をメモ。

他にもdev環境からprod環境へ切り替えると動作しない時の対処方法があるみたいなので、困ったら下記の記事を読みましょう。

dev環境からprod環境に変えると動かなくなる時の対処方法 « symfonyで開発日記 はてなブックマーク - dev環境からprod環境に変えると動かなくなる時の対処方法 « symfonyで開発日記

今回の症状は、

http://example.com/index.php/login
http://example.com/frontend_dev.php/login

とかだとアクセスできるけど、

http://example.com/login

だとアクセスできない状態でした。
 

Apache の mod_rewrite が有効か確認する

まず、mod_rewrite が有効になっているか確認するには、apachectl に -l オプションを付けて、コンパイル済みのモジュールリストを確認します。

# /usr/local/apache2/bin/apachectl -l
Compiled in modules:
 
  mod_rewrite.c

mod_rewrite.c があればOK.

なければ、config.nice に –enable-rewrite オプションを付けて再コンパイルして、インストールし直します。
 

mod_rewrite を有効にして再インストールする

# /usr/local/src/httpd-2.2.21/config.nice --enable-rewrite
# make
# make install

ちなみに、make install を実行しても今あるドキュメント、 ログファイル、設定ファイルは上書きされないみたいです。

・参考:コンパイルとインストール – Apache HTTP サーバ はてなブックマーク - コンパイルとインストール - Apache HTTP サーバ

インストール後に、もう一度 apachectl -l で mod_rewrite.c があるか確認します。

以上です。

[Apache] ベーシック(Basic)認証の設定方法

Apacheで ベーシック(Basic)認証を設定するときは下記のサイトを読む。

@IT:Apacheでユーザー認証を行うには(Basic認証編) はてなブックマーク - @IT:Apacheでユーザー認証を行うには(Basic認証編)

ベーシック認証を設定する(AuthType) – アクセス制限 – Apache入門 はてなブックマーク - ベーシック認証を設定する(AuthType) - アクセス制限 - Apache入門

ユーザー認証によるアクセス制限(ベーシック認証編)(2/2) はてなブックマーク - ユーザー認証によるアクセス制限(ベーシック認証編)(2/2)
 

[Apache] VirtualHost(バーチャルホスト)を設定するときに読む記事

Apache の VirtualHost(バーチャルホスト)を設定するときに読む記事をまとめました。

名前ベースの仮想ホスト – 仮想ホストの設定 – Apache入門 はてなブックマーク - 名前ベースの仮想ホスト - 仮想ホストの設定 - Apache入門

apache2.2 バーチャルホストの設定 前編 はてなブックマーク - apache2.2 バーチャルホストの設定 前編

apache2.2 バーチャルホストの設定 後編 はてなブックマーク - apache2.2 バーチャルホストの設定 後編

バーチャルホストの例 – Apache HTTP サーバ はてなブックマーク - バーチャルホストの例 - Apache HTTP サーバ
 

CentOS 5.7 に PHP5.3.8 をソースコードからインストールする手順

CentOS 5.7 に PHP5.3.8 をソースコードからインストールしたので、手順をメモ。
 

PHPのアンインストール

まず、ソースコードからPHPをインストールする前に、CentOSにデフォルトでインストールされているPHPをアンインストールします。

# php -v
PHP 5.1.6 (cli) (built: Nov 29 2010 16:47:46)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
 
# yum remove php-*
# php -v
-bash: /usr/bin/php: そのようなファイルやディレクトリはありません

 

PHPのソースコードをダウンロード・展開する

・DLサイト:PHP: Downloads はてなブックマーク - PHP: Downloads

# cd /usr/local/src
# wget http://jp.php.net/get/php-5.3.8.tar.gz/from/this/mirror
# tar zxvf php-5.3.8.tar.gz
# cd php-5.3.8
./configure \
--enable-mbstring \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--enable-pdo \
--with-pdo-mysql=/usr/local/mysql \
--enable-xml

■ エラー

configure: error: xml2-config not found. Please check your libxml2 installation.

libxml2(本体)と libxml2-devel(開発ツール)をインストールすると解決しました。

yum install -y libxml2
yum install -y libxml2-devel

PHPが正常にインストールされていることを確認します。

# /usr/local/bin/php -v
PHP 5.3.8 (cli) (built: Nov  2 2011 20:24:31)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

 

PHPのPathを通す

# vi ~/.bashrc
 
PATH="$PATH":/usr/local/bin/php
# source ~/.bashrc
# php -v
PHP 5.3.8 (cli) (built: Nov  2 2011 20:24:31)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

ITmedia エンタープライズ : Linux Tips「パスを追加したい~.bashrc編~」 はてなブックマーク - ITmedia エンタープライズ : Linux Tips「パスを追加したい~.bashrc編~」
 

PHPの設定

■ php.ini のコピー

# cp -p /usr/local/src/php-5.3.8/php.ini-development /usr/local/lib/php.ini

※コピー先は /usr/local/lib/php/php.ini ではなく、/usr/local/lib/php.ini なので注意

■ php.ini の編集

# vi /usr/local/lib/php/php.ini
[PHP]
output_handler = mb_output_handler
expose_php = On
default_charset = "UTF-8"
 
[Date]
date.timezone = Asia/Tokyo
 
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

【参考】

PHP: INIファイル の扱いに関する変更 – Manual はてなブックマーク - PHP: INIファイル の扱いに関する変更 - Manual

CentOS/PHP/PHP5/設定 – ひつじ帳 はてなブックマーク - CentOS/PHP/PHP5/設定 - ひつじ帳

CentOS 再構築記録13th php.ini 設定を見直す(´・ω・) ス|WEB系技術電脳日記 はてなブックマーク - CentOS 再構築記録13th php.ini 設定を見直す(´・ω・) ス|WEB系技術電脳日記

PHPの日付関数でWarningエラー – ema725の日記 はてなブックマーク - PHPの日付関数でWarningエラー - ema725の日記

自宅サーバー(Windows+Apache)へのPHPインストール はてなブックマーク - 自宅サーバー(Windows+Apache)へのPHPインストール
 

Apacheとの連携

まず、httpd.conf の の中に下記の内容を追記して、phpを有効にします。

# vi /usr/local/apache2/conf/httpd.conf
<IfModule mime_module>
    # ...
 
    # php conf
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

次に、DirectoryIndex の行に index.php を追記します。

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

httpd.conf の編集後、Apacheを再起動させます。

# service httpd restart

 

PHPの動作確認

Apacheのドキュメントルートにテスト用のPHPファイルを作成して、phpinfo メソッドを呼び出すだけの内容を入力して保存します。

# vi /usr/local/apache2/htdocs/phpinfo.php
<?php phpinfo(); ?>

ブラウザから確認するために、ifconfigコマンドで IPアドレスを確認します。

# ifconfig
eth0      Link encap:Ethernet  HWaddr D2:9B:E2:9A:9D:14
          inet addr:192.168.16.130  Bcast:192.168.128.255  Mask:255.255.255.0
          ...

ブラウザから http://192.168.16.130/phpinfo.php にアクセスして、Apache上でPHPが動作するか確認します。

「PHP Version 5.3.8」という見出しの画面が表示されればOKです。

Apache の httpd.conf を編集して、サーバにアクセス時のルートを var/www に変更します。

# vi /usr/local/apache2/conf/httpd.conf
DocumentRoot "/usr/local/apache2/htdocs"
↓(変更する)
DocumentRoot "/var/www/html"

その他、”/usr/local/apache2/” を “/var/www/” に変更します。

以上です。


参考情報

古い php のアンインストールと php 5.3 のインストール – Debian GNU/Linux 3.1 on PowerMac G4

CentOS に Apache をソースコードからインストール

CentOS 5.7 に Apache2.2.21 をソースコードからインストールしました。

インストール手順をざっとご紹介します。(随時、修正予定)

RPM版のapacheを削除する

CentOSにデフォルトでインストールされているRPM版のapacheを削除します。

# httpd -v
Server version: Apache/2.2.3
# rpm -e --allmatches --nodeps httpd
# httpd -v
-bash: /usr/sbin/httpd: そのようなファイルやディレクトリはありません

Apacheのソースコードをダウンロード・展開

Apacheのソースコードをダウンロードして、展開します。

ソースコードは下記のサイトから Stable 版の Unix Source を wget で取得します。

・DL:Download – The Apache HTTP Server Project はてなブックマーク - Download - The Apache HTTP Server Project

$ su -
# cd /usr/local/src/
# wget http://www.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.2.21.tar.gz
# tar zxvf httpd-2.2.21.tar.gz
# cd httpd-2.2.21

Apache をソースコードからインストール

オプションをいくつか付けてconfigureします。

# cd httpd-2.2.21
# ./configure --prefix=/usr/local/apache2/ \
		--enable-so \
		--enable-rewrite \
		--enable-ssl=/usr/local/openssl

→ opensslが入らないとエラーが出るので、とりあえず、 

# ./configure --prefix=/usr/local/apache2/ \
		--enable-so \
		--enable-rewrite

そして、makeしてインストール

# make
# make install

Apacheがちゃんとインストールされたか確認します。

# /usr/local/apache2/bin/httpd -v
Server version: Apache/2.2.21 (Unix)
Server built:   Nov  2 2011 19:14:14

apacheユーザー作成

# groupadd apache
# useradd -g apache -d /var/empty/ -s /sbin/nologin apache
# vi /usr/local/apache2/conf/httpd.conf
User apache
Group apache

 

apacheの起動スクリプトの設定

# cp /usr/local/src/httpd-2.2.21/build/rpm/httpd.init /etc/rc.d/init.d/httpd
# chmod 755 /etc/rc.d/init.d/httpd

apache の設定ファイルの該当部分を編集します。

# vi /etc/rc.d/init.d/httpd
 
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}
# check for 1.3 configuration
check13 () {
        CONFFILE=/usr/local/apache2/conf/httpd.conf

Apacheの起動を確認します。
 

# service httpd start 
Starting httpd :  [OK]

正常起動を確認しました。

ifconfigコマンドでIPアドレスを確認する。(IPアドレスは環境によって異なります)
 

# ifconfig
inet addr:192.168.16.130

 

ローカルPCのブラウザから、http://192.168.16.130/ にアクセスしてApacheが正常に動いているか確認します。

無事にブラウザが表示されたら完了です。
 

Apacheの自動起動設定

Apacheの自動起動を有効にします。

自動起動を有効にすると、CentOSの起動時にApacheも自動で起動します。

# chkconfig --add httpd
# chkconfig httpd on
# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

ファイアーウォールの設定確認

httpd が listen する 80 番ポート(デフォルトの場合)を開放する。

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

ファイアーウォールを再起動させます。

# service iptables restart
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
# service iptables start

 

OpenSSLをソースコードからインストール

# cd /usr/local/src
# wget -c http://www.openssl.org/source/openssl-1.0.0d.tar.gz
# tar zxvf openssl-1.0.0d.tar.gz
# cd openssl-1.0.0d.tar.gz
# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl -fPIC
# make
# make install

 

【参考】

apache2.2 初期設定 はてなブックマーク - apache2.2 初期設定

VMware PlayerにCentOS導入。練習用Webサーバーを構築4 はてなブックマーク - VMware PlayerにCentOS導入。練習用Webサーバーを構築4

apache2.2.15をCentOSにソースからインストール[Linux] | QUALL – blog はてなブックマーク - apache2.2.15をCentOSにソースからインストール[Linux] | QUALL - blog

Apacheサーバー構築(ソースコンパイル) | 自宅サーバー構築 はてなブックマーク - Apacheサーバー構築(ソースコンパイル) | 自宅サーバー構築

Apache2 をソースからインストール はてなブックマーク - Apache2 をソースからインストール