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/.pid
    ### BEGIN INIT INFO
    # Provides:          solr
    # Required-Start:   
    # Required-Stop:    
    # 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 [ = 0 ]
    then
        echo "done."
    else
        echo "failed. See error code for more information."
    fi
    return
}

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

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

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


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 </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!
 

Drupal7 - Panels Modul CSS überschreiben

Drupal - Panels Modul twocol.css Datei ü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.

Drupal - Search and find a certain activated module directly within the database

Drupal - Search and find a certain activated module directly within the database

If you ever wanted to have a list of all activated modules within a drupal website directly from your database simply use this mySQL query:
select * from `system` where (`status` like "%1%")

As all information about the modules are in the SYSTEM database table you can search even more in depth. Let´s say we know of a module on a drupal website we set up some time ago. It lets me choose some existing file on my server for upload but a really can´t remember its name. Well, it is still simple to find with a query like this:

select * from `system` where (`filename` like "%file%" and `status` like "%1%" and `info` like "%existing%")

We tell the search query that it should look for "file" within the modules filename, of course the status is activated "1" and within the info it perhaps says someting like "existing"  and voila: sites/all/modules/filefield_sources/filefield_sources.module was the one we were looking for.

Drupal6 auf Drupal7 Upgrade

Drupal6 auf Drupal7 Upgrade

Nachdem Drupal 6 nun 2 gute Jahre auf meinem Debian Server als Test- und Demo-System lief, ist es an der Zeit dem neuen Drupal eine Chance zu geben die vielen Tests und Versuche zu überstehen, die ich so mit dem System versuche. Der alte Content zu Drupal6 ist aber weiterhin hier  zu lesen.

Es gibt noch immer Probleme mit Views und viele der liebgewonnen alten Drupal6 Module sind noch nicht auf Drupal7 geportet worden, aber nicht zuletzt die sehr gute Drush-Unterstützung, die vielen vielen Verbesserungen und die erhöhten Sicherheitsmechanism von Drupal7 sind für mich ein Ansporn diese Seite nun mit D7 auf einem Debian mit PHP5.3 -Unterstützung laufen zu lassen.

Evtl. wird der Apache demnächst noch mit NGinx gekoppelt und so einiges mehr, aber im Moment konzentriere ich mich auf die Möglichkeiten die D7 bietet und versuche in regelmässigen Abständen einige HowTo´s zu schreiben die mir bei meiner täglichen Problembewältigung auch selbst geholfen haben.

Using two different Drush Versions on Debian Squeeze

Using two different Drush Versions on Debian Squeeze

Sometimes an accident can result in something good i have learned today. What happened?

 

While setting up my new Debian Squeeze Server a few weeks ago and stopping it due to the lack of time i tried to finish the process today. Having Drush version 4.4 installed for user root at that time i simply forgot about that. As i was logged in as user1 with root rights this time i was seeing an error message appear while trying to execute drush for user1. So i simply installed drush 5.0-dev within his home directory and wondered why

drush status

still gave me that famous

bash: drush: command not found

error. Haven´t i seen

PHP configuration     :  /my/path/to/php.ini
 Drush version         :  5.0-dev

before, suggesting that drush is there and working? Yes i have, but in the meantime i have been switching to the root user to do some work there and back to user1. This makes my system seem to forget that drush exists. Doing a simple

source .bash_profile

gets drush back for the user i am using at that moment.

Being logged in as root i can use drush v4.4. and user1 uses v5.0-dev. Great, as i can simply switch the release and play around trying different things that might not work on one of the 2 versions.

too be continued...

Seiten