「エラー」タグアーカイブ

【PHPエラー】500 Internal Server Error : UID of script “/home/XXX/newfile.php” is smaller than min_uid


PHPを実行した時に以下の様なエラーが出る場合が
あります。

500 Internal Server Error : UID of script “/home/XXX/newfile.php” is smaller than min_uid

Internal Server Error
UID of script “/home/XXX/newfile.php” is smaller than min_uid
suPHP 0.7.1

 

このエラーの原因は、対象PHPファイルの所有者がrootになっている事が原因でした。この所有者・権限を変更する事によりエラーが出なくなります。

WinSCPを起動 > 対象ディレクトリの上で右クリック > プロパティ(P) >

グループ

所有者

それぞれがrootになっている場合には、これをユーザ名に変更する。

ここでは、 rootからhogehogeに変更しました。

php-error

 

 

次に、

同じパーミッション/グループ/所有者を再帰的に設定(R)

にチェックを入れて、OKボタンを押せば解決しましす。

******************************************************

2018/04/29 追記

phpの画像認証ライブラリ securimageを実行してみたところ

securimage_show.php

ファイル自体の所有者・グループがrootになっている状態だとこのエラーが発生しました。

chown {hoge_user}:{hoge_user}  securimage_show.php

ファイルの所有者・グループを{hoge_user}にchownコマンドで変更したところ正常に画像認証の画像が表示される様になりました。

 

 


さくらインターネットでPHPエラー発生時にエラーメッセージが表示される様にするには?


さくらインターネットを契約しwww配下にtest.phpを配置しました。

間違えたコードを記述したので本来はエラーが出る筈なのに出ません。なぜでないのかなと調べていたところphp.inidisplay_errors = Onを記述する事によりエラーメッセージが無事出る様になりました。

サクラインターネットのサーバコントロール画面より直接php.iniを編集する事が出来ます。

php_error


基本認証(ベーシック認証)を設定する方法


基本認証を使えば、簡単にアクセス制限を掛ける事ができる

セキュリティー維持の為にも、サイトに基本認証をかけてID/PASSを知らない人にはアクセスをさせない様にします。

まだ、開発中のサービスなどは外部に公開をしたくないといった事があると思います。そういう場合に重宝されるでしょう。

基本認証(ベーシック認証)を設定する方法

 

1.基本認証を掛けたいディレクトリに移動します。

cd /home/hoge_user/www/hoge_dir

2..htaccessファイルを作成します。

AuthType Basic
AuthName “Enter Your ID and PASS”
AuthUserFile /home/hoge_user/www/app_test/.htpasswd
require valid-user

WordPressの仕様上、「AuthName」のダブルクォーテーションが全角になっていますが、使用するときは半角のダブルクォーテーションに書き換えてください!ダブルクオーテーションで囲ってしまうとエラーになります!

更新日:2023/5/16

 

AuthName には、基本認証ダイアログが起動した時に入力を促すメッセージを入れます。

日本語の場合には文字化けしてしまいます。

英語でメッセージを入れると良いでしょう。

 

3..htpasswdファイルを作成します。

ユーザ名:(暗号化された)パスワード

基本認証で設定するパスワードは以下の様なサイトを

使って作成すると便利です。

.htaccess による認証用 パスワード暗号化ツール

http://www.luft.co.jp/cgi/htpasswd.php
すぐに使いこなせる Linux超入門 (日経BPパソコンベストムック)
本来は、ユーザ作成、パスワード作成をCUI上でコマンド発行で行います。

 

.htpasswdファイルには

ユーザ名:{暗号化されたパスワード}

という形式になります。

★捕捉★
.htaccess
.htpasswd
のファイルはWindows環境では作成が出来ません。Windows環境ではファイル名の頭が「.」(ピリオド)から始まるファイルを作成出来ない為です。よってローカルのWindows環境では
test_1.htaccess
test_2.htpasswd
という風に名前を仮置きし編集を行いWinSCPでサーバにアップロードします。その後、サーバ上でリネーム
test_1.htaccess  → .htaccess
test_2.htpasswd → .htpasswd

した方が手っ取り早いです。viを使ってTeraTerm上から変更も出来ますがやはり面倒ですしね。

基本認証ダイアログが起動後にユーザ名・パスワード入力をした時にエラーが出る場合の対処方法

海外サーバー(hostmonster)で運営中のあるサイトに基本認証を掛けてみました。

.htaccess

.htpasswd

両ファイルとも設定値・設定方法ともに合っているはずなのに、なぜか基本認証のダイアログ起動後に、ユーザ名・パスワードを入力すると

Internal Server Error

というエラーが出るという事象にドはまりしました。

かなりはまったのでメモしておきたいと思います。

基本認証でInternal Server Errorが出た原因

原因は、.htaccessファイルの中で.htpasswdファイルのパスを指定しますが、そのパスの指定をミスっていました。

私の場合、契約したhostmonsterの設定が特殊で

ドメインを割り当てているパスがWinSCP上で見ると

/public_htmlになっていました。

/public_html/.htaccess

/public_html/.htpasswd

 

この様に2ファイルを配置したのですが、.htaccessファイルの中で.htpasswdファイルのパスを

AuthUserFile /public_html/.htpasswd

と記載していたのですが、このパスの指定が間違っていた訳です。

 

DOCUMENT_ROOT/public_html/.htpasswdと指定し直したところ正常に基本認証が動作する様になりました。

AuthUserFile {DOCUMENT_ROOT}/public_html/.htpasswd

DOCUMENT_ROOTの確認方法

基本認証をかけるパスに

test.phpとスクリプトファイルを作成します。

そして、以下コードを記述します。

<?php

phpinfo();

?>

ブラウザからアクセスすると

Environment

の中に

DOCUMENT_ROOTのパスが表示されている事が確認出来ます。

WinSCPで開いた時には

/home/{user_name}

までのパスが省略して表示されていました。

この省略されたパスを使って、.htpasswdファイルへのパスを.htaccessの中で指定していた事がInternal Server Errorの原因でした。

パスワードファイルを指定する場合には、には、phpinfoでドキュメントルートのパスをしっかりと確認して指定する様にしましょう。

さくらインターネットでは、WinSCP上でも正しいパスが表示されます。

hostmonster(海外サーバー)が何か特殊な設定をしている様です。

2023/5/6更新

久しぶりにとある運営サイトに基本認証を設定しアクセスしようとしたところ、この様なエラーが出てちょっとはまりました。

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@{hogehoge_test}.com to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

解決策をメモっておきます。

このエラーが出ていた原因は

AuthType Basic
AuthName My Authentication
AuthName “Enter Your ID and PASS”
AuthUserFile /home3/cannacl7/public_html/.htpasswd
require valid-user

このAuthNameの「”」を半角で入力すべきところが「”」全角になっていた為です。全角のダブルクォーテーションを半角にしたところ正常に動作する様になりました。

 

 

 


「セキュリティで保護されたWEBページのコンテンツのみを表示しますか?」の警告が出なくなるようにする方法


WindowsXPなどを使用していますと、下記のような「セキュリティで保護されたWEBページのコンテンツのみを表示しますか?」というダイアログボックスが出てくることがあります。

キャプチャ1

IEを立ち上げるたびに出てくるので、邪魔に思った方も多いと思います。

 

この【セキュリティの警告】の表示が出てこなくなるように出来る方法がありますのでご紹介します。

①IEを立ち上げます。

②【ツール】メニューから【インターネット オプション】を選択し、【セキュリティ】タブを開きます。

キャプチャ2

③【レベルのカスタマイズ】をクリックし、【その他】のカテゴリにあります【混在したコンテンツを表示する】を【有効にする】にして、【OK】ボタンをクリックします。

キャプチャ3

④【インターネット オプション】を終了します。

 

これで次にIEを開く時から【セキュリティの警告】が出てこなくなります。

毎回出てきて面倒に思っていた方は上記方法で設定を変えてみてください。