カテゴリー : Apache

[Apache][Windows7] No listening sockets available エラーで起動できないときの解決方法

Windows7 に Apache をインストールして、起動してみると”No listening sockets available”というエラーで起動できないときの解決方法をご紹介します。

イベントビューアーでシステムイベントログを確認してみると下記のようなメッセージが出ていました。

The Apache service named reported the following error:
>>> (OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to address 0.0.0.0:80

Apacheが、” No listening sockets available”というエラーをはいて起動しない場合。 Apacheが使う80番ポートをほかのサービスが使用していることが原因でした。

Windows上での解消手順は続きの通りです。

使用ポートの調べ方

コマンドプロンプトで

netstat -oan

として、80番ポートを使用しているサービスの、プロセスIDを調べる
同じくコマンドプロンプトで

tasklist /svc

として、サービスとプロセスIDとの対応を調べる
対応するサービスを終了、または設定変更して80番ポート以外を使うようにする

とりあえずこれでOKです。

次に、Skypeの使用ポート変更します。

今回80番ポートを使っていたのはSkypeでした。

Skypeが使えないのも困るので、Skypeが使用するポートを変更します。

メニューの「ツール」→「詳細」→「接続」
上から2番目の「上記のポートに代わり、ポート80を使用」のチェックを外す
Skypeを再起動する

C:Usersyour_username>netstat -oan
 
アクティブな接続
 
  プロトコル  ローカル アドレス          外部アドレス        状態           PID
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3956
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       804
  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       3956
・
・
・
C:Usersyour_username>tasklist /svc
 
イメージ名                     PID サービス
========================= ======== ============================================
System Idle Process              0 N/A
System                           4 N/A
・
・
・
Skype.exe                     3956 N/A

参考情報

Apacheが起動しない場合 – Hextomino

[Apache] Forbidden You don’t have permission to access xxx on this server の解決方法

Apache で下記のようなアクセス権限が無いというエラーが出たときの対処方法をメモ。

エラーメッセージ

1
2
Forbidden
You don't have permission to access xxx on this server

ディレクトリのパーミッション設定を確認する

chmod o+x /home/myapp.com

httpd.conf の設定を確認する

httpd.conf に書いている Order deny,allow や、Allow from all とかの設定を間違って書くとアクセスできなくなる。

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

参考情報

ホーム・ディレクトリ以下のpublic_htmlディレクトリをWebで公開してのに,アクセスできない:ITpro

apache – Forbidden You don't have permission to access / on this server – Stack Overflow

[Apache] SSL (HTTPS) で起動しない時の対処方法

Apache を apachectl restart で再起動したら、http は繋がるけど、https は繋がらない問題が発生しました。

原因は、Apache のバージョンが 2.0.x 系で、apachectl startssl か -DSSL オプションを付けて起動するかしないと、SSLサポートが有効にならないみたいでした。

apachectl -v
Server version: Apache/2.0.59

apachectl のオプションであった startssl は無くなりました。 SSL サポートを有効にするには httpd.conf を 編集して関連する mod_ssl ディレクティブを 入れるようにし、それから apachectl start で サーバをスタートしてください。 mod_ssl を有効にする設定ファイルの例が conf/extra/httpd-ssl.conf にあります。

[引用元]:2.0 から 2.2 へのアップグレード – Apache HTTP サーバ

知らないと再起動した後に、https 繋がらなくてサービス停止状態になっちゃうので、下記の記事を参考に apachectl を編集するといいかも。

apachectl 3分ハッキング – C#とか。 – Grim Saga Project 別館:れびんの勉強部屋

あとは、そもそも古いバージョンの Apache を使ってないで、さっさとバージョン上げれば良いのですがね。


参考情報

シリコンバレー 24時: Apacheを 2.0 から 2.2 へアップデートすると SSLが無効になるトラブル

[仕事] Apache2.0.x→2.2.xのSSL対応について|TEAM RISE x すかの日記

[Apache] Invalid command ‘SSLCertificateFile’, perhaps misspelled or defined by a module not included in the server configuration

Apache に SSL の設定をして httpd configtest を実行したら、エラーがでました。

エラー内容

Invalid command 'SSLCertificateFile', perhaps misspelled or defined by a module not included in the server configuration

Apache が mod_ssl に対応してなかったので、mod_ssl を追加することでエラーが消えました。

mod_ssl の追加方法は、ソースからコンパイルしてインストールしている場合と、yum などでインストールしている場合とで違ってきます。

ソースからインストールしている場合

・参考:apxsでapacheにモジュールを追加する

yum でインストールしている場合

mod_sslインストール

# yum -y install mod_ssl

opensslインストール

# yum -y install openssl

以上です。


参考情報

apache+mod_sslでSSL — server-memo.net

かぴぶろぐ

[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 [email protected]
 
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

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

# service httpd configtest
# service httpd restart

以上です。