Cacti をインストール後は「http://IP_Addres/cacti」で Cacti にアクセスしましょう!なんですが、下図のようにアクセスできない場合があります。
Forbidden
You don’t have permission to access /cacti/ on this server.
(アクセス権が)ないです。
ローカルホストからアクセスできるか確認
Cacti をインストールしたサーバ自身に GUI 環境がある場合は、そもそもローカルホストからは見られるのかを確認しましょう。
本番環境だと辛いですが、検証環境の場合以下のコマンド実行後に「startx」すればよいです。
で、私の環境で実際見てみたんですが、そもそもローカルホストからもダメ。
ドキュメントルートを確認
CentOS7×Apache のドキュメントルートを確認してみます。そこにそもそも「cacti」なるディレクトリがあるかを見るためです。
「/etc/httpd/conf/httpd.conf」からドキュメントルートを確認します。
DocumentRoot “/var/www/html”
ドキュメントルートは “/var/www/html” でした。ls で見てみます。
[root@localhost ~]#
(cactiが)ないです。cacti ディレクトリは以下の場所にありました。エイリアスが設定されているようです。cacti ディレクトリ配下には php ファイルがありました。
Alias /cacti /usr/share/cacti
[root@localhost ~]# ls /usr/share/cacti/ | grep index
index.php
[root@localhost ~]#
index.php に対して直接アクセスしてみます。結果は成功。見ることはできました。
ただし、php がソースで表示されていますね…。
エラーログを確認
ここにきてまさかのエラーログチェックをします。
[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つです。
- index.html が無い
- ディレクトリに対するアクセス権が無い
手始めに「/etc/httpd/conf/httpd.conf」に index.php を追加してみます。
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
httpd を reload した後にもう「http://localhost/cacti/」にアクセスしてみると、下図のように “index.php” が表示されました。
これもうわかった。php が動いていない。
原因は php が入っていないこと
実は Cacti をインストールしたときは「yum install cacti」でインストールしました。一応 前提パッケージが含まれているかは確認していましたが、php 系が色々入っていたのできちんと見てはいませんでした。
もう一度確認してみると以下のようになっていました。うん、肝心の 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 をインストールします。
================================================================================
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 ~]# vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
気にせず “http://localhost/cacti/” へアクセスしてみます。
できちゃったよ…。
結論を言うと、アクセス権云々ではなく php が無かっただけでした!以上!