Typo3: „Cannot find tslib“ and „Lock file could not be created“

Recently I had to move my Typo3 Installation from one server to new one. It should be easy to move. However the reality is another one 😉 In specialty if you are using Plesk.

After I used the MigrationManager of Plesk the site wasn’t running. I got the message

Cannot find tslib/. Please set path by defining $configured_tslib_path in index.php.

A quick search showed up that the symbolic link of the global typo3 installation isn’t working. I’ve checked that but it was correct. But then I got an idea: The old installation was running on Plesk Version 9 and the new one on Version 11. In Version 9 you hat to the open_basedir youself via the vhost.conf file. Since Version 11 you can (and have to) do this via the web interface. So I changed the php setting of the subscription to {WEBSPACEROOT}/:{TMP}/:/srv/typo3 (where /srv/typo3 is the path to my global Typo3 installation) and I got a step further.

Next try to load the site. After a while just a blank page showed up. Quick view into the error_log show this message

Lock file could not be created
Exception thrown in file ...

This is an easy one: Just adjusted the permissions of you typo3temp directory and everything went fine.

Typo3 cli_dispatch.phpsh scheduler Exception ‚localconf.php is not found!‘

After a system update or something else it may happen you get an Exception of your Typo3 Installation. It’s not always the main site but can also could be your „cron“ scripts (cli_dispatch.phpsh)

Fatal error: Uncaught exception 'Exception' with message 'localconf.php is not found!' in ../t3lib/config_default.php:707
Stack trace:
#0 ../typo3/sysext/cms/tslib/index_ts.php(128): require()
#1 ../index.php(84): require('...')
#2 {main} thrown in ../t3lib/config_default.php on line 707


or

Fatal error: Uncaught exception 'Exception' with message 'localconf.php is not found!' in ../t3lib/config_default.php:707
Stack trace:
#0 .../typo3/init.php(206): require()
#1 .../typo3/index.php(63): require('...')
#2 {main} thrown in .../t3lib/config_default.php on line 707

Of course the line numbers could be different 😉
So …. what’s the problem? It so simple that you just forget how you solved it the last time. „Last time? I don’t remember that there was a last time!?“. But you did!
Just check the php.ini and ensure that safe_mode = Off is set. Furthermore check the open_basedir setting. Ensure that (when used at all) all needed directories are set.

Typo3: indexed_search and external files (like pdf, doc …)

I’ve tried to get indexed_search in Typo3 to work. If you try to do this the first time it isn’t really easy.

After the basic setup the normal search was fine. However external documents like pdf and winword were not being indexed. Of course I’ve installed the needed tools and checked the path to them many times. Sure I’ve check if that these tools (pdftotext, catdoc) are running fine on command line.

But it took me hours to realize why it wasn’t running after all. The open_basedir restriction of php!
The extension indexed_search first checks if the program exists via the is_file method. If you installed the programs to the default path /usr/bin you are in trouble now. It’s no problem to execute the program via php but the function is_file will fail. So indexed_search thinks it’s not install and will not index pdf or any other external files.

Now you’ve several options. First of all you could add /usr/bin to the open_basedir path. Not a good idea at all! Second you could modify the extension not to check the files but just run the programs. Not so good either since it will break after an update of your Typo3 installation. Third of all you could copy the programs to your existing open_basedir path. Then adjust the configuration of indexed_search where to find the programs and it’s working like a charm …

Typo3 and log_setTSlogMessage

While trying to get indexed_search in Typo3 to work I’ve discoverd a lot of log_setTSlogMessage functions in the code. I ask myself where to find the output of these function. I digged around and found a reference to $GLOBAL['TT']. Ok. Not much better. Again I had to dig around. Finally I got a simple answer: The Admin Panel! 🙂
So just enable the admin panel and go to TypoScript and enable Display messages. Reload the page and you’ll the logs.

PHP and APC / PECL

After installing the pear pecl extensions I got a strange error:
PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0

This problem is very easy to fix. Ensure that you php.ini contains apc.shm_size=128M and NOT apc.shm_size=128. The M makes the differences.

Plesk and „qq trouble in home directory“

After upgrading Plesk from an old, but working, 8.6.0 to a recent version everything worked fine afterwards. Then I did the „mistake“ and enabled the build-in greylisting feature. Out of sudden I wasn’t able to send a mail anymore. I got a „qq trouble in home directory“ error message.

Hmm … Bad!. Ok. First I checked the permissions of the qmail installation. All fine. So I searched around. A lot of people out there are having the same problem. It’s the greylisting feature! Plesk qmail thinks we are an extern sender and routes even local domains through the greylist. Bump!

So you may think: „A lot of people are having the same problem, so there is a quick solution!“. Nope – There isn’t! It take some a lot of hours to find a solution by myself. At all it’s easy – if you know how 🙂

So what to do? Since Plesk Version 9.0 you can choose your MTA between qmail and postfix. However the postfix implementation is causing more problems then the qmail one. So I still use qmail. Via the autoinstaller script of Plesk you can easily switch between these two MTAs. And that’s was the solution of my qmail „qq trouble in home directory“ problem.
Start the autoinstaller /usr/local/psa/admin/bin/autoinstaller. On the component list choose Postfix mailserver and continue. The script will uninstall the qmail mailserver and install the postfix mailserver. All current mails will keep in place. So don’t worry (however a backup is always and every time a good idea :-)). The completion of the script takes several minutes. After that do the same thing but select Qmail mailserver. For me it worked fine and the „qq trouble in home directory“ error was gone.

Quick ToDo:

  • Start /usr/local/psa/admin/bin/autoinstaller
  • Select Postfix mailserver as mailserver
  • Finish the installation
  • Start /usr/local/psa/admin/bin/autoinstaller
  • Select Qmail mailserver as mailserver
  • Finish the installation
  • Done

How to speed up page rendering?

Today just a shorty: Enable gzip!

When using php set output_handler = ob_gzhandler. So every php request will be compressed.

Also you can use the defalte module of you apache2. In that case javascript, pure html and css will also be compressed.

  • activate the module a2enmod deflate
  • add some lines to you configureation (vhost or globle whatever you want) (global in this case)
    <Location />
    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/php text/css text/js text/javascript text/javascript-x application/javascript application/x-javascript text/x-js
    </IfModule>
    </Location>
  • Don’t forget to restart the server! Do not just reload the configuration!

PS: To check the content-type on a linux command line of a web page try
lynx -head -dump http://www.google.com
PPS: Website to check the state of compression: http://www.gidnetwork.com/tools/gzip-test.php
PPS: Here is another website to check: https://www.websiteplanet.com/webtools/gzip-compression. (Tip by a reader of the blog)

Plesk Migration Manager and Mailman

When you are moving to a new Plesk Server the Migration Manager of Plesk is a cool feature. It helps you to keep out of a lot of trouble. But unfortunately it also add some trouble.
When you try to migrate a Mailman maillinglist the Migration Manager first adds a new list with default settings and then add user per user to list. But there is on heavy pitfall: The defaults say to send a welcome message to every new user. *bumm*!
So every user will get again (or the first time :-)) the welcome message of the list. In general this isn’t a good idea.

To avoid this problem we need to change the defaults of the Mailman settings. We need to add a line to the file mm_cfg.py Usually you’ll find the file at /usr/lib/mailman/Mailman. Edit the file and add

DEFAULT_SEND_WELCOME_MSG = No

If you like you can take a look at the file Defauls.py in the same directory. There you’ll find all other defaults. If you want to override one of these settings you just need to add an other line to the mm_cfg.py file.

Typo3 on Strato webhoster

If you ever need to install a Typo3 4.3 or higher on a Strato you may encounter a problem with ImageMagick. First of all you need an package which supports ImageMagick! If you package supports it then you may have the problem that ImageMagick Version 4.2.9 will not work and gives you that error: „There was no result from the ImageMagick operation„.

To solve this go to the All Configuration section of your Typo3 4.3 or higher installation. Search for [im_stripProfileCommand] and set it to blank.

That’s it!

After hibernation windows awakes when moving the mouse

You put your computer into hibernation. Everything seems to fine and you went off. When you come back your PC is running. How? Mostly since you have a cordless mouse which sends from time to time a signal. Or you just moved the mouse.
After checking all BIOS settings you were not able to find the reason. This is because the main reason for the problem is your OS: Windows 7 or Windows Vista. They have their own build-in power management.  So you need to change the settings there.

So, if you have the problem that your computer awakes when moving the mouse after the hibernation there is a simple solution:

  • Open the „Device Manager“
  • Collapse „Mice and other pointing devices“
  • Select your mouse
  • Right click and select „Properties“
  • Switch to the „Power Management“ tab
  • Deselect „Allow this device to wake the computer“
  • Done!