Cacti で “403 Forbidden” になってしまう現象の解決方法

Cacti をインストール後は「http://IP_Addres/cacti」で Cacti にアクセスしましょう!なんですが、下図のようにアクセスできない場合があります。

悲しみのふぉーびででん!!!!!

Forbidden
You don’t have permission to access /cacti/ on this server.

(アクセス権が)ないです。

ローカルホストからアクセスできるか確認

Cacti をインストールしたサーバ自身に GUI 環境がある場合は、そもそもローカルホストからは見られるのかを確認しましょう。

本番環境だと辛いですが、検証環境の場合以下のコマンド実行後に「startx」すればよいです。

[root@localhost ~]# yum groupinstall -y “GNOME Desktop”

で、私の環境で実際見てみたんですが、そもそもローカルホストからもダメ。

ドキュメントルートを確認

CentOS7×Apache のドキュメントルートを確認してみます。そこにそもそも「cacti」なるディレクトリがあるかを見るためです。

「/etc/httpd/conf/httpd.conf」からドキュメントルートを確認します。

[root@localhost ~]# cat /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html”

ドキュメントルートは “/var/www/html” でした。ls で見てみます。

[root@localhost ~]# ls /var/www/html/
[root@localhost ~]#

(cactiが)ないです。cacti ディレクトリは以下の場所にありました。エイリアスが設定されているようです。cacti ディレクトリ配下には php ファイルがありました。

[root@localhost ~]# cat /etc/httpd/conf.d/cacti.conf
Alias /cacti /usr/share/cacti

 

[root@localhost ~]# ls /usr/share/cacti/ | grep index
index.php
[root@localhost ~]#

index.php に対して直接アクセスしてみます。結果は成功。見ることはできました。

ただし、php がソースで表示されていますね…。

エラーログを確認

ここにきてまさかのエラーログチェックをします。

[root@localhost ~]# tail -1 /var/log/httpd/error_log
[Fri Aug 30 17:44:08.083417 2019] [autoindex:error] [pid 6317] [client 127.0.0.1:50198] AH01276: Cannot serve directory /usr/share/cacti/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive
[root@localhost ~]#

上記からわかるエラーは以下の2つです。

  1. index.html が無い
  2. ディレクトリに対するアクセス権が無い

手始めに「/etc/httpd/conf/httpd.conf」に index.php を追加してみます。

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

httpd を reload した後にもう「http://localhost/cacti/」にアクセスしてみると、下図のように “index.php” が表示されました。

これもうわかった。php が動いていない

原因は php が入っていないこと

実は Cacti をインストールしたときは「yum install cacti」でインストールしました。一応 前提パッケージが含まれているかは確認していましたが、php 系が色々入っていたのできちんと見てはいませんでした。

もう一度確認してみると以下のようになっていました。うん、肝心の php がない!!

[root@localhost ~]# yum list installed | grep php
php-cli.x86_64 5.4.16-46.el7 @base
php-common.x86_64 5.4.16-46.el7 @base
php-gd.x86_64 5.4.16-46.el7 @base
php-imap.x86_64 5.4.16-9.el7 @epel
php-intl.x86_64 5.4.16-46.el7 @base
php-ldap.x86_64 5.4.16-46.el7 @base
php-mbstring.x86_64 5.4.16-46.el7 @base
php-mysql.x86_64 5.4.16-46.el7 @base
php-pdo.x86_64 5.4.16-46.el7 @base
php-process.x86_64 5.4.16-46.el7 @base
php-snmp.x86_64 5.4.16-46.el7 @base
php-xml.x86_64 5.4.16-46.el7 @base
[root@localhost ~]#

なんだこれは。たまげたなぁ。大人しく php をインストールします。

[root@localhost ~]# yum install php
================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
================================================================================
インストール中:
php x86_64 5.4.16-46.el7 base 1.4 M

トランザクションの要約
================================================================================
インストール 1 パッケージ

総ダウンロード容量: 1.4 M
インストール容量: 4.4 M
Is this ok [y/d/N]:y

ちなみに、インストール後に DirectoryIndex に index.php が追加される?とか思っていましたが、特にそういうことはないみたいです。

[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

気にせず “http://localhost/cacti/” へアクセスしてみます。

できちゃったよ…。

結論を言うと、アクセス権云々ではなく php が無かっただけでした!以上!

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)