質問編集履歴
2
実アドレスを記載したので修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
C:***>laravelapp> php artisan serve --host 19*.16.1*.1**
|
48
48
|
|
49
|
-
Laravel development server started:<http://19
|
49
|
+
Laravel development server started:<http://19*.16*.1*.1**:8000>
|
50
50
|
|
51
51
|
```
|
52
52
|
|
1
質問内容を整理しなおしました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Laraverlで作成したサイトにスマホでアクセスし、スマホの位置情報を取得したい
|
test
CHANGED
@@ -1,105 +1,143 @@
|
|
1
|
-
##
|
1
|
+
##問題
|
2
2
|
|
3
|
-
|
3
|
+
スマホで、ローカル環境で自作している位置情報表示サイトにアクセスしても、位置情報を取得できない(geolocationが使えない)
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
##実現したいこと
|
8
8
|
|
9
|
-
```
|
10
|
-
|
11
|
-
|
9
|
+
ローカル環境で自作している位置情報サイトを、スマホでアクセスできるようにし、かつSSL通信にして、位置情報を取得したい。
|
12
|
-
|
13
|
-
// *はIPアドレス
|
14
10
|
|
15
11
|
|
16
12
|
|
13
|
+
##コード
|
14
|
+
|
15
|
+
ローカルでxamppを使ってます。
|
16
|
+
|
17
|
+
|
18
|
+
|
17
|
-
|
19
|
+
C:\xampp\htdocs\laravelapp\resources\views\alert_location.blade.php
|
20
|
+
|
21
|
+
```javascript
|
22
|
+
|
23
|
+
<script>
|
24
|
+
|
25
|
+
navigator.geolocation.getCurrentPosition(function(position){
|
26
|
+
|
27
|
+
latitude = position.coords.latitude;
|
28
|
+
|
29
|
+
alert(latitude);
|
30
|
+
|
31
|
+
});
|
32
|
+
|
33
|
+
</script>
|
18
34
|
|
19
35
|
```
|
20
36
|
|
21
37
|
|
22
38
|
|
23
|
-
|
24
|
-
|
25
|
-
### 発生している問題・エラーメッセージ
|
26
|
-
|
27
|
-
こちら様を参考にしています。
|
28
|
-
|
29
|
-
[リンク内容](https://www.keycoxs.com/entry/2018/03/29/161052)
|
30
|
-
|
31
|
-
h
|
39
|
+
'localhost:8000/'(127.0.0.1)でアクセスすると、PCでは位置情報は取得でき、スマホでは接続できません。
|
32
40
|
|
33
41
|
|
34
42
|
|
43
|
+
このファイルに、スマートホンでアクセスするために、アドレスを以下に変更します。
|
44
|
+
|
45
|
+
```command
|
46
|
+
|
47
|
+
C:***>laravelapp> php artisan serve --host 19*.16.1*.1**
|
48
|
+
|
49
|
+
Laravel development server started:<http://192.168.10.106:8000>
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
ブラウザで、`19*.16*.1*.1**:8000/alert_location`にアクセスすると、サイトは表示されますが、位置情報は取得できません。スマホでも同様です。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
geolocation.getCurrentPosition()は、SSL通信でないと使えないということなので、`19*.16*.1*.1**:8000/alert_location`でのアクセスが、SLL通信になるようにすればいいのかな、と考えているのですが、良い方法が見当たりません。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
##一応、試してみたこと
|
64
|
+
|
65
|
+
PCのブラウザで、'https://laravelapp'でアクセスできるようにしてみました。
|
66
|
+
|
67
|
+
[リンク内容](https://www.keycoxs.com/entry/2018/03/29/161052) https://www.keycoxs.com/entry/2018/03/29/161052
|
68
|
+
|
69
|
+
を参考にさせていただきました。ありがとうございます。
|
70
|
+
|
71
|
+
|
72
|
+
|
35
|
-
|
73
|
+
- C:\xampp\php\php.ini
|
74
|
+
|
75
|
+
extension = php opensell.dll //有効化
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
- C:\xampp\apache\conf\extra\httpd-ssl.conf
|
80
|
+
|
81
|
+
末尾に以下を追加
|
36
82
|
|
37
83
|
```
|
38
84
|
|
39
85
|
<VirtualHost *:443>
|
40
86
|
|
41
|
-
|
87
|
+
ServerName laravelapp
|
42
88
|
|
43
|
-
|
89
|
+
DocumentRoot "C:/xampp/htdocs/laravelapp/public"
|
44
90
|
|
45
|
-
|
91
|
+
SSLEngine on
|
46
92
|
|
47
|
-
|
93
|
+
SSLCertificateFile "conf/ssl.crt/laravelapp.crt"
|
48
94
|
|
49
|
-
SSLCertificateFile "conf/ssl.crt/server.crt"
|
50
|
-
|
51
|
-
|
95
|
+
SSLCertificateKeyFile "conf/ssl.key/laravelapp.key"
|
52
96
|
|
53
97
|
</VirtualHost>
|
54
|
-
|
55
|
-
```
|
56
|
-
|
57
|
-
2.hostsファイルの編集
|
58
|
-
|
59
|
-
```
|
60
|
-
|
61
|
-
127.0.0.1 sample
|
62
|
-
|
63
|
-
```
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
##実現したいこと
|
68
|
-
|
69
|
-
VirtualHostの DocumentRootの設定を、laravelで作成しているViewディレクトリに設定してSSL通信したい。
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
DocumentRootを、viewディレクトリの絶対パスを指定すると、ディレクトリの内容が表示されるだけで、laravelは起動しません。
|
74
|
-
|
75
|
-
DocumentRootに、"C:/xampp/htdocs/"を指定すると、以下のエラーが発生してxamppのapacheが停止します。
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
エラー
|
80
|
-
|
81
|
-
```
|
82
|
-
|
83
|
-
7:21:14 [Apache] Error: Apache shutdown unexpectedly.
|
84
|
-
|
85
|
-
7:21:14 [Apache] This may be due to a blocked port, missing dependencies,
|
86
|
-
|
87
|
-
7:21:14 [Apache] improper privileges, a crash, or a shutdown by another method.
|
88
|
-
|
89
|
-
7:21:14 [Apache] Press the Logs button to view error logs and check
|
90
|
-
|
91
|
-
7:21:14 [Apache] the Windows Event Viewer for more clues
|
92
|
-
|
93
|
-
7:21:14 [Apache] If you need more help, copy and post this
|
94
|
-
|
95
|
-
7:21:14 [Apache] entire log window on the forums
|
96
98
|
|
97
99
|
|
98
100
|
|
99
101
|
```
|
100
102
|
|
101
|
-
|
103
|
+
- C:\Windows\System32\drivers\etc\hosts
|
102
104
|
|
103
|
-
|
105
|
+
以下を末尾に追加
|
104
106
|
|
107
|
+
`19*.16*.1*.1** laravelapp
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
- C\xampp\apache\conf\opnessl-san.cnf
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
```
|
120
|
+
|
121
|
+
[ SAN ]
|
122
|
+
|
123
|
+
subjectAltName = @alt_names
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
[ alt_names ]
|
128
|
+
|
129
|
+
DNS.1 = laravelapp
|
130
|
+
|
131
|
+
```
|
132
|
+
|
105
|
-
|
133
|
+
以上を行い、証明書を発行しました。
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
##結果
|
138
|
+
|
139
|
+
PCからは`https://laravelapp/alert_location`で目的とするサイトに接続し、位置情報を取得できましたが、スマホからアクセスすると、「IPアドレスが見つかりませんでした」とエラーになり、接続拒否されます。
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
どうやったら、ローカルで作成しているサイトに、スマホでアクセスして、位置情報を取得できるようになるのでしょうか?ご教授お願いします。
|