見出し画像

MacでApatchを立ち上げでPHPを使う

使い方をよく忘れるので備忘録。

1. MacでApatchを立ち上げる

◎ MacでのApatchの操作
MacでApatchを立ち上げるコマンドは次の通り。

・ Apatchの起動

$ sudo apachectl start

・ Apatchの停止

$ sudo apachectl stop

・ Apatchの再起動

$ sudo apachectl restart

◎ ドキュメントルート
MacのApatchのドキュメントルートの場所は次の通り。

/Library/WebServer/Documents/

◎ 動作確認
動作確認するには、ドキュメントルートにHTMLファイルを置いて、「http://localhost/<HTMLファイル名>」にアクセス。

【helloworld.html】

Hello World!

2. PHPを使う

◎PHPの有効化
MacのApatchでのPHPの有効化の手順は次の通り。

(1)設定ファイル「/etc/apache2/httpd.conf」を開く。

(2)phpの有効化のコメントアウトをはずす。

#LoadModule php7_module libexec/apache2/libphp7.so

LoadModule php7_module libexec/apache2/libphp7.so

◎動作確認
動作確認するには、ドキュメントルートにPHPファイルを置いて、「http://localhost/<PHPファイル名>」にアクセス。

【helloworld.php】

<?php
print("Hello World!");

◎GETパラメータの取得
URLに埋め込んだGETパラメータを取得するコードは次の通りです。

【get_test.php】

<?php
print($_GET["test"]);

「http://localhost?test=123」にアクセスすると、「123」とパラメータが表示されます。

iOSからGETでアクセスするコードは次の通りです。

let req = URLRequest(url: URL(string: "http://localhost/get_test.php?test=123")!)
URLSession.shared.dataTask(with: req) { (data, res, err) in
    if err == nil, let data = data, let res = res as? HTTPURLResponse {
        print("StatusCode: \(res.statusCode)")
        print(String(data: data, encoding: String.Encoding.utf8) ?? "")
    }
}.resume()

◎POSTパラメータの取得
画像を埋め込んだPOSTパラメータを取得するコードは次の通りです。

<?php
    $file = file_get_contents("php://input");
    file_put_contents("./images/upload.jpg",$file);

iOSからPOSTで画像をアップロードするコードは次の通りです。

//PHPへ画像をPOST
let path = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask )[0]
    .appendingPathComponent("cat.jpg")
var req = URLRequest(url: URL(string: "http://localhost/upload.php")!)
req.httpMethod = "POST"
URLSession.shared.uploadTask(with: req, fromFile: path) {(data, res, err) in
    print(data, res, err)
}.resume()

◎タイムアウト時間の指定と取得
PHPには最大実行時間が決まってます。デフォルトで30秒です。
時間がかかる処理が必要な場合はタイムアウト時間を変更する必要があります。

<?php
# タイムアウト時間の指定
set_time_limit(600);

# タイムアウト時間の取得
print(ini_get('max_execution_time'));

この記事が気に入ったらサポートをしてみませんか?