Goal: install php modules for memcache and memcached on Plesk Onyx 17 to improve performance of PHP scripts on your server.
Category Archives: web
CSS: perfect indented line ul/li around a floating image
Quote
Have you ever tried to position a list on the right side of a left-floating image? Here is a nearly(?) perfect solution.
Symfony2: InactiveScopeException and request
Error message: You cannot create a service (“request”) of an inactive scope (“request”).
[Symfony\Component\DependencyInjection\Exception\InactiveScopeException] You cannot create a service ("request") of an inactive scope ("request").
This message is written, when you’re invoking a command on the command line, e.g.
php app/console assetic:dump
Reason: you are using a request object, but this is not available on the command line / cli
The error was in my case that I used an object in my service configuration that references the request object (MobileDetectBundle).
Solution: remove reference for command line
Step 1 was to use a setter for the reference
Step 2 was to create a special compiler pass in the bundle configuration
Source code (based on https://github.com/suncat2000/MobileDetectBundle/commit/73e78070ca7340c9774c19dde3c8460435b0e284 – thanks suncat2000!)
<?php namespace Acm\DemoBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; /** * CLI listener */ class CLIListenerPass implements CompilerPassInterface { /** * If CLI, when remove setMobileDetector method from definition mobile_detect.twig.extension * @param ContainerBuilder $container */ public function process(ContainerBuilder $container) { if (php_sapi_name() == "cli") { $definition = $container->getDefinition('acme_demo.extension.my_service'); $definition->removeMethodCall('setMobileDetector'); } } }
Capifony symfony 2.1 and composer on Mac
Symfony 2 and capifony are great – together they allow the easy deployment of great web applications. Symfony2.1 switched to composer – another great tool. But unfortunately this switch might result in a problem.
FastCGI, PHP, Symfony2 with basic auth not working
Just had a little issue that seams to be common in the web. Got a new server with Plesk 11 (sorry for that) and it took me nearly a day to get it working and setup for capifony deployment of Symfony2 projects.
The typical issues with not correctly set access rights for the root directory of the project (should be 755), manually editing of parameters.ini and other stuff was ok. But what nearly killed me was that my Plesk installation always returned a 503 when running PHP as apache module. FastCGI was default and seemed to be working, so I went with this.
Unfortunately this did not work with the admin interface that was running in a “virtual” subdirectory. It was not possible to login. In the background it is using the default, simple, boring and potentially unsecure basic authentification.
Did you know that there is a problem with FastCGI, Symfony2 and basic authentification? I did not, but know I know. It is fixed in the current release (2.0.16) – which is good. But unfortunately there is a RewriteRule that has to be written inside your web/.htaccess. Check the comment in src/symfony/src/Symfony/Component/HttpFoundation/ServerBag.php:
* php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default * For this workaround to work, add this line to your .htaccess file: * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] * * A sample .htaccess file: * RewriteEngine On * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Unfortunately, I tried a different line that was written in the ticket above:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
This did not work, but resulted in 401 results for all requests. Just remove the ,l which means that this .htaccess file will be left.
So if you are running a Symfony2 project with FastCGI, add this line to your web/.htaccess file:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]