今回は最初のつまづきポイントとなったapacheの設定について書いていきます。
課題は弊社のコーポレートサイトのデータを自分のサーバにアップロードし、そのページにアクセスできるようにせよとのものでした。
まず初めにテストで自分が作った簡単なhtmlファイルを挙げて、表示されることを確認しました。
次にサイトのデータを圧縮ファイルでもらって、サーバで解凍し、ドキュメントルートで設定したディレクトリに移動しました。
これでアクセスできる!と思いきや、できませんでした。
CSSが読み込めていないのか、なんとも崩れきった状態で表示されてしまいました。また別のページに移動しようとするとpermission deniedとエラーが表示されてしまいます。
3日ほど、ドキュメントルートやらパーミッションやらなんやらかんやら設定を変更し続けました。
結局、先輩方にアドバイスやヒントや答え(先輩の設定ファイル)をもらった結果、問題となっている部分がわかり、進む先が見えてきました。
httpd.confファイルに
AddType application/x-httpd-php .html .php
この一文を追加することでhtmlファイル内のphpによる記述を実行できるようになりました。これによりトップページは正常に表示されるようになりました。
しかし、リンク先の別のページでは依然CSSファイルや画像ファイルが読み込めておらず、がたがたな姿のままでした。
この問題は.htaccessファイルに
php_value include_path "./"
という記述を追加することで解消されました。これはサイトのソースコード内でリンクが相対パスで記述されていることが問題でした。
つまりリンクの記述は現在いる場所からの相対パスで書かれているのに、apache側ではドキュメントルートから読み込もうとしていたため、ファイルの場所を見つけることができていなかったのでした。
これによって全ての問題が解決、と思ったのですがそれでもまだ表示されませんでした。
なんでだー、と思いながら嘆きのF5連打を行ったところ突然、すべてのページが綺麗に表示されるようになりました。
どうやら問題を解決した後もそれまでのキャッシュが残っていたためうまく反映されていなかったようです。
頻繁に変更を加える際はGoogleChromeのシークレットモードなどを使うと、キャッシュが保存されないため変更が瞬時に反映されるよと教えていただけました。最後まで学ぶことがいっぱい詰まった課題でした。
次回はAndroidアプリの作成に入ります!