「php」タグアーカイブ

Windows10にApache2.4(アパッチ)をインストールした時の手順など


Windows10にApache 2.4(アパッチ)をインストールした時のメモ書きです。

 

PHP設定がまだの人は、こちらのページを参考に設定を済ませておきましょう。

WINDOWS 10 にPHP 5.6 (5.6.35)の環境を構築した時のメモ書き

 

2014年位からApacheのhttpdのインストーラーが提供されなくなりました。

The Apache Software Foundation自体が、

ApacheHaus

Apache Loung

XAMPP

などのサードパーティー製を使って頂戴とアナウンスしています。

では、順を追って手順をまとめていきます。

Apache 2.4(アパッチ2.4)を実際にWindows 10にインストールする

https://www.apachehaus.com/cgi-bin/download.plx

にアクセスします。

今回は、

Apache 2.4.33 x64

をダウンロードします。

ドイツ国旗のマークをクリックしモジュールをダウンロードします。

しばらくすると

httpd-2.4.33-o102o-x64-vc14-r2.zip

のダウンロードが完了します。

因みに、昔のApacheは、*.msi形式でダウンロードできました。

それをキックするとインストーラが立ち上がってインストールする形式でしたが、2018年現在では、zipファイルを解凍してそれをインストールしたいパスに直接移動して使う形式になりました。

解凍するとこんな感じです。readme_first.htmlと言うのが入ってますが気にしなくて大丈夫です。

こんな感じで移動させます。

C:\Users\{user_name}\Downloads\httpd-2.4.33-o102o-x64-vc14-r2\Apache24\conf

の中に

httpd.conf

というファイルがあります。がこれは大事なファイルなのでどこかにコピーしてバックアップしておきましょう。

httpd.conf_

バックアップする時には、この様に最後に「_」を付けておくと分かり易くて良いです。

Apacehの設定ファイルを書き換える

httpd.confの内容を書き換えていきます。

行の頭に#をつけてコメントアウトしている方が、変更前のデフォルトの値です。#Define SRVROOT “/Apache24”
Define SRVROOT “C:/Program Files/Apache24”

こんな感じで書き換えます。

¥(円マーク)ではなく、/(半角スラッシュ)でパスは指定します。くれぐれも注意しましょう!!

#ServerAdmin admin@example.com
ServerAdmin virusvirus99@yahoo.co.jp

適当なメールアドレスを指定します。

LoadModuleの部分に以下コードを追加します。

各自のPHPのインストールディレクトリにパスは指定し直してください。

AddTypeを2行追加します。

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndexにindex.phpを追加します。

設定ファイルの末尾に以下1行を追加します。

PHPのパスは各自の環境に合わせてください。

PHPIniDir “C:/php/5.6”

あとは、代表的なログ機構であるアクセスログとエラーログも設定しておきましょう。

#CustomLog “logs/access.log” common
CustomLog “C:/Program Files/Apache24/logs/access.log” common

#ErrorLog “logs/error.log”
ErrorLog “C:/Program Files/Apache24/logs/error.log”

大体こんな感じです。

運用して行く中で追加でhttpd.confファイルの設定が必要になる場合があります。

ぐぐって必要に応じて書き換えていきましょう。

この記事ではすごく基本的な部分だけ説明しています。

ここまでで基本的なApacheの記述は完了です。

続いて設定内容にミスが無いかテストしていきます。

Windows10にインストールしたApacheの設定に不備が無いかテストする

Windows + R → cmd 

でDOS画面を起動します。

cd C:\Program Files\Apache24\bin

→パス移動

httpd -t

→テスト起動

※サイト上では、「\(バックスラッシュ)」になっていますが、DOSでコマンド発行をする場合、パス区切りはここでは、¥(半角円マーク)で区切ります。

Syntax OKと出ればしっかり設定が出来ています。

httpdと入力し正常に起動するか確認します。

C:\Program Files\Apache24\bin>httpd
(OS 5)アクセスが拒否されました。 : AH00091: httpd: could not open error log file C:/Program Files/Apache24/logs/error.log.
AH00015: Unable to open logs

この様なエラーが出る場合があります。

これは、logファイルへApacheが書き込みをしようとした時にWindowsの邪魔なセキュリティ機構が働いてしまった事が原因です。

エラーが出る場合には、

そんな場合には

logディレクトリの上で右クリックしプロパティ画面を開きます。

セキュリティタブを選択して

ALL APLICATION PACKAGES

制限されたすべてのアプリケーション パッケージ

CREATOR OWNER

SYSTEM

Administrators(XXX)

Users(XXX)

TrustedInstaller

 

それぞれを選択し編集ボタンを押してから、フルコントロール許可を入れます。

Windows 10になってからLinuxの様に色々な権限周りの制約が多くなりました。

自宅サーバとして運用する訳では無いのに、あまりセキュリティガチガチにされるとうざいです。

権限設定が終わったら今度は、

httpdコマンドを実行してDOS画面が待機状態になれば大丈夫です。

そして

http://localhost/

ブラウザに localhost と打ち込んでアクセスしてみましょう。

Apache Haus という画面が表示されればOKです。

英語では、Houseですがドイツ語ではHaus(ハオス)になります。

アパッチを止める場合、

DOS画面上で

Control + C 

を押せば止まります。

 

PHPがブラウザ上でも認識されるかテストする

C:\Program Files\Apache24\htdocs

の中にtest.phpファイルを作成します。

<?php

phpinfo();

?>

と入力しブラウザから

http://localhost/test.php

にアクセスしてみます。

こんな感じで表示されれば全てOKです。

ServiceメニューにApacheを登録する

SeriviceにApacheを登録しておくと便利です。

その手順をざっくり説明します。

Windows + X A

で、監理者権限でWindows PowerShellが起動します。

Windows PowerShellはDOSの後継バージョンみたいな物です。

慣れるとDOSより使い勝手が良いです。

起動したら

cd “C:\Program Files\Apache24\bin”

で移動して

.\httpd -k install

と入力し実行します。

Installing the ‘Apache2.4’ service
The ‘Apache2.4’ service is successfully installed.
Testing httpd.conf….
Errors reported here must be corrected before the service can be started.

と出ればOKです。

サービスの中に

因みにDOSからコマンド発行を行う場合は、次のコマンドを使ってください。

httpd -k install

DOSは古いので、Windows PowerShellを使った方が良いでしょう。

サービスを起動して、正常にApacheがサービスに登録されている事を確認します。

ApacheMonitorを起動すると

こんな感じで

Start

Stop

Restart

と3つのボタンがありますが、これをクリックするだけで開始・停止・再起動を行う事が出来てかなり便利です。

 

また、不定期にまとめていきます。

by  ノウハウツリーの管理人

 


Windows 10 にPHP 5.6 (5.6.35)の環境を構築した時のメモ書き


古いPHP 5.6 をWindows10 64bit環境に構築した時の備忘録です。

PHPモジュールのダウンロードを行う

以下からPHPのモジュールをダウンロードします。

https://windows.php.net/download/

VC11 x64 Thread Safe (2018-Mar-30 00:05:38)

という項目があります。

そこのZipをクリックしてダウンロードします。

No Thread Safe ではなく Thread Safe です。

しばらくすると

php-5.6.35-Win32-VC11-x64.zip

がダウンロードされます。

解凍します。

PHPの実行にあたりWindows環境では、日本語などのマルチバイト文字が含まれていると正常に動作しない場合があります。

そこで、Cドライブ直下に以下の通りディレクトリを作成します。

c:\php\5.6

その中に解凍して出来たPHP関連のファイルを全て移動させま

す。

こんな感じです。

php.iniの基本設定

PHPを展開したパス上に

php.ini-development

→開発環境

php.ini-production

→本番環境

の2つのphp.iniの雛形があります。

php.ini-development をコピーして php.ini にリネーム保存します。

php.iniに設定情報を記述していきます。

date.timezoneの部分を

date.timezone = “Asia/Tokyo”

と書き換えます。date関数などを使う場合には設定をする必要があります。

 

環境変数でPATH(パス)を通す

タスクバー上にある〇をクリックして、

コントロールパネル

と入力します。

すると、コントロールパネルのリンクが表れるのでクリックします。

コントロールパネルが起動したら

システムとセキュリティ > システム 

と辿ります。

システムの詳細設定をクリックします。

システムのプロパティダイアログが起動したらその中にある

環境変数(N)…

をクリックします。

環境変数のダイアログが起動したら、その下部分に

システム環境変数(S)

という項目があります。

右側のスライダーを下にずらすと

Pathが見つかるので、選択し

編集(I)…をクリックします。

環境変数名の編集ダイアログが起動します。

新規(N)ボタンをクリックします。

ダイアログの下部分に入力枠が現れるので、さっき移動させたPHPのパス

c:\php\5.6

を指定し、OKボタンをクリックします。

これでPHPのパス通し(環境変数の設定)は完了です。

PHPのパスが正常に通ったか確認する

Windows + R

をクリックして、

cmd

と入力しOKボタンを押します。

これは、WindowsにおいてDOS画面を起動するショートカットコマンドです。

DOS画面が起動したら

php -v

と入力し実行します。PHPのバージョンを確認するコマンドです。

PHP 5.6.35(cli) (built : Mar 29 2018 14:27:15 )

Zend Engine v2.6.0, Copyright(c) 1998-2016 Zend Technologies 

こんな感じで表示されればOKです。

[test.php]

<?php

$s = “はげ”;

var_dump($s);

?>

こんな感じで、PHPファイルを作成してDOSから

php test.php

とコマンド発行します。

パスを通す事によってDOS画面からphpと入力した時に

c:\php\5.6 

の中にある php.exeを使ってPHPスクリプトが実行される様になります。

初心者の中にはパスを通すという意味がちょっと分かり辛いという人も多いかもしれませんが、要はこんな事です。

あとは、Apacheなどをインストールして実際にブラウザからPHPのテスト実行をすると良いでしょう。

ApacheとPHPを連動させる

ここまででPHP設定が出来たので実際にApacheと連動させ、ブラウザ上でも正常動作する事を確認したい場合、次のApache環境構築のページを参照ください。

WINDOWS10にAPACHE2.4(アパッチ)をインストールした時の手順など

 

 


PHPエラー【File “XXX” is writeable by group】suPHP 0.7.1 Internal Server Errorが出る場合の対処方法


WEBサーバでPHPのテストスクリプトを動かそうとしたところ

Internal Server Error
File “XXX” is writeable by group

suPHP 0.7.1

というエラーが出ました。

少しはまってしまったので対処方法をメモしておきます。

ぐぐってみたのですが、意外と日本語のページでこのエラー対処方法を解説しているサイトがありませんでした。

そもそもエラーの原因

PHPではディレクトリやファイルに過剰にアクセス権限を与えてしまうとこのエラーが出る様です。

権限を必要最低限にする事でエラーは出なくなりました。

実際にエラーを消す為に行った内容

TeraTermでサーバにroot権限で接続します。

そしてPHPファイル(ここでは、test.php)の上位階層(test_directory)に対して

chmod 711 test_directory

を発行し権限711を与えます。

次にcd コマンドで test_directoryに移動し

chmod  700 test.php

を発行します。

親ディレクトリ権限 → 711

PHPファイルの権限 → 700

にしました。

これでエラーは出なくなりました。

はまった人は参考にしてみてください。

実は、このエラー解消方法は海外サイトを見て見つけました。

やっぱり調べ事をする際には、母数がたった1億しか無い日本語ではなく、数十億人が使っている英語圏のサイトで調べると早いですね。

注意事項

root権限でphpファイルを作成すると

UID of script “xxx/index.php” is smaller than min_uid

というエラーが出る場合があります。

その場合の対象方法は、こちらのページにまとめています。

合わせて確認してください。

【PHPエラー】500 INTERNAL SERVER ERROR : UID OF SCRIPT “/HOME/XXX/NEWFILE.PHP” IS SMALLER THAN MIN_UID

 


Eclipseで*.ctp(cake2.0のViewファイル)をPHPとして認識させる方法


cakePHP2.0では、View部分のファイルが*.ctpとなっています。

せっかくPHPファイルをPHPエディタで開いた時に見やすく書式設定をしているにも関わらず、標準では、PHPとして認識されない為にプレーンな書式で見辛いです。

そこで*.ctpファイルをPHPエディタの書式で編集出来る様に設定します。

メニュー > ウィンドウ > 設定 >

一般 >コンテンツタイプ > テキスト > PHPコンテンツ・タイプ 

を選択し、追加(A)…をクリックします。

コンテンツタイプの関連付けを追加

というダイアログが起動したら

*.ctp

と入力しOKを押します。

あとは、Eclipseを再起動して*.ctpファイルを開けば、PHPファイルを開いた時と同じフォントで表示されます。

再起動しない状態で*.ctpファイルを開いてもPHPファイルと認識されません。

必ず再起動してから開き直してください。

Eclipse Oxygenで動作確認済です。

 


PHPでよく使う関数の逆引きテクニック一覧


PHPで使用頻度の高い関数を不定期にまとめていきます。

基本的な用法などだけ記載していきます。

管理人用のPHP関数などのメモ書きです。

PHPの逆引き辞典としてこのページはお使いください。

 

PHPでファイルを削除する

unlink関数を使います。

例)

unlink(“hoge.txt”);

なお、ディレクトリパスを指定してunlink関数を使ってしまうと

Operation not permitted

というエラーメッセージが表示されます。間違え易いので注意しましょう。

PHPでディレクトリを削除する

rmdir関数を使います。

例)

rmdir(“/hoge/hoge_user/del_directory”);

また、PHPではディレクトリの中にファイルが含まれている場合、丸ごと削除する機能は無い様です。

rm → remove

dir → directory

の英単語の頭文字を使った関数名になっています。

PHPで指定したディレクトリの中にあるディレクトリ(ファイル)一覧を取得する

$directory_list = scandir({調べたいディレクトリパス});
var_dump($directory_list);

array(4) {
[0]=>
string(1) “.”
[1]=>
string(2) “..”
[2]=>
string(32) “test_directory_1”
[3]=>
string(32) “test_directory_2”
}

配列にはこんな具合でディレクトリ名が格納されます。

なお、このscandir関数は、ディレクトリの中に入っているファイル名も取得出来ます。

 


【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ボタンを押せば解決しましす。


さくらインターネット等のレンタルサーバ上でPHPのインストールされている場所を調べるには?


レンタルサーバを契約した時にcronからphpを実行させる為に、phpのインストールされている場所を調べたい場合があります。

その場合には

whereis php

を実行すればphpのインストールされた場所が表示されます。

実行すると

php: /usr/local/bin/php

という風にインストール場所が表示されます。

whereis


TeraTermから直接PHPスクリプトを実行するには?


通常PHPスクリプトはブラウザから

http://***/test.php

とアクセスする事により実行しますが、バッチ処理等でPHPスクリプトをコマンドラインからサクッと実行したい事があります。

その場合には、

TeraTermを起動し

php  {対象スクリプト}

php execute_hoge.php

と入力しEnterを押せば完了します。

実に簡単です。


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


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

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

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

php_error


画像を表示させる方法


PHP内での画像を表示させる方法を紹介します。

まずはじめに、eclipseに画像を入れます。
わかりやすいように、デスクトップ上にウェブに反映したい画像を貼りつけておきます。
この画像の上で右クリックし「コピー」を選択します。

次にeclipseを開き、画像を移します。
まずは開発環境のwwwの「img」を選択します。
汎用性の高い、よく使う画像であればimgの中に「common」という名前のフォルダを作ると、画像の整理もでき、良いかと思います。
フォルダを選択した状態で右クリックし「貼り付け」をクリックします。
そうすると、フォルダの中に画像が貼りつけられるので、eclipseへの画像の反映は完了です。

次はこの画像をウェブに反映させるための作業です。
表示させたいページに下記のようにPHP内に書き出します。

print(“<img src=¥”/フォルダ名/画像名¥”>”);

※¥は半角の円マークにしてください。
※フォルダ名は一つ中に入るごとに半角スラッシュで区切ります。

このような式を書き保存したあとにウェブを見ると、画像が反映されていることがわかると思います。

また、altを使うと画像がなんらかの形で潰れて見れなくなってしまった際に、画像の説明文を表示させることができます。

print(“<img src=¥”/フォルダ名/画像名¥” alt=¥”サイトのロゴ¥”>”);

※¥は半角の円マークにしてください。
※フォルダ名は一つ中に入るごとに半角スラッシュで区切ります。

こうすることで「サイトのロゴ」という説明文付きの画像をアップすることができます。