Вы не должны использовать http://localhost
для доступа к виртуальной машине, работающей в GCP.
Чтобы решить вашу проблему , вы должны следовать документации Встроенный веб-сервер , также вы должны настроить сетевые теги для вашего экземпляра виртуальной машины и создать новое правило брандмауэра .
Пожалуйста, ознакомьтесь с моими шагами ниже:
- создать экземпляр ВМ:
$ gcloud compute instances create instance-1 --zone=us-central1-a --machine-type=n1-standard-1 --image=ubuntu-1804-bionic-v20200610 --image-project=ubuntu-os-cloud
настроить сетевой тег на экземпляре ВМ:
$ gcloud compute instances create instance-1 --zone=us-central1-a --tags=php-http-server
создать правило брандмауэра, разрешающее входящий трафик c на порт 8080:
$ gcloud compute firewall-rules create allow-php-http-8080 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:8080 --source-ranges=0.0.0.0/0 --target-tags=php-http-server
установить php 7.2:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install php7.2
создать
index.php
файл:
$ cd /var/www/
$ cat index.php
<?php
echo 'Hello World!';
?>
запустить веб-сервер PHP из папки с
index.php
файлом:
$ php -S localhost:8080
PHP 7.2.24-0ubuntu0.18.04.6 Development Server started at Thu Jun 18 12:31:16 2020
Listening on http://localhost:8080
Document root is /var/www
Press Ctrl-C to quit.
проверить соединение от экземпляра ВМ (через вторичное соединение S SH):
$ curl http://localhost:8080
Hello World!
запустить веб-сервер PHP на внутреннем IP-адресе вашего экземпляра виртуальной машины:
$ php -S 10.128.0.4:8080
PHP 7.2.24-0ubuntu0.18.04.6 Development Server started at Thu Jun 18 12:40:46 2020
Listening on http://10.128.0.4:8080
Document root is /var/www
Press Ctrl-C to quit.
проверить подключение из локальной сети на внешний IP-адрес вашей виртуальной машины:
$ curl http://34.XXX.XXX.121:8080
Hello World!
тот же результат через веб-браузер по адресу http://34.XXX.XXX.121:8080
:
Hello World!
Кроме того, посмотрите Начало работы с PHP на Compute Engine , чтобы увидеть альтернативное решение.