【PHP入門講座】 PHPを使うための準備

**【2021/10/15 追記】**
**この記事は更新が停止されています。<font color="red">PHP を分かった気になって書いていた不正確な内容が多いため，過去の情報として参考程度にご覧ください。</font>また，完成にたどり着けなかったことをお詫びします。原則的には，[公式マニュアル](https://www.php.net/manual/ja/index.php)の参照をおすすめします。**


### [目次に戻る](http://qiita.com/items/752e19a578cf7d96fc5f)

# 前書き

記念すべき第1回目・・・方針とか途中で大きく変わるかもしれないけど、あんまりそういうこと気にしてても手が動かないのでとりあえず書いてみます。OSは **Windows** を想定しています。

# XAMPPの準備

## XAMPPとは？

以下のものが一式揃っています。

### Apache
世界中でもっとも使われているWebサーバソフトウェア。`http://localhost/sample/index.php` のようなURLでコンピュータ上の `C:\xampp\htdocs\sample\index.php` にアクセスできるようにするためのもの。ちなみに **コンピュータ上のファイルを直接 `file:///c:/xampp/htdocs/sample/index.php` のようにWebブラウザから開いてもPHPは実行されない** ので注意。

### MySQL
世界でもっとも普及しているオープンソース・データベース。データベースとは、多数のユーザー情報をまとめて管理したりするためのシステムのことを指す。

### Perl
PHPの大先輩であるプログラミング言語。最近は廃れてきている。

### PHP
メインディッシュ。

XAMPPはこれら全てをまとめてほぼ全自動でインストールしてくれる上に、 **XAMPP Control Panel**　から一括管理することができ、非常に便利です。なお、実際にWebサーバーとして公開する場合は、XAMPPを使用するよりも個別にインストールを行ったほうが逆に融通が利くようですが、今回は目的があくまでローカル環境の構築なのでXAMPPに頼ることにします。

## XAMPPの「X」って何？

- Windows向けの **WAMP**
- Mac向けの **MAMP**
- Linux向けの **LAMP**

これらのバラバラのソフトウェアが全OSに対応されたという意味の **X**  らしいです。

## ダウンロードする

**XAMPP for Windows**
http://www.apachefriends.org/jp/xampp-windows.html

こちらから最新版をダウンロードしてください。パッケージは **Installer** 版がオススメです。

## インストールする

<del>Installer版を使えば何も考えなくていいｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗｗ</del>

## コントロールパネルを起動する

インストールが終わったら **XAMPP Control Panel** を起動してください。そして **Apache** と **MySQL** を開始し、正しく **Running** になるかどうか確認してください。

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

[http://localhost/](http://localhost/) にアクセスして

```
It works!
```

と表示されれば成功。次からxamppフォルダ化にある **htdocs** フォルダにファイルを入れると、 **`http://localhost/`** をルートパスとしてApache経由でアクセス出来るようになります。

# セキュリティ設定

XAMPPはそのままでは **非常に危険** な状態なので、下記2項目の設定を行ってセキュリティを高めましょう。

- MySQLのルートパスワード設定
- XAMPPのディレクトリ制御設定

1. [http://localhost/security/xamppsecurity.php](http://localhost/security/xamppsecurity.php) にアクセス。
2. それぞれの項目を設定。(ラジオボタンやチェックボックスは初期値でOK)

# php.ini の編集

XAMPP Control Panel の Apache について、「Config」→「PHP(php.ini)」を開いてPHPの設定を行います。`；` が先頭についている行は全てコメントです。コメントアウトされている行の `;` を削除して設定を変更することもありますが、ここでは全て<ins>コメントでない行</ins>を編集する前提とします。

## error_reporting

エラー表示を行う内容。
`error_reporting = E_ALL | E_STRICT` 
として(あらゆるPHPバージョンで)全てのエラーを表示する設定にする。

## display_errors

エラー表示機能自体をONにするかOFFにするか。
`display_errors = On`
としてエラーを表示させる。

最低限この2項目の編集・確認だけは行っておきましょう。なお、設定を適用するには<ins>Apacheを再起動</ins>する必要があります。

# テキストエディタの導入

皆さんはテキストエディタには何を使われていますか？

## 自分でインストールしたエディタを使っている

以下のような標準設定にしてください。

- 文字コード<br /> **UTF-8(BOM無し)**
- 改行コード<br /> **LF(UNIXフォーマット)**

## Windows標準のメモ帳を使っている

<del>そんな糞ソフトウェアはゴミ箱に捨ててしまいましょう。</del>というのは言いすぎですが、それをPHPプログラミングに用いるのはやめましょう。さまざまなデメリットを抱えており、PHPに限らず<ins>プログラミングと非常に相性が悪い</ins>です。以下に私がオススメする **Notepad++** の導入手順を示します。

**Notepad++**
http://sourceforge.jp/projects/notepad-plus/

1. 上記サイトからダウンロードしてインストールを実行。
1. 「設定」→「環境設定」→「新規作成」を開く。
1. フォーマットで **「Unix」** を選択、エンコードで **「UTF-8(BOM無し)」** を選択して **「開いているANSIファイルに適用」** にチェック、デフォルトの言語で「PHP」を選択。
1. 「設定」→「環境設定」→「ファイルの関連付け」を開く。
1. 「.html」「.xhtml」「.css」「.js」「.php」などを登録しておく。
1. 「設定」→「環境設定」→「タブ設定」を開く。
1. タブサイズで「4」を指定する。タブ文字よりも半角スペース複数個の方が好みであれば「半角スペースで置換」にチェックを入れる。

常に編集は
![ss (2013-11-25 at 01.34.36).png](https://qiita-image-store.s3.amazonaws.com/0/25060/d8083222-d988-6dd6-e8c0-8a533cca745d.png)
この状態で行ってください。

### Notepad++のちょっとしたTips
- **まとめてインデント**<br />→ 複数行選択して `Tab` を押す。
- **まとめてアンインデント**<br />→ 複数行選択して `Shift` `Tab` を押す。

基本的な設定は以上で完了です。なお、php.iniはメモ帳で編集しても<ins>改行コードがCRLFで日本語が登場しない</ins>ので問題が発生しないようになっています。しかし、わざわざメモ帳を使う必要はないのでこれからは<del>メモ帳さんには永眠していただきましょう</del>。

# よくある質問

## Apacheが起動しない！

大部分の問題はポート(HTTP用の) **80番** と (HTTPS用の) **443番** が他のプロセスに使用されていることに起因します。代表的なケースとして<ins>Skypeとの競合</ins>があります。

#### Skypeの場合の解決策

1. ツール→設定→詳細→接続
1. <ins>「上記ポートに代わり、ポート80と443を使用」</ins>のチェックを外す

![ss (2013-11-25 at 06.06.05).png](https://qiita-image-store.s3.amazonaws.com/0/25060/e50b1696-3ff0-6831-4add-53221dc9df58.png)

他のケースでも、とりあえずApacheにこれらのポートを譲ってあげれば、たいていの問題は解決するはず。

## `C:\xampp\htdocs` からドキュメントルートを他の場所に変えたいんだけど？

これにはいくつか方法がありますが、一番問題を引き起こす可能性の低いものとしては **シンボリックリンク** を張る方法が挙げられるでしょう。Linuxユーザーであれば馴染み深いものであると思います。

#### Windowsでの例

1. コマンドプロンプトを起動。
2. `mklink /D "D:\Dropbox\web" "C:\xampp\htdocs"` を実行。
3. `D:\Dropbox\web` が作成され、ここをhtdocsと全く同じものとして扱うことが出来るようになる。

参考 http://phpjavascriptroom.com/?t=topic&p=windows7