Laradock을 사용하여 Docker + CentOS + Apache + PHP7 + PostgreSQL 환경을 만듭니다.
12190 단어 LaraDockPHPCentOSPostgreSQL도커
소개
업무에서 CodeIgniter용 환경을 만들어야 하고 Laradock을 사용하기로 했습니다.
이번에는 순수한 서버 측 PHP 때문에 Node.js를 설치하지 않는 환경을 구축합니다.
하고 싶은 것은 다음과 같습니다.
그렇다면 아래 절차입니다.
Docker나 git의 인스톨은 끝난 것으로 합니다.
텍스트 편집기는 Visual Studio Code를 가정합니다.
Laradock 구성 파일 편집
먼저 프로젝트의 디렉토리를 만들고 해당 디렉토리에서 Laradock을 복제합니다.
# ディレクトリを作成し移動する
$ mkdir dockerProject && cd dockerProject
# Laradockをクローンする
$ git clone https://github.com/laradock/laradock.git
# Laradockのgit管理をやめる
$ rm -rf ./laradock/.git
# 後々必要となるディレクトリを先に作成する
$ mkdir web && mkdir db
.env 파일을 만들고 내용을 편집합니다.
# テンプレートをコピーしてenvファイルを作成する
$ cp ./laradock/env-example ./laradock/.env
dockerProject/laradock/env# ローカル上のソースを置くディレクトリを指定する(8行目)
- APP_CODE_PATH_HOST=../
+ APP_CODE_PATH_HOST=../web
# ローカル上のソースをマウントするサーバー上のディレクトリを指定する(11行目)
- APP_CODE_PATH_CONTAINER=/var/www:cached
+ APP_CODE_PATH_CONTAINER=/var/www/html:cached
# データの保存先を変更する(14行目)
- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=../db
# PHPのバージョンを変更する(35行目)
- PHP_VERSION=7.2
+ PHP_VERSION=7.1
# Nodeをインストールしない(75行目)
- WORKSPACE_INSTALL_NODE=true
+ WORKSPACE_INSTALL_NODE=false
# Yarnをインストールしない(78行目)
- WORKSPACE_INSTALL_YARN=true
+ WORKSPACE_INSTALL_YARN=false
# Redisをインストールしない(80行目)
- WORKSPACE_INSTALL_PHPREDIS=true
+ WORKSPACE_INSTALL_PHPREDIS=false
# Xdebugをインストールする(83行目)
- WORKSPACE_INSTALL_XDEBUG=false
+ WORKSPACE_INSTALL_XDEBUG=true
# PostgreSQLクライアントをインストールする(107行目)
- WORKSPACE_INSTALL_PG_CLIENT=false
+ WORKSPACE_INSTALL_PG_CLIENT=true
# Xdebugをインストールする(127行目)
- PHP_FPM_INSTALL_XDEBUG=false
+ PHP_FPM_INSTALL_XDEBUG=true
# PostgreSQLドライバーをインストールする(136行目)
- PHP_FPM_INSTALL_PGSQL=false
+ PHP_FPM_INSTALL_PGSQL=true
# PostgreSQLクライアントをインストールする(140行目)
- PHP_FPM_INSTALL_PG_CLIENT=false
+ PHP_FPM_INSTALL_PG_CLIENT=true
# PostgreSQLドライバーをインストールする(145行目)
- PHP_WORKER_INSTALL_PGSQL=false
+ PHP_WORKER_INSTALL_PGSQL=true
# HTTP, HTTPSのポートを変更する(158, 159行目)
- APACHE_HOST_HTTP_PORT=80
- APACHE_HOST_HTTPS_PORT=443
+ APACHE_HOST_HTTP_PORT=8080
+ APACHE_HOST_HTTPS_PORT=8443
# DocumentRootを変更する(165行目)
- APACHE_DOCUMENT_ROOT=/var/www/
+ APACHE_DOCUMENT_ROOT=/var/www/html
Apache2의 Dockerfile을 편집합니다.
dockerProject/laradock/apache2/Dockerfile# OSをUbuntuからCentOSに変更する(1行目)
- FROM webdevops/apache:ubuntu-16.04
+ FROM webdevops/apache:centos-7
PostgreSQL Dockerfile을 편집합니다.
dockerProject/laradock/postgres/Dockerfile# PostgreSQLのバージョンを指定してインストールする(1行目)
- FROM postgres:alpine
+ FROM postgres:9
Docker로 컨테이너 시작
이미지를 빌드하고 컨테이너를 시작합니다.
# docker-compose.ymlのあるディレクトリに移動する
$ cd laradock
# イメージをビルドしてコンテナをバックグラウンドで起動する(初回は時間が掛かります)
$ docker-compose up -d --build workspace postgres php-fpm apache2
브라우저에서 localhost:8080에 액세스합니다.
PHP 실행
웹 디렉토리 아래에 index.php를 만듭니다.
dockerProject/web/index.php<?php
echo 'Hello from docker!<br>';
phpinfo();
만들었으면 브라우저에서 localhost:8080에 다시 액세스합니다.
DB에 연결
PHP로 PostgreSQL에 연결해 보겠습니다.
dockerProject/web/index.php <?php
echo 'Hello from docker!<br>';
+ $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $link = pg_connect($connection_string);
+ if ($link) {
+ $db_name = pg_dbname($link);
+ echo '接続に成功しました。<br>';
+ echo '現在接続しているDBは' . $db_name . 'です。<br>';
+ } else {
+ echo '接続に失敗しました。<br>';
+ }
+ $close_flg = pg_close($link);
+ if ($close_flg) {
+ echo '切断に成功しました。<br>';
+ }
phpinfo();
명령 행에서 psql 명령을 사용해보십시오.
workspaceコンテナのbashを起動する
$ docker-compose exec workspace bash
ホスト名(コンテナ名)とユーザ名(ロール名)を指定してpsqlモードに入る
# psql -h postgres -U default
Password for user default: secret
DB 전환(자신에서 만든 DB에 연결)
기본값이 아닌 직접 만든 데이터베이스 사용자로 연결해 봅니다.
# psql -h postgres -U default
Password for user default: secret
# create user testuser with password 'testpassword';
# create database testdb with owner testuser;
# \du
# \l
# \q
index.php를 편집합니다.
dockerProject/web/index.php <?php
echo 'Hello from docker!<br>';
- $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $connection_string = "host=postgres dbname=testdb user=testuser password=testpassword port=5432";
$link = pg_connect($connection_string);
if ($link) {
$db_name = pg_dbname($link);
echo '接続に成功しました。<br>';
echo '現在接続しているDBは' . $db_name . 'です。<br>';
} else {
echo '接続に失敗しました。<br>';
}
$close_flg = pg_close($link);
if ($close_flg) {
echo '切断に成功しました。<br>';
}
phpinfo();
PHP 원격 디버깅
php-fpm 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/php-fpm/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
workspace 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/workspace/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
구성 파일을 편집한 후 컨테이너를 중지/삭제한 다음 이미지를 다시 빌드하여 컨테이너를 시작합니다.
$ docker-compose down
$ docker-compose up -d --build workspace postgres php-fpm apache2
Visual Studio Code에서 PHP Debug 확장을 설치합니다.
설치가 끝나면 왼쪽 사이드 메뉴에서 디버그 아이콘을 클릭한 다음 상단 톱니바퀴 아이콘을 클릭합니다.
PHP를 선택합니다.
launch.json이라는 파일이 생성되므로 아래와 같이 편집합니다.
dockerProject/.vscode/launch.json{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
+ "pathMappings": {
+ "/var/www/html": "${workspaceRoot}/web",
+ },
- "port": 9000
+ "port": 9001
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
스텝 실행으로 멈추고 싶은 부분에 브레이크 포인트를 붙입니다.
F5 키를 눌러 디버깅을 시작합니다.
브라우저에서 localhost:8080에 액세스합니다.
그러면 브레이크 포인트를 붙인 부분에서 정지하고 디버깅을 할 수 있습니다.
이제 Laradock을 사용하여 PHP 실행 환경을 만들 수있었습니다.
Reference
이 문제에 관하여(Laradock을 사용하여 Docker + CentOS + Apache + PHP7 + PostgreSQL 환경을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rema424/items/ba6e6f440c415fed7b0c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# ディレクトリを作成し移動する
$ mkdir dockerProject && cd dockerProject
# Laradockをクローンする
$ git clone https://github.com/laradock/laradock.git
# Laradockのgit管理をやめる
$ rm -rf ./laradock/.git
# 後々必要となるディレクトリを先に作成する
$ mkdir web && mkdir db
# テンプレートをコピーしてenvファイルを作成する
$ cp ./laradock/env-example ./laradock/.env
# ローカル上のソースを置くディレクトリを指定する(8行目)
- APP_CODE_PATH_HOST=../
+ APP_CODE_PATH_HOST=../web
# ローカル上のソースをマウントするサーバー上のディレクトリを指定する(11行目)
- APP_CODE_PATH_CONTAINER=/var/www:cached
+ APP_CODE_PATH_CONTAINER=/var/www/html:cached
# データの保存先を変更する(14行目)
- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=../db
# PHPのバージョンを変更する(35行目)
- PHP_VERSION=7.2
+ PHP_VERSION=7.1
# Nodeをインストールしない(75行目)
- WORKSPACE_INSTALL_NODE=true
+ WORKSPACE_INSTALL_NODE=false
# Yarnをインストールしない(78行目)
- WORKSPACE_INSTALL_YARN=true
+ WORKSPACE_INSTALL_YARN=false
# Redisをインストールしない(80行目)
- WORKSPACE_INSTALL_PHPREDIS=true
+ WORKSPACE_INSTALL_PHPREDIS=false
# Xdebugをインストールする(83行目)
- WORKSPACE_INSTALL_XDEBUG=false
+ WORKSPACE_INSTALL_XDEBUG=true
# PostgreSQLクライアントをインストールする(107行目)
- WORKSPACE_INSTALL_PG_CLIENT=false
+ WORKSPACE_INSTALL_PG_CLIENT=true
# Xdebugをインストールする(127行目)
- PHP_FPM_INSTALL_XDEBUG=false
+ PHP_FPM_INSTALL_XDEBUG=true
# PostgreSQLドライバーをインストールする(136行目)
- PHP_FPM_INSTALL_PGSQL=false
+ PHP_FPM_INSTALL_PGSQL=true
# PostgreSQLクライアントをインストールする(140行目)
- PHP_FPM_INSTALL_PG_CLIENT=false
+ PHP_FPM_INSTALL_PG_CLIENT=true
# PostgreSQLドライバーをインストールする(145行目)
- PHP_WORKER_INSTALL_PGSQL=false
+ PHP_WORKER_INSTALL_PGSQL=true
# HTTP, HTTPSのポートを変更する(158, 159行目)
- APACHE_HOST_HTTP_PORT=80
- APACHE_HOST_HTTPS_PORT=443
+ APACHE_HOST_HTTP_PORT=8080
+ APACHE_HOST_HTTPS_PORT=8443
# DocumentRootを変更する(165行目)
- APACHE_DOCUMENT_ROOT=/var/www/
+ APACHE_DOCUMENT_ROOT=/var/www/html
# OSをUbuntuからCentOSに変更する(1行目)
- FROM webdevops/apache:ubuntu-16.04
+ FROM webdevops/apache:centos-7
# PostgreSQLのバージョンを指定してインストールする(1行目)
- FROM postgres:alpine
+ FROM postgres:9
이미지를 빌드하고 컨테이너를 시작합니다.
# docker-compose.ymlのあるディレクトリに移動する
$ cd laradock
# イメージをビルドしてコンテナをバックグラウンドで起動する(初回は時間が掛かります)
$ docker-compose up -d --build workspace postgres php-fpm apache2
브라우저에서 localhost:8080에 액세스합니다.
PHP 실행
웹 디렉토리 아래에 index.php를 만듭니다.
dockerProject/web/index.php<?php
echo 'Hello from docker!<br>';
phpinfo();
만들었으면 브라우저에서 localhost:8080에 다시 액세스합니다.
DB에 연결
PHP로 PostgreSQL에 연결해 보겠습니다.
dockerProject/web/index.php <?php
echo 'Hello from docker!<br>';
+ $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $link = pg_connect($connection_string);
+ if ($link) {
+ $db_name = pg_dbname($link);
+ echo '接続に成功しました。<br>';
+ echo '現在接続しているDBは' . $db_name . 'です。<br>';
+ } else {
+ echo '接続に失敗しました。<br>';
+ }
+ $close_flg = pg_close($link);
+ if ($close_flg) {
+ echo '切断に成功しました。<br>';
+ }
phpinfo();
명령 행에서 psql 명령을 사용해보십시오.
workspaceコンテナのbashを起動する
$ docker-compose exec workspace bash
ホスト名(コンテナ名)とユーザ名(ロール名)を指定してpsqlモードに入る
# psql -h postgres -U default
Password for user default: secret
DB 전환(자신에서 만든 DB에 연결)
기본값이 아닌 직접 만든 데이터베이스 사용자로 연결해 봅니다.
# psql -h postgres -U default
Password for user default: secret
# create user testuser with password 'testpassword';
# create database testdb with owner testuser;
# \du
# \l
# \q
index.php를 편집합니다.
dockerProject/web/index.php <?php
echo 'Hello from docker!<br>';
- $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $connection_string = "host=postgres dbname=testdb user=testuser password=testpassword port=5432";
$link = pg_connect($connection_string);
if ($link) {
$db_name = pg_dbname($link);
echo '接続に成功しました。<br>';
echo '現在接続しているDBは' . $db_name . 'です。<br>';
} else {
echo '接続に失敗しました。<br>';
}
$close_flg = pg_close($link);
if ($close_flg) {
echo '切断に成功しました。<br>';
}
phpinfo();
PHP 원격 디버깅
php-fpm 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/php-fpm/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
workspace 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/workspace/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
구성 파일을 편집한 후 컨테이너를 중지/삭제한 다음 이미지를 다시 빌드하여 컨테이너를 시작합니다.
$ docker-compose down
$ docker-compose up -d --build workspace postgres php-fpm apache2
Visual Studio Code에서 PHP Debug 확장을 설치합니다.
설치가 끝나면 왼쪽 사이드 메뉴에서 디버그 아이콘을 클릭한 다음 상단 톱니바퀴 아이콘을 클릭합니다.
PHP를 선택합니다.
launch.json이라는 파일이 생성되므로 아래와 같이 편집합니다.
dockerProject/.vscode/launch.json{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
+ "pathMappings": {
+ "/var/www/html": "${workspaceRoot}/web",
+ },
- "port": 9000
+ "port": 9001
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
스텝 실행으로 멈추고 싶은 부분에 브레이크 포인트를 붙입니다.
F5 키를 눌러 디버깅을 시작합니다.
브라우저에서 localhost:8080에 액세스합니다.
그러면 브레이크 포인트를 붙인 부분에서 정지하고 디버깅을 할 수 있습니다.
이제 Laradock을 사용하여 PHP 실행 환경을 만들 수있었습니다.
Reference
이 문제에 관하여(Laradock을 사용하여 Docker + CentOS + Apache + PHP7 + PostgreSQL 환경을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rema424/items/ba6e6f440c415fed7b0c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
echo 'Hello from docker!<br>';
phpinfo();
PHP로 PostgreSQL에 연결해 보겠습니다.
dockerProject/web/index.php
<?php
echo 'Hello from docker!<br>';
+ $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $link = pg_connect($connection_string);
+ if ($link) {
+ $db_name = pg_dbname($link);
+ echo '接続に成功しました。<br>';
+ echo '現在接続しているDBは' . $db_name . 'です。<br>';
+ } else {
+ echo '接続に失敗しました。<br>';
+ }
+ $close_flg = pg_close($link);
+ if ($close_flg) {
+ echo '切断に成功しました。<br>';
+ }
phpinfo();
명령 행에서 psql 명령을 사용해보십시오.
workspaceコンテナのbashを起動する
$ docker-compose exec workspace bash
ホスト名(コンテナ名)とユーザ名(ロール名)を指定してpsqlモードに入る
# psql -h postgres -U default
Password for user default: secret
DB 전환(자신에서 만든 DB에 연결)
기본값이 아닌 직접 만든 데이터베이스 사용자로 연결해 봅니다.
# psql -h postgres -U default
Password for user default: secret
# create user testuser with password 'testpassword';
# create database testdb with owner testuser;
# \du
# \l
# \q
index.php를 편집합니다.
dockerProject/web/index.php <?php
echo 'Hello from docker!<br>';
- $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $connection_string = "host=postgres dbname=testdb user=testuser password=testpassword port=5432";
$link = pg_connect($connection_string);
if ($link) {
$db_name = pg_dbname($link);
echo '接続に成功しました。<br>';
echo '現在接続しているDBは' . $db_name . 'です。<br>';
} else {
echo '接続に失敗しました。<br>';
}
$close_flg = pg_close($link);
if ($close_flg) {
echo '切断に成功しました。<br>';
}
phpinfo();
PHP 원격 디버깅
php-fpm 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/php-fpm/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
workspace 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/workspace/xdebug.ini# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
구성 파일을 편집한 후 컨테이너를 중지/삭제한 다음 이미지를 다시 빌드하여 컨테이너를 시작합니다.
$ docker-compose down
$ docker-compose up -d --build workspace postgres php-fpm apache2
Visual Studio Code에서 PHP Debug 확장을 설치합니다.
설치가 끝나면 왼쪽 사이드 메뉴에서 디버그 아이콘을 클릭한 다음 상단 톱니바퀴 아이콘을 클릭합니다.
PHP를 선택합니다.
launch.json이라는 파일이 생성되므로 아래와 같이 편집합니다.
dockerProject/.vscode/launch.json{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
+ "pathMappings": {
+ "/var/www/html": "${workspaceRoot}/web",
+ },
- "port": 9000
+ "port": 9001
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
스텝 실행으로 멈추고 싶은 부분에 브레이크 포인트를 붙입니다.
F5 키를 눌러 디버깅을 시작합니다.
브라우저에서 localhost:8080에 액세스합니다.
그러면 브레이크 포인트를 붙인 부분에서 정지하고 디버깅을 할 수 있습니다.
이제 Laradock을 사용하여 PHP 실행 환경을 만들 수있었습니다.
Reference
이 문제에 관하여(Laradock을 사용하여 Docker + CentOS + Apache + PHP7 + PostgreSQL 환경을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rema424/items/ba6e6f440c415fed7b0c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# psql -h postgres -U default
Password for user default: secret
# create user testuser with password 'testpassword';
# create database testdb with owner testuser;
# \du
# \l
# \q
<?php
echo 'Hello from docker!<br>';
- $connection_string = "host=postgres dbname=default user=default password=secret port=5432";
+ $connection_string = "host=postgres dbname=testdb user=testuser password=testpassword port=5432";
$link = pg_connect($connection_string);
if ($link) {
$db_name = pg_dbname($link);
echo '接続に成功しました。<br>';
echo '現在接続しているDBは' . $db_name . 'です。<br>';
} else {
echo '接続に失敗しました。<br>';
}
$close_flg = pg_close($link);
if ($close_flg) {
echo '切断に成功しました。<br>';
}
phpinfo();
php-fpm 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/php-fpm/xdebug.ini
# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
workspace 디렉토리 아래의 xdebug.ini를 편집합니다.
dockerProject/laradock/workspace/xdebug.ini
# 3行目
- ; xdebug.remote_host=dockerhost
+ xdebug.remote_host=docker.for.mac.localhost (Docker for Macの場合)
+ xdebug.remote_host={Vagratのホストマシンの接続IPアドレス} (Vagratの場合)
# 4行目
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
# 5行目
- xdebug.remote_port=9000
+ xdebug.remote_port=9001
# 8行目
- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
# 9行目
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
# 10行目
- xdebug.cli_color=0
+ xdebug.cli_color=1
# 最終行に追加
+ xdebug.remote_log="/tmp/xdebug_log"
구성 파일을 편집한 후 컨테이너를 중지/삭제한 다음 이미지를 다시 빌드하여 컨테이너를 시작합니다.
$ docker-compose down
$ docker-compose up -d --build workspace postgres php-fpm apache2
Visual Studio Code에서 PHP Debug 확장을 설치합니다.
설치가 끝나면 왼쪽 사이드 메뉴에서 디버그 아이콘을 클릭한 다음 상단 톱니바퀴 아이콘을 클릭합니다.
PHP를 선택합니다.
launch.json이라는 파일이 생성되므로 아래와 같이 편집합니다.
dockerProject/.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
+ "pathMappings": {
+ "/var/www/html": "${workspaceRoot}/web",
+ },
- "port": 9000
+ "port": 9001
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
스텝 실행으로 멈추고 싶은 부분에 브레이크 포인트를 붙입니다.
F5 키를 눌러 디버깅을 시작합니다.
브라우저에서 localhost:8080에 액세스합니다.
그러면 브레이크 포인트를 붙인 부분에서 정지하고 디버깅을 할 수 있습니다.
이제 Laradock을 사용하여 PHP 실행 환경을 만들 수있었습니다.
Reference
이 문제에 관하여(Laradock을 사용하여 Docker + CentOS + Apache + PHP7 + PostgreSQL 환경을 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rema424/items/ba6e6f440c415fed7b0c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)