目次
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
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
エラー 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); ?>