Bild des Benutzers torstenzenk

Drupal - APC läuft nicht unter PHP5.5? Doch!

php-apc, php5-apc, php5-apcu, Debian, PHP5.4, PHP5.5, Drupal

Nach dem ich heute für ein Projekt mal die Sourcen für PHP 5.5.x unter Debian für ein Drupalprojekt installiert habe, fiel mir auf das php-apc nicht installiert werden konnte. Ein Downgrade auf PHP 5.4.x über Aptitude würde funktionieren, ABER das sollte nicht die Lösung sein. Nach einer ziemlich zeitintensiven Suche in allen möglichen Foren, die alle behaupteten APC läuft nicht unter PHP5.5 las ich den Tip eines Users mit Verweis auf APCU. Damit geht die Installation von APC unter PHP5.5 sehr einfach und Drupal erkennt es auch. So geht´s:

1. Update der sources.list
sudo apt-get update

2. Installation von APCU
sudo apt-get install php5-apcu

3. Die richtige php.ini Datei lokalisieren und öffnen
locate php.ini && sudo vi /path/to/php.ini

4. Den nötigen Eintrag darin vornehmen
apc.rfc1867 = 1

Apache neu starten. FERTIG!

Bild des Benutzers torstenzenk

Intregrating ActiveCollab into Drupal7

Intregrating ActiveCollab into Drupal7

As ActiveCollab is a great tool for planning and getting projects done and , of course, Drupal is THE CMS i work with i searched for a solution to maybe integrate an exisiting Active Collab - system into a new designed Knowledgebase that was to be done with drupal7 and found this handy service.
You can create processes with different types of webservices being integrated into one another. BUT as drupal is not yet supported they started a voting for drupal to be integrated in their service. So if you like these two applications please go there and VOTE for drupal:
https://zapier.com/zapbook/activecollab/drupal/

As the ActiveCollab module at drupal.org is in a 6-dev state and Drupal8 is about to come, this seems to be the best way to go.

Bild des Benutzers torstenzenk

JSMin PHP Extension für Drupal7 auf Debian Server installieren

 JSMin PHP Extension für Drupal7 auf Debian Server installieren

Heute war mal wieder Optimierungstag für diverse Drupal-Projekte. Dabei setzte ich das erste mal erfolgreich das Advanced CSS/JS Aggregation Modul ein. Nach ein bißchen Finetuning wandelte sich die von YSlow getestete Seite von einem durchschnittlichen C in ein schönes A.
Allerdings gab es noch immer Verbesserungen die ich umsetzen wollte und dazu gehörte die Installation der pecl-jsmin Library denn schliesslich sagte mir Drupal in der Advagg-Konfiguration unter admin/config/development/performance/advagg/js-compress:

You can use the much faster C version of JSMin by installing the JSMin PHP Extension on this server.

Okay, auf geht´s dachte ich mir und fand etwas weiter unten auf der Downloadseite der pecl-jsmin library eine Standard-Installationsanleitung die ich als Ausgangsbasis für dieses HowTo genutzt habe.

1. pecl install jsmin-beta

downloading jsmin-0.1.1.tgz ...
Starting to download jsmin-0.1.1.tgz (7,861 bytes)
.....done: 7,861 bytes
6 source files, building
running: phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
shtool at '/tmp/pear/temp/jsmin/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.

If the command failed with 'phpize: not found' then you need to install php5-dev packageYou can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed

Das lag daran das mein tmp Verzeichnis einige Sicherheitseinschränkungen hat und dort z.B. nichts ausgeführt werden kann. Also musste ein Verzeichnis her in dem executed werden darf und Pecl sollte wissen wo sein neues Temp-Verzeichnis ist

2. sudo mkdir /jsmin && sudo chmod 770 /jsmin && sudo chown ich.root /jsmin

3. sudo pear config-set temp_dir /jsmin/
config-set succeeded

Vorher noch ein kurzer Check ob shtool installiert ist:

4.sudo apt-get install shtool

Reading package lists... Done
Building dependency tree
Reading state information... Done
shtool is already the newest version.
shtool set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Alles klar, dann kann jetzt das jsmin Paket installiert werden.

5. sudo pecl install jsmin-beta

downloading jsmin-0.1.1.tgz ...
Starting to download jsmin-0.1.1.tgz (7,861 bytes)
.....done: 7,861 bytes
6 source files, building
running: phpize .....................................

Build process completed successfully
Installing '/usr/lib/php5/20100525/jsmin.so'
Installing '/usr/include/php5/ext/jsmin/php_jsmin.h'
install ok: channel://pecl.php.net/jsmin-0.1.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=jsmin.so" to php.ini

6. sudo vi path/to/php.ini
extension=jsmin.so

eintragen und Apache neu starten. Jetzt kann man unter admin/config/development/performance/advagg/js-compress diesen schönen Eintrag sehen:

JSMin is the C complied version and is about 25 times faster. Recommend using it.

 

 

Bild des Benutzers torstenzenk

Use the search_api_solr Module with OpenAtrium and Apache Solr on Debian Wheezy

Use the search_api_solr Module with OpenAtrium and Apache Solr on Debian Wheezy

If you have set up the latest search_api_solr Module with OpenAtrium and want to use Apache Solr on Debian Wheezy here is my way to do it. I have tried to make the latest Solr 4.x work a few times without success. So i decided to use the latest 3.x version of solr and it worked smoothly. To make it start automatically on reboot this is the way to make it work:

Downloads you need for this tutorial:
http://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.zip

#!/bin/bash

1.extract the zip file to a directory outside of yout webroot directory and jump into it:
unzip apache-solr-3.6.2.zip
cd /apache-solr-3.6.2/example

2.Check if Java is installed and manually start Solr
which java
/usr/bin/java

3. Install Daemon on Linux
sudo apt-get install daemon

4. Copy the following files into the solr conf directory and before that delete the exisiting ones there
cd /solr/apache-solr-3.6.2/example/solr/conf
sudo rm -rf elevate.xml mapping-ISOLatin1Accent.txt protwords.txt schema_extra_fields.xml schema_extra_types.xml schema.xml solrconfig_extra.xml solrconfig.xml solrcore.properties stopwords.txt synonyms.txt
cd /openatrium/profiles/openatrium/modules/contrib/search_api_solr/solr-conf/3.x
sudo cp elevate.xml mapping-ISOLatin1Accent.txt protwords.txt schema_extra_fields.xml schema_extra_types.xml schema.xml solrconfig_extra.xml solrconfig.xml solrcore.properties stopwords.txt synonyms.txt /apache-solr-3.6.2/example/solr/conf

5. Try to start Solr
cd /apache-solr-3.6.2/example
/usr/bin/java -jar start.jar

If that is a success go on with these steps

6. Create a directory for the solr logfile and create solr.log there
sudo mkdir /var/log/solr/
sudo vi solr.log

7.Create the startup script /etc/init.d/solr and copy this code into that file: sudo vi /etc/init.d/solr
########################## Script Start ########################################
<code>#!/bin/sh

start () {
    echo -n "Starting solr..."

    # Start daemon
    daemon --chdir='/apache-solr-3.6.2/example' --command "java -jar start.jar" --respawn --output=/var/log/solr/solr.log --name=solr --verbose

    NAME=solr
    PIDFILE=/var/run/$NAME.pid
    ### BEGIN INIT INFO
    # Provides:          solr
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start daemon at boot time
    # Description:       Enable service provided by daemon.
    ### END INIT INFO
    
    RETVAL=$?
    if [ $RETVAL = 0 ]
    then
        echo "done."
    else
        echo "failed. See error code for more information."
    fi
    return $RETVAL
}

stop () {
    # Stop daemon
    echo -n "Stopping solr..."

    daemon --stop --name=solr  --verbose
    RETVAL=$?

    if [ $RETVAL = 0 ]
    then
        echo "Done."
    else
        echo "Failed. See error code for more information."
    fi
    return $RETVAL
}


restart () {
    daemon --restart --name=solr  --verbose
}


status () {
    # Report on the status of the daemon
    daemon --running --verbose --name=solr
    return $?
}


case "$1" in
    start)
        start
    ;;
    status)
        status
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    *)
        echo $"Usage: solr {start|status|stop|restart}"
        exit 3
    ;;
esac

exit $RETVAL</code>
########################## Script End ########################################

8. Add Solr to the Services Config
chkconfig --add solr

9. Reboot your server and test if Solr is running
/etc/init.d/solr start

10. Check if Solr is running
/etc/init.d/solr status
daemon:  solr is running (pid 3698)

11. Now login to your OpenAtrium installation and test if solr is recognized as a running service
domain.tld/admin/reports/status
Solr servers    1 server
The Solr server could be reached.

Enjoy!
 

Bild des Benutzers torstenzenk

Debian - vi .vimrc ignored - change default colors permanently

Debian - vi .vimrc ignored - change default colors permanently

After installing vim-nox to get a better file editing handling i have tried changing default colorscheme in vi by creating a ~./vimrc file with the correct rights and setting

colorscheme delek

in there and this is constantly being ignored, i have read A LOT of other tips and have tried what they suggested with no luck i decided to go the other way and change the file at

/usr/share/vim/vim73/syntax/syncolor.vim

from

SynColor Comment      term=bold cterm=NONE ctermfg=DarkBlue ctermbg=NONE gui=NONE guifg=Blue guibg=NONE

to

SynColor Comment      term=bold cterm=NONE ctermfg=Cyan ctermbg=NONE gui=NONE guifg=#80a0ff guibg=NONE

Bild des Benutzers torstenzenk

Win7 - USB-Stick oder HDD lässt sich nicht mehr formatieren

Win7 - USB-Stick oder HDD lässt sich nicht mehr formatieren

Heute wurde mir ein 16GB USB Stick vorgelegt der sich auf Teufel komm raus nicht mehr formatieren ließ. Und zwar weder per Windows Explorer noch per cmd. So geht es doch:

1. Mit WINDOWS+R die cmd aufrufen
2. diskpart eingeben
3. list disk zeigt alle verfügbaren Laufwerke an
4. select disk X (X=Nummer des Laufwerks)
5. clean "säubert" das Laufwerk von Datenrückständen die die normale Formatierung verhindert
6. create partition primary erzeugt dann eine neue Primäre Partition
7. active macht diese dann aktiv
8. format fs=fat32 quick führt dann noch die Schnellformatierung in FAT32 durch.

Fertig. Nun ist das Laufwerk wieder benutzbar.

Bild des Benutzers torstenzenk

Windows Anmeldung an Domäne wegen zu großem Zeitunterschied nicht möglich

Windows Anmeldung in Domäne wegen zu großem Zeitunterschied nicht möglich

Kann sich ein User nicht an der Domäne anmelden mir der Meldung" Anmeldung nicht möglich da die Zeit auf diesem Computer nicht richtig ist" hat sich der Windows-Zeitgeber-Dienst verabschiedet.

Wenn man sich lokal am PC anmeldet und sieht das die Zeit eigentlich stimmt, diesen Dienst trotzdem mal neu startet und eine Anmeldung an der Domäne danach  immer noch nicht möglich ist, will der Zeitgeber-Dienst per CMD bearbeitet werden.
 
Kann er haben ;) :
 
w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time
 
Damit zwingt man den Zeitgeber-Dienst sich mit dem Domänen-Zeitgeber (PDC in der Regel) zu synchronisieren und eine Anmeldung an der Domäne ist wieder möglich
 
###### TIP #####
Manuelle Einrichtung:
 
w32tm /stripchart /IP_des_PC:time.windows.com /samples:10 /dataonly
 
liest den effektiven Zeitunterschied zwischen Server/Client aus
(Firewall-Ports UDP 123 müssen geöffnet sein)
 
w32tm /config /manualpeerlist:time.windows.com /syncfromflaglist:manual /update
 
synct den pc 1x manuell mit time.windows.com
Bild des Benutzers torstenzenk

Debian: The public key is not available: NO_PUBKEY

Debian: The public key is not available: NO_PUBKEY

If you try to import a digitally signed key (i use the Tartarus Backup Package in my example) for a debian squeeze package using:

wget -O - http://wertarbyte.de/apt/software-key.gpg | apt-key add -

and get the error:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5145B9CD752C0197

you can workaround this by using :

gpg --keyserver pgpkeys.mit.edu --recv-key 5145B9CD752C0197

with the result:

gpg: requesting key 752C0197 from hkp server pgpkeys.mit.edu
gpg: key 752C0197: public key "Wertarbyte.de (Software Signing Key) <kontakt@wertarbyte.de>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1

Done!

Bild des Benutzers torstenzenk

Drupal - Panels Modul twocol.css Datei überschreiben

Drupal7 - Panels Modul CSS überschreiben

Heute wurde es nötig einen Weg zu finden bei dem das CSS welches vom Panels-Modul, genauer gesagt von der CSS-Datei twocol.css, erzeugt wird mit eigenem CSS-Code zu überschreiben. Die in meiner mysubthemes.info Datei definierte custom.css Datei wurde nämlich von Panels strikt ignoriert. 

Mit dem was man in dieser custom.css Datei definiert hat werden (normalerweise) automatisch die in den Core bzw. Modul-spezifischen CSS-Dateien bestimmten CSS-Definitonen überschrieben.
Auf diese Weise kann das Base-Theme ruhig upgedated werden, ohne das die eigenen CSS-Anpassungen verloren gehen.

Das Modul Panels scheint diese selbst definierte custom.css Datei aber nicht zu respektieren.

Dies einfachen Schritte lösen das Problem:

1. Die CSS-Datei twocol.css, die im Ordner /sites/all/modules/panels/plugins/layouts/twocol liegt in den Subtheme-CSS-Ordner /sites/all/mysubtheme/css kopieren

2. Die CSS-Datei in der entsprechenden mysubtheme.info mit dem exakt selben Namen definieren wie sie auch im Ursprungsordner heisst, nämlich twocol.css.

Nun kann man fröhlich an dieser Subtheme twocol.css-Datei Änderungen vornehmen die auch von Panels interpretiert werden.

 

 

Bild des Benutzers torstenzenk

PHP 5.4.x - default.timezone wird nicht aus php.ini ausgelesen

PHP 5.4.x - default.timezone wird nicht aus php.ini ausgelesen

Da seit meinem Update auf PHP 5.4.x die default.timezone Einstellungen aus meiner php.ini Datei ignoriert werden, habe ich sämtliche .htaccess Dateien durchsucht, alle additional ini-files angeschaut die mir phpinfo ausgibt, die httpd.conf kontrolliert und massenweise Artikel zu dem Thema durchgelesen. Eine globale Lösung war jedoch nicht dabei, ausser der Hinweis auf php.net das seit PHP 5.4.0 die TZ Angaben ignoriert werden. D.H.  dpkg-reconfigure tzdata funktioniert zwar noch, wird aber von PHP nicht interpretiert.

Um jedoch endlose Warnungen bezüglich der date.timezone zu verhindern, muss ich nun in der jeweiligen Apache-VirtualHost Datei die PHP-Standard-Einstellungen überschreiben. Eigentlich dachte ich ich könnte dies global in der httpd.conf tun, doch auch die dort eingetragenen Werte werden von irgendeiner conf/ini Datei überschrieben. Die einträge inder VirtualHost Datei sehen wie folgt aus:

php_value date.timezone "Europe/Berlin"
php_value upload_max_filesize "200MB"

Damit kann jeder beliebige PHP-Wert individuell angepasst werden, wenn man mit den Standard-Vorgaben von PHP 5.4.x nicht klar kommt.

 

Seiten