Doctrine OCI8 charset behavior between php-cli and php-fpm

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

My Oracle database is in ISO8859-1 (not by choice).

I'm struggling with segfault from php-fpm for a couple of days now. To dig out the source of it I've set two parallel environnements with the following ENV variable:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15

Php version: 5.6.12

php-cli

The development server is started with:

php -S localhost:8081 web/app_dev.php

php-fpm

Pool configuration extract:

[www]
env[NLS_LANG] = AMERICAN_AMERICA.WE8ISO8859P15
listen = 127.0.0.1:9000

Doctrine dbal

charset: null

Now, I'm requesting a JSON api with special characters:

  • with php-cli json_encode errors Malformed UTF-8 characters, possibly incorrectly encoded(seems to be a valid error, data is not in utf8)
  • with php-fpm everything works but special characters are replaced (é becomes e) Why?

By trying to fix the php-cli, which seems more stable (lots of random 502 errors with php-fpm) I have two options:

  • Tweaking JsonResponse.php to encode everything from ISO8859-1 to UTF-8 (ugly)
  • Setting the client charset to UTF8

The second solution seems to be the one and the doctrine configuration is now:

charset: UTF8
  • php-cli now works as expected and everything is wonderful!
  • php-fpm fails with Oracle related errors:

[2015-08-25 13:56:54] php.DEBUG: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries

[2015-08-25 13:56:54] php.DEBUG: oci_connect(): Error while trying to retrieve text for error ORA-12715

Where ORA-12715 is "invalid character set specified".LD_LIBRARY_PATH is not the issue here.

What is going wrong here? Is php-fpm correct about those errors? How may I fix this to get the same behavior between php-cli and php-fpm?

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.

tuteehub community

Join Our Community Today

Ready to take your education and career to the next level? Register today and join our growing community of learners and professionals.

tuteehub community