質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

693閲覧

PHP namespaceで500エラーが発生してしまう?

entaro12345

総合スコア75

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

1グッド

0クリップ

投稿2021/09/06 09:46

編集2021/09/06 23:30

前提・実現したいこと

WindowsサーバーにてXAMPP環境を構築してPHPのWebシステム画面を実装しております。
なぜか特定の画面のみnamespaceで500エラーが発生してしまい困っております。
おそらく単純なミスのような気がしておりますが、なかなか原因特定にたどり着けないのでお力添えをいただきたく存じます。

●ソースの構成
test
-- AutoLoad - AutoLoad.php
-- User - Status - test.php

発生している問題・エラーメッセージ

HTTP ERROR 500

該当のソースコード

PHP

1[test.php] 2<?php 3ini_set('error_reporting', E_ALL | E_STRICT); ←追記 4ini_set('display_errors', 1); ←追記 5namespace User\Status; 6 7require_once $_SERVER['DOCUMENT_ROOT'] . '\test\AutoLoad\AutoLoad.php'; 8 9$autoload = new AutoLoad(); 10$autoload->registerDir($_SERVER['DOCUMENT_ROOT'] . '/test'); 11$autoload->register(); 12 13session_name('test'); 14session_start(); 15 16// セッション確認 17if ($_SESSION['id']) { 18 $centerId = $_SESSION['id']; 19} else { 20 header('Location: ./login.php'); 21 exit; 22} 23?> 24

PHP

1[AutoLoad.php] 2<?php 3 4namespace test\AutoLoad; 5 6class AutoLoad 7{ 8 9 protected $dirs; 10 11 public function register() 12 { 13 spl_autoload_register(array( 14 $this, 15 'loadClass' 16 )); 17 } 18 19 public function registerDir($dir) 20 { 21 $this->dirs[] = $dir; 22 } 23 24 public function loadClass($class) 25 { 26 foreach ($this->dirs as $dir) { 27 $file = $dir . '/' . $class . '.php'; 28 if (is_readable($file)) { 29 require $file; 30 return; 31 } 32 } 33 } 34} 35?> 36

試したこと

他の場所(AutoLoad等)で発生しているのかなと思い、コメントアウトして1行ずつ確認しましたが、
namespaceが有効の時のみ500エラーが発生してしまいます。

補足情報(FW/ツールのバージョンなど)

PHP 5.6.8
Apache 2.4.12
MySQL Ver14.14 Distrib 5.6.24

X_ayami_X👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

entaro12345

2021/09/06 23:11

遅くなりすみません。 AutoLoad.phpのコードも追記します。
entaro12345

2021/09/06 23:14

PHP5.6につきましては、他のサービスを運用している関係でまだバージョンアップができていない状況です。 今年中に7.4 or 8.0にアップ予定です。
m.ts10806

2021/09/06 23:33

なるほどわかりました。 下記は老婆心なので留意程度に捉えてもらって良いのですが、 実装次第ですがコードの書き換えも多少以上に発生しそうに思います。 年内予定なら今からでもそのバージョンにあわせた実装にしておいたほうが手間も減るように思いました。
entaro12345

2021/09/06 23:33

m.ts10806さま エラーONにしましたが、表示されません。 何か不足しておりますでしょうか。 変更内容としましては、下記になります。 ●test.php ↓↓追記 ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 1); ●php.ini ↓↓変更 display_errors = Off error_reporting = E_ALL & ~E_NOTICE php.iniを変更後に、Apacheの再起動をして確認しました。
entaro12345

2021/09/06 23:36

m.ts10806さま ご返答ありがとうございます。 バージョンアップに合わせて実装も検討したのですが、とりあえず現状で動くものをまずは 完了としようという決断に至りましたので、これはこれで解決させなくてはならないです。
guest

回答1

0

自己解決

PHPのバージョンをあげることにしましたのでクローズとさせていただきます

投稿2021/09/17 08:44

entaro12345

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問