ユーザ用ツール

サイト用ツール


it技術:php

php

Tips

curlが有効にならない

phpMyFAQを導入する際に「ext/curl」が不足しているエラーが出て先に進めない。
php.iniでcurlを正しく設定してある。

php.ini
extension=curl

それでも「var_dump(extension_loaded('curl'));」を実行すると結果はfalse
PHPでcurl関数を呼び出せないときの対処法

対応

次のファイルだけをapacheのbinに入れて再起動すると動作した。

  • libssh2.dll
  • nghttp2.dll
  • libcrypto-1_1-x64.dll
  • libssl-1_1-x64.dll

var_dump(extension_loaded('curl'));を実行すると結果はtrue

Windows10 + PHP7.2+Apache2.4でcurlを有効にする

Deprecate curly brace syntax for accessing array elements and string offsets

PHP 7.1→7.4にバージョンアップした際に、dokuwikiを動かすと警告メッセージが出る。

【PHP7.4】波括弧による文字列|配列アクセスが削除される

PHPは、配列要素と文字列オフセットへのアクセスに、角括弧と波括弧の両方を使用することができます。しかし、これら両方の構文のサポートは、混乱をもたらす可能性があります。
よって、波括弧の使用箇所はサポート外として警告メッセージが出る。

init.php
if($path{0} == '/'){if($path[0] == '/'){

SQL Serverの接続

php.iniの設定

php7.4ならphp_sqlsrv_74を選択、phpinfo()のThread Safetyが「enabled」ならスレッドセーフ版を使用する。Apacheはスレッドセーフ版、IISは非スレッドセーフ版でもいい。

ドライバーをダウンロードして、解凍した中からdllをphp内のextフォルダに入れる。

スレッドセーフphp_sqlsrv_74_ts_x64.dll,php_pdo_sqlsrv_74_ts_x64
非スレッドセーフphp_sqlsrv_74_nts_x64.dll,php_pdo_sqlsrv_74_nts_x64
php.ini
extension=php_pdo_sqlsrv_74_ts_x64.dll
extension=php_sqlsrv_74_ts_x64.dll

PHPからSQL Serverに接続してみよう

エラー ODBC Driver

This extension requires the Microsoft ODBC Driver for SQL Server.
Access the following URL to download the ODBC Driver for SQL Server for x64
https://go.microsoft.com/fwlink/?LinkId=163712

System requirements for the Microsoft Drivers for PHP for SQL Server

【対応】
ODBCドライバーのインスールが必要。
ODBCドライバーのダウンロード先

エラー SSL Provider

[ODBC Driver 18 for SQL Server]SSL Provider

ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086]

【対応】
接続情報に「TrustServerCertificate=true」を追加する。

ログインエラー

ログインするユーザーがいない。

【対応】 SQL Server側で新規にデータベース「NET_FAQJA」を作成、セキュリティのログインのTEST_SUPPORTプロパティにあるユーザーマッピングで「NET_FAQJA」にチェックを付ける。

test.php
<?php  
/* Specify the server and connection string attributes. */  
$serverName = "127.0.0.1, 1433";  
$connectionInfo = array( "Database"=>"NET_FAQJA", 'UID' => 'TEST_SUPPORT', 'PWD' => 'TEST_SUPPORT', 'CharacterSet' => 'UTF-8', 'TrustServerCertificate' => true);  
 
/* Connect using Windows Authentication. */  
$conn = sqlsrv_connect( $serverName, $connectionInfo);  
if( $conn === false )  
{  
     echo "Unable to connect.</br>";  
     die( print_r( sqlsrv_errors(), true));  
}  
sqlsrv_close( $conn);  
?>
it技術/php.txt · 最終更新: 2022/09/16 17:56 by yajuadmin