====== php ====== ===== Tips ===== ==== curlが有効にならない ==== phpMyFAQを導入する際に「ext/curl」が不足しているエラーが出て先に進めない。\\ php.iniでcurlを正しく設定してある。 extension=curl それでも「var_dump(extension_loaded('curl'));」を実行すると結果はfalse\\ [[https://took.jp/post-879/|PHPでcurl関数を呼び出せないときの対処法]] === 対応 === 次のファイルだけをapacheのbinに入れて再起動すると動作した。 * libssh2.dll * nghttp2.dll * libcrypto-1_1-x64.dll * libssl-1_1-x64.dll var_dump(extension_loaded('curl'));を実行すると結果はtrue [[https://qiita.com/gyoniku-daisuki/items/9a9fb240726103bbb29e|Windows10 + PHP7.2+Apache2.4でcurlを有効にする]] ==== Deprecate curly brace syntax for accessing array elements and string offsets ==== PHP 7.1→7.4にバージョンアップした際に、dokuwikiを動かすと警告メッセージが出る。 [[https://qiita.com/rana_kualu/items/6ac293f238c4e6000720|【PHP7.4】波括弧による文字列|配列アクセスが削除される]] PHPは、配列要素と文字列オフセットへのアクセスに、角括弧と波括弧の両方を使用することができます。しかし、これら両方の構文のサポートは、混乱をもたらす可能性があります。\\ よって、波括弧の使用箇所はサポート外として警告メッセージが出る。 if($path{0} == '/'){ ↓ if($path[0] == '/'){ ==== SQL Serverの接続 ==== === php.iniの設定 === php7.4ならphp_sqlsrv_74を選択、phpinfo()のThread Safetyが「enabled」ならスレッドセーフ版を使用する。Apacheはスレッドセーフ版、IISは非スレッドセーフ版でもいい。 ドライバーを[[https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?redirectedfrom=MSDN&view=sql-server-ver16|ダウンロード]]して、解凍した中から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| extension=php_pdo_sqlsrv_74_ts_x64.dll extension=php_sqlsrv_74_ts_x64.dll [[https://atmarkit.itmedia.co.jp/ait/articles/1810/23/news023.html|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 [[https://go.microsoft.com/fwlink/?LinkId=163712|System requirements for the Microsoft Drivers for PHP for SQL Server]] 【対応】\\ ODBCドライバーのインスールが必要。\\ [[https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16 |ODBCドライバーのダウンロード先]] === エラー SSL Provider === [ODBC Driver 18 for SQL Server]SSL Provider [[https://stackoverflow.com/questions/71688125/odbc-driver-18-for-sql-serverssl-provider-error1416f086|ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086]]] 【対応】\\ 接続情報に「TrustServerCertificate=true」を追加する。 === ログインエラー === ログインするユーザーがいない。 【対応】 SQL Server側で新規にデータベース「NET_FAQJA」を作成、セキュリティのログインのTEST_SUPPORTプロパティにあるユーザーマッピングで「NET_FAQJA」にチェックを付ける。 "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.
"; die( print_r( sqlsrv_errors(), true)); } sqlsrv_close( $conn); ?>