質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

受付中

pdo_sqlsrvがssl関連のエラーを出す

cashico
cashico

総合スコア16

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

0回答

0評価

0クリップ

604閲覧

投稿2022/03/16 02:51

docker-composeでnginxとphp-fpmにpdo_sqlsrvを入れたのを使ってsqlserverと通信したいです。
phpinfo()ではpdo_sqlsrvとsqlsrvが入っているのが確認できるのですが、実行すると以下のようなエラーが出ます

SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:self signed certificate]

構成をapacheからnginx+php-fpmに乗り換えたのですが、
apacheの時には普通に接続できていました

ファイル

test.php

php

<?php $db_address = '***.***.***.***'; $db_name = 'testdb'; $db_user = 'testuser'; $db_pass = 'pass123@'; try{ $db = new PDO("sqlsrv:server=$db_address;database=$db_name",$db_user, $db_pass); }catch(PDOException $e){ echo $e->getMessage(); }

docker-compose.yml
参考にしたサイト
*alpineやバージョン指定はしていません

version: '3' volumes: php_sockert: services: nginx: container_name: test_nginx image: nginx:stable ports: - 28000:80 volumes: - ./html/:/var/www/html/ - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - php_sockert:/var/run php_fpm: container_name: test_php_fpm build: ./php/ volumes: - ./html/:/var/www/html - ./php/zzz-www.conf:/usr/local/etc/php-fpm.d/zz.conf - php_sockert:/var/run

php-fpmのDockerfile
参考にしたサイト様のコメント(#)は残しています
*2020年版だったのでいくつか変更しています

# Install basic packages and extensions RUN apt update RUN apt install -y zlib1g-dev libzip-dev wget gnupg vim tree RUN docker-php-ext-install zip opcache # # Install SQL Server extensions RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - # RUN curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list RUN curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list RUN apt update RUN ACCEPT_EULA=Y apt install -y msodbcsql18 mssql-tools18 RUN echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc RUN . ~/.bashrc RUN apt install -y unixodbc-dev libgssapi-krb5-2 RUN pecl install sqlsrv RUN pecl install pdo_sqlsrv RUN docker-php-ext-enable sqlsrv RUN docker-php-ext-enable pdo_sqlsrv

default.conf

server { listen 80; server_name localhost; root /var/www/html; location / { root /var/www/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root /var/www/html/; fastcgi_pass unix:/var/run/php7-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

nginx.conf

user www-data; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; autoindex on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }

環境

windows 10 pro

Microsoft SQL Server 2019
Docker Desktop 4.6.0
(同じマシン内)


windows, sqlserver, ssms, nginx, ssl 全部知識0なので的外れな情報ばかりかもしれないですが、教えていただけるとありがたいです

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。