Nginx PHP (5.5.1) FPM strange errors - nginx

At the moment I'm experimenting with Nginx.
I got it working using the newest version installed via repo.
Everything works fine with Nginx standalone.
Then I installed PHP 5.5.1 via sources that I can run different versions and not affection the production webserver and php version. (Nginx was running on another port then 80 for testing purposes.)
Everything went fine. Compiled PHP 5.5.1 without errors, installed it, started PHP-FPM and changed the Nginx config to call PHP FPM when needed. My first test website worked perfectly with this version. Then I tried to get running another website I created. I've changed only the document root for that.
Then I got very strange errors:
PHP Fatal error: Call to undefined function apache_request_headers() in [...]
Yes, not real an error... So I removed the function to test if the website works then smoothly when removing a function, which isn't available in PHP-FPM/FastCGI Mode.
Then another error showed in the logs when trying again:
PHP Parse error: syntax error, unexpected ''INSERT ' (T_ENCAPSED_AND_WHITESPACE) in [...]
After commenting out this variable (only for testing) another error occured:
PHP Parse error: syntax error, unexpected end of file, expecting ')' in [...]
So I don't know why those 2 errors occured. The first one is of course of the changed system; function not available.
So my main question is: Why is my code causing these errors with PHP 5.5.1 in FPM mode?
The website works perfectly on my local dev server (PHP 5.4 and Apache) and production Server (Apache 2.2 and PHP 5.4)... I have NO code changed (except config files for db etc). So is someone knowing what can cause this issue?
If you need more information, just ask!
Edit:
Error 1:
$sql = 'INSERT INTO ' . TABLE . '
(name)
VALUES
("' . $name . '")
ON DUPLICATE KEY UPDATE name=VALUES(name)';
Error 2:
'TEXT' => text::parse($row['text']),

Problem solved.
PHP rebuilt via source and used newest version (5.5.2).

Related

How to fix 'Uncaught PHP Exception Twig_Error_Loader: Unable to find template' on Symfony 3.4?

I deployed a symfony 3.4 project from my local machine (Windows 10) to a cloud server (Digital Ocean) based on Ubuntu.
I spent 2 days trying to resolve this (i think) routing problem:
"request.CRITICAL: Uncaught PHP Exception Twig_Error_Loader..."
Locally, on localhost with XAMPP, it works perfect.
The project runs ok on the login (is like a backend user app), with the register ok But when it tries to pass the login, it needs to load the initial dashboard with some includes (like nav_side.html.twig) and the server response is error 500.
How can i fix it?
Thanks a lot for your response...i'm a little bit desperate. :)
I made composer update, i deleted the cache folder, but the error is still there.
request.CRITICAL: Uncaught PHP Exception Twig_Error_Loader: "Unable to
find template "Backe ndBundle:includes:nav_side.html.twig"
(looked into: /var/www/onecup/app/Resources/views,
/var/www/onecup/vendor/s
ymfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form) in
"BackendBundle:Dashboard:index.html.twig" at line 7." at
/var/www/onecup/vendor/twig/twig/lib/Twig/Loader/Filesystem.php line
234 {"exception":"[object] (Twig_Err or_Loader(code: 0):
Unable to find template \"BackendBundle:includes:nav_side.html.twig\"
(looked into: /var/www/ onecup/app/Resources/views,
/var/www/onecup/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form)
in \"BackendBundle:Dashboard:index.html.twig\" at line 7. at
/var/www/onecup/vendor/twig/twig/lib/Twig/Loader/Fil
esystem.php:234)"} []
#Flying was right: examine your code and try to find possible case inconsistences in directory / filenames. e.g. "file" and "File". Windows filesystem is case-insensitive, but Ubuntu filesystem is case-sensitive.
So, i changed the Includes to includes and that's all.
Thanks a lot!! :)

WordPress on MAMP giving 'Error 500' with internet connection

I have WordPress installed on a MAMP server. After installing some plugins I suddenly got an 'Error 500' but only when my MacBook had wifi connected.
Turning the wifi off fixes the issue, but turning it back on or uploading to a live server causes the issue to return.
After looking through the PHP log, I got:
PHP Parse error: syntax error, unexpected '<', expecting end of file
in /private/var/tmp/theme_temp_setupGlYc25 on line 2
and:
PHP Warning: Use of undefined constant REQUEST_URI - assumed
'REQUEST_URI' (this will throw an Error in a future version of PHP)
in /Applications/MAMP/htdocs/wordpress/wp-
content/themes/THEME_NAME/functions.php on line 48
Uninstalling the plugins that I had recently installed did not fix the issue, nor did re-installing MAMP or moving the installation to a new localhost.
The error is from a WordPress plugin downloaded from an untrusted source.
On installing the plugin, it wrote a number of lines of code in the functions.php file within the theme I was using which was throwing the 'Error 500' as it tried to connect to a server at 'spekt.cc'.
By following the PHP log; googling the Parse error and PHP warning, I saw a post on Medium from someone saying a similar thing happened to them with WordPress attempting to connect to 'spekt.cc'.
Using 'ack' in Homebrew, I searched my WordPress directory and found the affected files. (It had been installed on all themes within the directory)
After removing this PHP code it had inserted and removing the affected plugin, my WordPress is working fine again.

symfony 2.8 debug fatal error double message

Environment: Symfony 2.8.1 with XAMPP Version 5.5.24 on Windows 7.
If I trigger a fatal error in a controller, anything as simple as $array = ; in production environment, I'm getting a default php error:
Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\tgsupport-test\src\AppBundle\Controller\DefaultController.php on line 16
followed by symfony custom error page message. Obviously I'd want to avoid to show eorr info in production.
Moreover in prod.log I see a double critical error: under php.CRITICAL and request.CRITICAL. Is really useful to show the same error twice?
I'm using default configuration, indeed I just installed default framework without any custom setting and I triggered my error in AppBundle/DefaultController, so I was wondering if I'm missing anything.
I missed a php.ini configuration to avoid to display error messages in page.

Symfony production environment throws 500 error: Doctrine\ORM\ORMException 'Unknown Entity namespace alias 'DSBlogBundle'

I'm learning Symfony2, really cool stuff. But I do run into some trouble when I want to try and visit the production environment. I have followed the Symblog Tutorial that is located here: http://tutorial.symblog.co.uk/
I have cleared the cache and I visit http://symfony.dev/ I have running locally. The page remains totally blank and this error is in the log:
Fatal error: Uncaught exception 'Doctrine\ORM\ORMException' with message 'Unknown Entity namespace alias 'DSBlogBundle'.'
in /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php:236
Stack trace:
#0 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Configuration.php(194): Doctrine\ORM\ORMException::unknownEntityNamespace('DSBlogBundle')
#1 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php(554): Doctrine\ORM\Configuration->getEntityNamespace('DSBlogBundle')
#2 /Applications/MAMP/htdocs/symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php(194): Doctrine\ORM\Mapping\ClassMetadataFactory->getFqcnFromAlias('DSBlogBundle', 'Blog')
#3 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(295): Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor('DSBlogBundle:Bl...')
#4 /Applications/MAMP/htdocs/symfony/vendor in /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php on line 236
What I don't get is that the 'Unknown Entity namespace alias 'DSBlogBundle' is perfectly "known" in the development environment. Does anyone know what I am missing? Any help is much appreciated! Thank you!
Couple possibilities I can think of:
1) If your code functions properly in the development environment, then it could be a cache problem and/or a permissions problem. Make sure your files are readable by the user/process associated with your web server and make sure the prod cache directory is writable by that user so it can generate the necessary files. What I generally do is run the clear cache console command AS that user to avoid unexpected cache problems, like this (on linux):
sudo -u www-user php app/console cache:clear --env=prod
If you're developing on linux, you must be logged in as either root or another user with administrator privileges to run a command as a user other than yourself.
2) You may have configurations defined in the dev environment that don't exist in the prod environment. Double check the files in your app/config folder. My first guess would have been that the DSBlogBundle wasn't correctly defined in app/AppKernel.php but I believe that's environment independent so it couldn't work in dev but not prod.

Laravel 4 : Running Migration on a VM and getting a mbstring / Symfony error

i am running a laravel project on a Puphpet VM set up (CentOS 6.4 Nginx) and all has been well but I created a new migration file and then went to run it
[code]php artisan migrate[/code]
Then got the following error message:
PHP Fatal error: Call to undefined function Symfony\Component\Console\mb_detect_encoding() in /vagrant/vendor/symfony/console/Symfony/Component/Console/Application.php on line 721
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Call to undefined function Symfony\\Component\\Console\\mb_detect_encoding()","file":"\/vagrant\/vendor\/symfony\/console\/Symfony\/Component\/Console\/Application.php","line":721}}[/code]
Now looking around etc i see people refer to the mbstring needs to be installed etc but not sure how to go about this on a VM set up, and is this an update issue as i have managed ti run migration for a while on the VM but today nothing other than the error?
i have got access to the php.ini file and uncommented the following via Vim and set them both to pass, but nothing still even after a server restart.
mbstring.http_input = pass
mbstring.http_output = pass
Any advice appreciated.
As said i am using Puphpet/Vagrant using CentOS 6.4 with Nginx, on a MAC OSX 10.7 && 10.8 running PHP5.5
You should try to install mb_string, something like:
yum install php-mbstring
Then load the .so in your php configuration
I was facing the same error today. In my case the problem was that I had a separate php.ini for CLI, where the extension was not enabled.
After adding:
extension=php_mbstring.dll
to php_cli.ini everything worked fine.

Resources