Getting Laconica up and running

Update, 30 Sep 2008:

You don’t want to follow the directions on this page—instead, leave this page and read this:

http://laconi.ca/darcs/README

At one point, very early on in Laconica-time, this blog post offered useful information on getting Laconica up and running. But since then, my time has taken me away from playing with Laconica and thus this guide has fallen far behind. Hopefully soon I’ll get back around to Laconica hacking, but not today.

I’m leaving the original text of this post here for posterity, but this is no longer current and following this guide will do more harm than good in confusing you about Laconica installation!

Again, to learn about getting Laconica up and running, leave this page and read this:

http://laconi.ca/darcs/README


The latest mini-sensations to arrive through my firehoses are identi.ca, a Twitter-clone / microblogging site, and the Open Source software Laconica, which powers the aforementioned site.

Having started and neglected two Twitter cloning attempts of my own, Cuckoo and OpenInterocitor, seeing someone else carry the torch with any modicum of momentum is attractive to me. So, I spent a little bit last night getting the code running on my own servers, and managed to do it twice:

See, the interesting thing promised by Laconica—and something I wanted in my own clones—is the ability to federate instances of the software. That is, users on one Laconica-based site should be able to subscribe to the updates from users on another site, by way of the OpenMicroblogging specification. Although federation isn’t a silver bullet to a web-scale Twitter clone, I do think it’s one of the most important bootstrap steps—but that’s another blog post entirely.

Thus, since I’d like to see you run a Laconica site (or something like it) for mine to talk to, I figured I’d document how I got the thing running. My server is running Ubuntu Gutsy, so your mileage may vary. This is a long one, so check out the how-to after the jump…

Get the Laconica code

I got my copy of the code by using darcs, as described on the Laconica source page, like so:

sudo apt-get install darcs
darcs get --partial http://laconi.ca/darcs/

But, if you can’t or don’t want to use darcs right now, you can grab a Laconica tarball to get started.

Get modules and third-party prerequisites

I had already installed PHP and Apache, along with lighttpd, on my server. But, I found I needed a few more things. So, here’s a slew of packages you may or may not already have:

sudo apt-get install libapache2-mod-php5 php5-cgi php5-cli php-pear php5-gd php5-mysql

Next, now that you’ve got PHP and PEAR, you can install some of the PEAR-based prerequisites:

sudo pear channel-update pear.php.net
sudo pear install channel://pear.php.net/Validate-0.8.1
sudo pear install DB_DataObject
sudo pear install Mail
sudo pear install Net_SMTP

After this, there are a few libraries that need to be downloaded by hand. For this, I created an extlib/ directory to keep them in, separate from Laconica’s own lib/ which will be subject to updates to the software itself:

mkdir extlib xfers
cd xfers
curl -O http://openidenabled.com/files/php-openid/packages/php-openid-2.1.1.zip    
curl -O http://michelf.com/docs/projets/php-markdown-1.0.1m.zip
curl -O http://oauth.googlecode.com/svn/code/php/OAuth.php
curl -O http://xmpphp.googlecode.com/files/xmpphp-0.1beta-r21.tar.gz
unzip php-markdown-1.0.1m.zip
cp 'PHP Markdown 1.0.1m/markdown.php' ../extlib/
unzip php-openid-2.1.1.zip
cp -r php-openid-2.1.1/Auth ../extlib/
cp OAuth.php ../extlib/
tar -zxf xmpphp-0.1beta-r21.tar.gz
cp xmpphp/*.php ../extlib/
cd ..
rm -rf xfers

Set up MySQL tables

I’ll assume you already have MySQL installed. To set up a database for Laconica, I did the following:

mysql -uroot -p -e 'create database laconica';
mysql -uroot -p -e "grant all privileges on laconica.* to laconica@localhost identified by 'PASSWORD'";
mysql -uroot -p laconica < db/laconica.sql

Configure Laconica

So far, I’ve found at least two config files that need tweaking—namely config.php and dataobject.ini.

The first thing I did to config.php was to add the following at around line 6 to account for my extlib/ directory:

#If you have downloaded libraries in random little places, you
#can add the paths here
define('INSTALLDIR', dirname(__FILE__));
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib');

The rest of the settings in config.php are somewhat self-explanatory. These are the ones I changed for my installation:

$config['site']['name'] = 'cafeonica';
$config['site']['server'] = 'decafbad.com';
$config['site']['path'] = 'laconica';
$config['site']['fancy'] = true;
$config['site']['theme'] = 'stoica';
$config['site']['email'] = 'l.m.orchard@pobox.com';
$config['site']['broughtby'] = '0xDECAFBAD';
$config['site']['broughtbyurl'] = 'http://decafbad.com/';
$config['db']['database'] = 'mysql://laconica:PASSWORD@localhost/laconica';
$config['db']['ini_laconica'] = $config['db']['schema_location'].'/stoica.ini';

After this, I tweaked the first few settings of dataobject.ini to the following:

database = mysql://laconica:PASSWORD@localhost/laconica 
schema_location = /www/decafbad.com/docs/laconica/classes 
class_location = /www/decafbad.com/docs/laconica/classes 
require_prefix = /www/decafbad.com/docs/laconica/classes/

Be sure to substitute your own web server paths and passwords in all the above. And finally, in order to allow the upload of avatar images, you’ll need to tweak the permissions on the avatar/ directory, like so:

sudo chown -R www-data avatar
sudo chmod -R ug+rw avatar/

Configure Web Server

There isn’t really much to configure if you’re using Apache. There’s a file htaccess.sample that needs to be copied to .htaccess—this will put in place all the mod_rewrite rules necessary to support “fancy” URLs.

On the other hand, if you’re okay with uglier URLs with query parameters and whatnot, leave .htaccess alone and use $config['site']['fancy'] = false in your config.php.

For comparison, here are examples of non-fancy and fancy profile URLs:

  • http://decafbad.com/laconica/index.php?action=showstream&nickname=lmorchard
  • http://decafbad.com/laconica/lmorchard

One catch to the non-fancy and fancy thing, though—if you start off with non-fancy URLs and later switch to fancy, all of the profiles registered before that switch will appear with non-fancy URLs in the timeline. This is because the profile table stores the original URLs at registration in the profileurl column. You could change these if you like, but there be dragons.

Configure Lighttpd for “fancy” URLs (optional)

If you’re like me, though, you’re using something other than Apache for your main web server. Personally, I just got up and running with lighttpd not too long ago. Alas, that means the .htaccess rewrite rules won’t work directly.

Admittedly, I am a novice to configuring lighttpd, so the following rules I added to my config could probably use some help:

url.rewrite-final += (
    "^/laconica/index.php(.*)$" => "$0",

    "^/laconica/$" => "/laconica/index.php?action=public",
    "^/laconica/rss$" => "/laconica/index.php?action=publicrss",
    "^/laconica/xrds$" => "/laconica/index.php?action=publicxrds",

    "^/laconica/doc/about$" => "/laconica/index.php?action=doc&title=about",
    "^/laconica/doc/contact$" => "/laconica/index.php?action=doc&title=contact",
    "^/laconica/doc/faq$" => "/laconica/index.php?action=doc&title=faq",
    "^/laconica/doc/help$" => "/laconica/index.php?action=doc&title=help",
    "^/laconica/doc/im$" => "/laconica/index.php?action=doc&title=im",
    "^/laconica/doc/openid$" => "/laconica/index.php?action=doc&title=openid",
    "^/laconica/doc/openmublog$" => "/laconica/index.php?action=doc&title=openmublog",
    "^/laconica/doc/privacy$" => "/laconica/index.php?action=doc&title=privacy",
    "^/laconica/doc/source$" => "/laconica/index.php?action=doc&title=source",

    "^/laconica/main/login$" => "/laconica/index.php?action=login",
    "^/laconica/main/logout$" => "/laconica/index.php?action=logout",
    "^/laconica/main/register$" => "/laconica/index.php?action=register",
    "^/laconica/main/openid(?:\?(.*)|$)$" => "/laconica/index.php?action=openidlogin&$1",
    "^/laconica/main/remote(?:\?(.*)|$)$" => "/laconica/index.php?action=remotesubscribe&$1",

    "^/laconica/main/subscribe$" => "/laconica/index.php?action=subscribe",
    "^/laconica/main/unsubscribe$" => "/laconica/index.php?action=unsubscribe",
    "^/laconica/main/confirmaddress$" => "/laconica/index.php?action=confirmaddress",
    "^/laconica/main/confirmaddress/(.*)$" => "/laconica/index.php?action=confirmaddress&code=$1",
    "^/laconica/main/recoverpassword$" => "/laconica/index.php?action=recoverpassword",
    "^/laconica/main/recoverpassword/(.*)$" => "/laconica/index.php?action=recoverpassword&code=$1",

    "^/laconica/settings/avatar$" => "/laconica/index.php?action=avatar",
    "^/laconica/settings/password$" => "/laconica/index.php?action=password",
    "^/laconica/settings/profile$" => "/laconica/index.php?action=profilesettings",
    "^/laconica/settings/openid$" => "/laconica/index.php?action=openidsettings",
    "^/laconica/settings/im$" => "/laconica/index.php?action=imsettings",

    "^/laconica/notice/new$" => "/laconica/index.php?action=newnotice",
    "^/laconica/notice/(\d+)$" => "/laconica/index.php?action=shownotice&notice=$1",

    "^/laconica/user/(\d+)$" => "/laconica/index.php?action=userbyid&id=$1",

    "^/laconica/(\w+)/subscriptions$" => "/laconica/index.php?action=subscriptions&nickname=$1",
    "^/laconica/(\w+)/subscribers$" => "/laconica/index.php?action=subscribers&nickname=$1",
    "^/laconica/(\w+)/xrds$" => "/laconica/index.php?action=xrds&nickname=$1",
    "^/laconica/(\w+)/rss$" => "/laconica/index.php?action=userrss&nickname=$1",
    "^/laconica/(\w+)/all$" => "/laconica/index.php?action=all&nickname=$1",
    "^/laconica/(\w+)/all/rss$" => "/laconica/index.php?action=allrss&nickname=$1",
    "^/laconica/(\w+)/foaf$" => "/laconica/index.php?action=foaf&nickname=$1",

    "^/laconica/(\w+)$" => "/laconica/index.php?action=showstream&nickname=$1"
)

That’s it (for now)

And that’s all I’ve got for you for now. At this point, it looks like my two Laconica installs are mostly working. I’ve not yet played with the XMPP bot, nor have I been able to see the OpenMicroblogging stuff working with remore subscriptions. However, I have been able to log in via OpenID, so that’s something.

61 Comments

  1. Posted July 3, 2008 at 5:36 pm | Permalink

    Tried to remotely subscribe to you, but no success so far. Your laconica instance replied “Not expecting this response!” after what seemed like a successful oauth redirection :|

  2. Posted July 3, 2008 at 6:27 pm | Permalink

    Fabian: Unfortunately so far, that’s been the thing I’ve seen between all Laconica instances I’ve seen—even identi.ca. Hopefully, it’s something simple to work out

  3. Posted July 4, 2008 at 6:56 am | Permalink

    Great!!! Thank you.

  4. Posted July 4, 2008 at 1:11 pm | Permalink

    yeah, great work man!
    you might add a note that php 5.2.1 is required for the function sys-get-temp-dir (though it’s easy to add this function forolder php-installs, just see http://php.m-otion.at/manual/en/function.sys-get-temp-dir.php

  5. Posted July 4, 2008 at 1:55 pm | Permalink

    Great! I’m so excited this is working. Question: can you help me with this bug: http://laconi.ca/PITS/00004 ? Also, maybe there’s a bug in the finishremotesubscribe script? I’ve got a few people remote-subscribed in identi.ca, I’ll find out what the problem was there.

  6. Posted July 4, 2008 at 1:57 pm | Permalink

    Oh, also: you shouldn’t have to update dataobject.ini!

    And we need to set a mode for approved registration, for private instances… Wanna work on it?

  7. Posted July 4, 2008 at 2:03 pm | Permalink

    @Evan: Huh, I could’ve sworn things didn’t work until I made those changes to dataobject.ini — I probably changed something else at the same time and though the dataobject.ini tweaks did it :)

    I may also poke around at an INSTALL and maybe an approved reg mode too, after watching some fireworks and eating too much food…

  8. Posted July 4, 2008 at 2:20 pm | Permalink

    Is there anyone out there that is helping people troubleshoot getting a site up and going. I’m having a hell of a time, but I’m betting it’s an issue with my web server. I think the root of the problem is I don’t have DB_DataObject in Pear. This has been a great help, just not smrt enough when things go off track! Thanks

  9. Posted July 4, 2008 at 2:33 pm | Permalink

    I keep getting this error after following all your steps above.

    DB_DataObject Error: Unable to load schema for database and table (turn debugging up to 5 for full error message)

    Do you have any idea how I might fix this?

    My installation is at http://www.georgology.com/laconica/

    Thanks.

  10. Posted July 4, 2008 at 3:22 pm | Permalink

    @Andrew: Hmm… I just removed a chunk of the instructions about tweaking dataobject.ini — I just readded it. Evan says it doesn’t need changing, but I swear that your error is the exact thing I resolved by modifying dataobject.ini

    You may want to give it a try.

  11. Posted July 4, 2008 at 4:57 pm | Permalink

    Very, nice article, alot of help! Thanks

  12. Posted July 4, 2008 at 5:19 pm | Permalink

    Thanks for the guide, after a bit of trial and error, it works perfectly!

  13. Kevin
    Posted July 4, 2008 at 10:28 pm | Permalink

    I’m getting the

    “Warning: main(DB/DataObject.php) [function.main]: failed to open stream: No such file or directory in /home/xxxx/public_html/blogging/lib/common.php on line 32″

    what am I missing? Thx for any help, I’m sure is something I’ve over looked.

  14. Posted July 5, 2008 at 6:34 am | Permalink

    Thanks for the HOWTO which was really helpful. I am trying to install laconica on Bluehost.

    However I get a DB connection error (CONNECT: Checking for database database_ in options’). This is strange because I can access the laconica schema using the same DSN using a small test PEAR script.

    Is it possible to get laconica to dump the DSN so I can check it is correct ?

  15. Posted July 5, 2008 at 9:33 am | Permalink

    I have solved the error in my previous comment.
    “DB_DataObject Error: Unable to load schema for database and table (turn debugging up to 5 for full error message)”
    The solution was to rename the “classes/stoica.ini” file to “classes/.ini”. This has solved the problem on two installations. Also remember to set debugging back to “0″.

    Kevin:

    Its probably a PEAR dependency that is not installed.

  16. Posted July 5, 2008 at 9:38 am | Permalink

    Error in my last comment. It should be “classes/YOUR DATABASE NAME.ini” not “classes/.ini”. Sorry

  17. Posted July 5, 2008 at 9:47 am | Permalink

    One more thing. I did not have to modify anything in “dataobject.ini”

  18. Kevin
    Posted July 5, 2008 at 10:05 am | Permalink

    Thanks Andrew, I thought that pear is loaded I’ll double check and make sure.

  19. Kevin
    Posted July 5, 2008 at 11:50 am | Permalink

    PEAR is loaded, BUT I just noted that laconica requires PHP 5, and my box is running PHP 4.

  20. WebGuy
    Posted July 5, 2008 at 8:20 pm | Permalink

    Followed all the steps and everything, things seems to be working fine, but when i try to add an IM i get this error -> Fatal error: Class ‘XMPPHP_XMPP’ not found in /var/www/lib/jabber.php on line 47. Any idea how to fix that ?

    Thanks

  21. Posted July 5, 2008 at 11:22 pm | Permalink

    Getting the following error message:

    Warning: require_once(DB/DataObject.php) [function.require-once]: failed to open stream: No such file or directory in /home/.matuxa/iraneal/opensourcefaith.org/lib/common.php on line 32

    Fatal error: requireonce() [function.require]: Failed opening required ‘DB/DataObject.php’ (includepath=’.:/usr/local/php5/lib/php:/usr/local/lib/php’) in /home/.matuxa/iraneal/opensourcefaith.org/lib/common.php on line 32

    Looks similar to Kevin’s but I know I have php5. I’m trying to install on shared hosting (dreamhost) at domain http://www.opensourcefaith.org/

    Any suggestions?

  22. Posted July 6, 2008 at 8:51 am | Permalink

    @WebGuy, ln -s . XMPP && mv xmpp.php XMPP.php solved this issue for me. (Alternatively, you could mkdir instead)

  23. Howard N
    Posted July 6, 2008 at 7:05 pm | Permalink

    Andy C did you have any luck resolving your issue with the PEAR error:

    Checking for database database_ in options

    I’ve slowly been working my way through getting laconia set up (thanks for the guide!) but have hit a wall with this error.

  24. Posted July 7, 2008 at 7:31 am | Permalink

    I got it set up but registration is not possbile, it displays this error:

    Catchable fatal error: Object of class DBDataObjectCast could not be converted to string in /www/htdocs/test/lib/util.php on line 1001

  25. Posted July 7, 2008 at 12:39 pm | Permalink

    HowardN - Yes.I discovered that my settings in ‘config.php’ (specifically [config][db]) weren’t getting applied correctly so I modified the same settings ‘lib/common.php’ which worked. I know this shouldn’t be needed and I know it’s not correct but I’m just want to play with Laconica.

  26. Posted July 7, 2008 at 1:44 pm | Permalink

    Remote sub from identi.ca to decafbad seems to be working now. Did you have to change anything on your end ? Are you on the latest Darcs code ? I am using the 0.4.1 tarball and get ‘Not expecting this response’.

  27. Posted July 7, 2008 at 3:35 pm | Permalink

    somewhat got something up using this guide at http://laconica.cabbitmedia.com/ but with a few bugs.

    it’s running on slackware 12.0.

  28. Big Eclipse
    Posted July 7, 2008 at 5:34 pm | Permalink

    Page is blank. After following the steps and ensuring that everything is as it should be, the installation seem to have gone well. Not receiving any errors, but the page is just blank — like an ‘Untitled’ page. Any ideas?

  29. Don Park
    Posted July 7, 2008 at 7:17 pm | Permalink

    @webguy, according to evan, the tarball is out of date. get the subversion trunk with:
    svn co svn://netflint.net/xmpphp

  30. Posted July 8, 2008 at 1:27 am | Permalink

    Neal_Locke:
    I’m attempting to install on dreamhost as well. I’ve spent a bit of time and found the following link - http://wiki.dreamhost.com/PEAR - which basically says PEAR on dreamhost is buggered. It does describe how to get a full installation of PEAR in your own domain, but it requries shell access which i can’t get from work.

    I’ll post tomite with (any) results….

  31. Posted July 8, 2008 at 3:26 pm | Permalink

    Hey guys, I’ve got lacania almost working; when I go to register, I get the following error:

    Catchable fatal error: Object of class DBDataObjectCast could not be converted to string in C:xampphtdocsmessaginglibutil.php on line 1001

    I’m also a little bit weirded out that I am getting the web page, but when I go check out the database no tables have been created… is this right? When and what code will actually create the database tables?

    Thanks so much for your help!
    - Lee

  32. Posted July 10, 2008 at 4:06 am | Permalink

    I’m collected some Dreamhost-specific notes that build on this: http://laconi.ca/Main/LaconicaOnDreamhost including a fix for Neal’s “Failed opening required ‘DB/DataObject.php’” problem. Help welcomed if others have experience w/ DH.

    In short re DataObject, see this bit:

    1. Your lib/common.php MUST be changed to ensure PEAR files can be found.

    Add (with appropriate changes):

    # set up a non-root PEAR repo (before we need it)
    $extra_path = array("/home/path-to-your-stuff/pear/php");
    set_include_path(implode(PATH_SEPARATOR, $extra_path) . PATH_SEPARATOR . get_include_path());
    

    …before this bit:

    1. global configuration object

    require_once(’PEAR.php’);

    If it doesn’t work, try replacing path-to-your-stuff with the path to your stuff.

  33. Posted July 13, 2008 at 9:15 am | Permalink

    PHP Markdown is also available via PEAR:

    pear channel-discover pear.michelf.com

    pear install michelf/markdown

  34. raghav
    Posted July 15, 2008 at 5:59 am | Permalink

    hey i am having trouble with my copy of laconica ……everything has been installed perfectly……..but there are two troubles:-
    1.there is not theme been shown on the laconica pages……its complete white
    2.when clicked on home link nothing comes up ……..please help cos i am newbie in coding after hours of working i installed it but of no use……………….
    here is the link

  35. raghav
    Posted July 15, 2008 at 6:00 am | Permalink

    sorry the link is this…………………….

    http://www.earnstop.com/raghav1211/laconica3/laconica/

    http://www.earnstop.com/raghav1211/laconica3/laconica/

  36. Herman
    Posted July 17, 2008 at 5:22 am | Permalink

    Hi

    I am trying to get a laconica install up on a box running RHEL 5.1, PHP 5.1.6 with Apache/2.2.3. However after completing all the steps recommended in your (very kewl) post above I run into the same brick wall as i did later when following the directions on http://www.orient-lodge.com/node/3051

    The error I keep getting is “Call to undefined method XMLWriter::fullEndElement()” in util.php on line 98.

    Could there possibly be something that I am overlooking as I have on a previous install attempted to descend into the rabbit hole of “fixing” the laconica code which I am sure cannot be broken as so many other people have successfully deployed it?

    Thanks

  37. Eric_A
    Posted July 17, 2008 at 11:18 am | Permalink

    Use the latest release of XMPP if you are getting XMPP errors with the latest version of laconica

  38. raghav
    Posted July 18, 2008 at 1:34 am | Permalink

    i solved my earlier problem of theme but now another problem is emerging that of configuring xmpphp…….can anyone explain it in detail how to install cos many people are not able to activate xmpphp in their laconica apps……….if i get the solution myself i would post it here…………

  39. Herman
    Posted July 18, 2008 at 10:12 am | Permalink

    Hey,

    So the problem with my the error mentioned in my previous post was that when PHP was compiled for the server in question the XmlWriter/Reader components were disabled. After re-compiling PHP on this server etc the error went away.

    Now the error is the inability to connect to the MySQL server? This with the relevant connection string entries being made in config.php & dataobject.ini? These settings are definately correct as I am able to connect to the database from the command line copying and pasting the entries from these files.

    However it seems like access is trying to be gained on a “strange” port? Is there some specific place where this has to be configured? The error I am getting boils down to this: “nativecode=Can’t connect to local MySQL server through socket”

    Any input regarding this problem would be greatly appreciated!

  40. Herman
    Posted July 18, 2008 at 10:14 am | Permalink

  41. Posted July 23, 2008 at 3:41 am | Permalink

    Just to note for more recent install 0.4.4 and onwards you need XMP-PHP at least 0.1-r50 or up. Available here.

  42. Herman
    Posted July 23, 2008 at 5:37 am | Permalink

    All the issues I experienced ended up being server related. After sorting my server out the laconica install went like a dream.

  43. tagnu
    Posted July 23, 2008 at 4:39 pm | Permalink

    Hi,

    Please merge the comments 15,16 regarding “DB_DataObject Error”

    It may confuse first timers.

    Wonderful post!!

  44. sasi
    Posted July 26, 2008 at 1:37 am | Permalink

    Thanks for your post, i was able to install laconica (after much pain - mainly due to server issues)
    But when i do a notice, i get this message

    Problem saving notice.

    Did anyone had similar problem…

  45. Brian
    Posted July 27, 2008 at 12:05 pm | Permalink

    I can’t start the xmppdaemon. I’m stuck:

    Unknown error type: [2048] Non-static method PEAR::getStaticProperty() should not be called statically
    Unknown error type: [2048] Assigning the return value of new by reference is deprecated
    1217178205 [INFO]: Connecting to tcp://xxxx.com:5222
    1217178205 [VERBOSE]: SENT:
    1217178205 [VERBOSE]: RECV:

  46. Posted July 28, 2008 at 6:32 pm | Permalink

    I’ve installed Laconica using the excellent instructions above, but am getting a couple of odd responses as follows:

    • on logging out and after submitting a ‘dent’, laconica returns a blank page
    • when I turn debut to 5 I see I get the following errors: DB_DataObject: ERROR: No Data return from get [and then userid or hash]
    • error_log files are returning “Cannot modify header information - headers already sent by (output started at /usr/share/pear/DB/DataObject.php:4006) in … /util.php on line 876

    Any ideas what I need to tweak in order to correct these errors?

  47. Posted July 31, 2008 at 2:11 pm | Permalink

    I’m getting problems installing Laconica.

    Fatal error: Call to undefined method XMLWriter::fullEndElement() in /var/www/html/vbtwitter/lib/util.php on line 98

    I have XMLWriter installed though - PHPInfo shows that it’s enabled. Any ideas?

  48. Posted August 7, 2008 at 10:14 am | Permalink

    Great guide. I am working on this project with my high school students here in Vietnam. They want to see if they can do a start-up company with this application marketed at students. Great guide.

  49. Posted August 10, 2008 at 5:02 am | Permalink

    Warning: require_once(markdown.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/darcs/lib/common.php on line 122

    Fatal error: requireonce() [function.require]: Failed opening required ‘markdown.php’ (includepath=’.:/usr/share/php:/usr/share/pear:/var/www/darcs/extlib’) in /var/www/darcs/lib/common.php on line 122

    WHo can help me huhuh.. i got this problem …

  50. IT_V
    Posted August 10, 2008 at 5:02 am | Permalink

    Warning: require_once(markdown.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/darcs/lib/common.php on line 122

    Fatal error: requireonce() [function.require]: Failed opening required ‘markdown.php’ (includepath=’.:/usr/share/php:/usr/share/pear:/var/www/darcs/extlib’) in /var/www/darcs/lib/common.php on line 122

  51. IT_V
    Posted August 10, 2008 at 5:53 am | Permalink

    ok i almost done but i got problem again …. when i click on the login it gave me blank page … and when i click on openID i gave me this error

    Warning: require_once(Auth/OpenID.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/darcs/lib/openid.php on line 24

    Fatal error: requireonce() [function.require]: Failed opening required ‘Auth/OpenID.php’ (includepath=’.:/usr/share/php:/usr/share/pear:/var/www/darcs/extlib’) in /var/www/darcs/lib/openid.php on line 24

    anyone can help me fix that … thanks alot

  52. Posted August 17, 2008 at 3:38 pm | Permalink

    To everyone who is getting XMLWriter problems, My guess is its because there are XMLWriter functions like fullEndElement() that were added or modified from php5.1.6 to php5.2.5. Unfortunately centos and redhat don’t support php past 5.1.6 so i’ve been searching for a hack that allows 5.2.5 on centos of redhat, found a couple but haven’t got them to work.

  53. Posted August 17, 2008 at 6:37 pm | Permalink

    found a solution for the “Call to undefined method XMLWriter::fullEndElement()” problems. It is due to the fact that these functions aren’t included in older versions of php, see here. http://us2.php.net/manual/en/migration52.functions.php

    but here is a great wiki on upgrading to php5.2.x on centos or redhat

    http://www.atomicorp.com/wiki/index.php/PHP

    once I upgraded everything worked properly.

  54. Posted August 22, 2008 at 12:12 am | Permalink

    Excellent and very useful instructions. We’re up and running. I’d love to get XMPP and XRDS running, but all in good time! Thanks so much!

  55. Posted August 24, 2008 at 2:20 pm | Permalink

    I can log in to identi.ca with my OpenID, but neither to your laconica instance on decafbad.com or Leo Laportes on army.twit.tv - my guess is that you don’t allow OpenID Provider endpoints with self-signed SSL-certificates - do you know what identi.ca has set up differently, since they seem to allow self-signed certs?

  56. Marco
    Posted August 29, 2008 at 7:19 am | Permalink

    Hi, I cannot install PEAR or other dependencies and I tried install laconica3, is a development tarball based on 0.4.3, but I received following error: Parse error: syntax error, unexpected TSTRING in /home/web/publichtml/laconica/lib/util.php on line 468. Could you help me? Thanks

  57. Friedrich Zohmann
    Posted September 4, 2008 at 10:35 am | Permalink

    I installed Laconia using this manual and its working fine, but I dont know how to get it federated. Can you please tell me, where to find info on that.

    thanks, Friedrich

  58. Håkan Eriksson
    Posted September 14, 2008 at 5:35 pm | Permalink

    I have Laconica 0.5.0 up and running at the adress: http://www.korvmedbrod.com

    I have this installed on Dreamhost PS
    I have trouble to get XMPP daemon to work, I only get error mess when i use $ ./scripts/startdaemon.sh .
    Like this:
    Starting xmppdaemon.php…
    Parse error: syntax error, unexpected T_STRING in /my_laconica_path/lib/util.php on line 543
    DONE.

    I have switched over to PHP5 in the DH panel, can anybody help me, please!

  59. Webcubes
    Posted September 15, 2008 at 4:23 am | Permalink

    Hello,
    I have a laconica installation and it works well except for the IM and mail stuff.
    When I run xmppdaemon.php, I get the daemon working and can post notices, but the daemon dtops working and the jabber(update@domain.com) get signed off. I get the following error while I run xmppdaemon
    on a PHP5 linux box.

    Unknown error type: [2048] Assigning the return value of new by reference is deprecated (/home/adelphus/public_html/pear/PEAR.php:563)
    Unknown error type: [2048] Assigning the return value of new by reference is deprecated (/home/adelphus/public_html/pear/PEAR.php:566)
    Unknown error type: [2048] Non-static method PEAR::getStaticProperty() should not be called statically (/home/adelphus/public_html/blog/lib/common.php:93)
    Unknown error type: [2048] Assigning the return value of new by reference is deprecated (/home/adelphus/public_html/pear/Mail.php:154)
    Unknown error type: [8] Undefined offset: 3 (/home/adelphus/public_html/blog/lib/jabber.php:57)
    Unknown error type: [8] Use of undefined constant CLAIM_TIMEOUT - assumed ‘CLAIM_TIMEOUT’ (/home/adelphus/public_html/blog/xmppdaemon.php:341)
    Unknown error type: [2048] Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB/DataObject.php:4101)
    Unknown error type: [2048] Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB/DataObject.php:2236)
    Unknown error type: [2048] Non-static method DB::connect() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB/DataObject.php:2241)
    Unknown error type: [2048] Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB.php:520)
    Unknown error type: [2048] Assigning the return value of new by reference is deprecated (/home/adelphus/public_html/pear/DB/common.php:1017)
    Unknown error type: [2048] Assigning the return value of new by reference is deprecated (/home/adelphus/public_html/pear/DB/common.php:1220)
    Unknown error type: [2048] Non-static method DB::isError() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB.php:557)
    Unknown error type: [2048] Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB/DataObject.php:2260)
    Unknown error type: [2048] is_a(): Deprecated. Please use the instanceof operator (/home/adelphus/public_html/pear/PEAR.php:275)
    Unknown error type: [2048] Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context (/home/adelphus/public_html/pear/DB/DataObject.php:2132)
    ………..

    Can anyone help me with this issue?

    Thanks,
    Webcubes

  60. ta
    Posted September 18, 2008 at 7:14 pm | Permalink

    Hi,

    It would be great if somebody can help me on this:

    XML Parsing Error: no element found
    Location: http://localhost/laconica/index.php?action=public
    Line Number 1, Column 1:

    Thanks

  61. Posted September 27, 2008 at 4:37 pm | Permalink

    How do you fix the following error :
    “Parse error: syntax error, unexpected T_STRING in /my_laconica_path/lib/util.php on line 532″

    Its in the function common_set_user()/

29 Trackbacks

  1. [...] #1: Les Orchard has two instances running on [...]

  2. By Open Source Twitter is here « Ungeek DaPo on July 3, 2008 at 7:35 pm

    [...] get it here, and already a couple of people have installed their own instances of it. Here’s detailed instructions from one developer from his successful installations (2 of them). I haven’t tried it yet so [...]

  3. By links for 2008-07-04 « Breyten’s Dev Blog on July 4, 2008 at 6:32 am

    [...] Getting Laconica up and running (tags: entries laconica openmicroblogging php twitter) [...]

  4. By microblogging for free and open | emblog on July 4, 2008 at 1:01 pm

    [...] nicht verfügbarunvollständig. [↩]siehe fußnote 1; EDIT: vor kurzem wurde wohl eine anleitung auf dem wiki verlinkt, schau ich mir auch noch mal an. [↩] passend [...]

  5. [...] http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running [...]

  6. [...] project webpage links to l.m.orchard’s installation guide.  Looks like it might be worth playing with, especially as it’s implemented in PHP with a [...]

  7. By :: Tony’s Research Blog on July 5, 2008 at 1:52 pm

    [...] 0xDECAFBAD » Getting Laconica up and running [...]

  8. [...] Ob das ganze funktioniert haben wir uns einmal angesehen und selbst eine Laconica installiert. Das hat dank fehlender Dokumentation zwar etwas länger gedauert, jetzt gibt es aber auch eine ganz brauchbare Installationsanweisung. [...]

  9. By EasyInstall of Laconica on DreamHost! on July 5, 2008 at 8:51 pm

    [...] http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running [...]

  10. [...] Getting Laconica up and running [...]

  11. [...] is successfully installed at 2bgods.com, thanks to the combined documentation of decafbad and jj [...]

  12. [...] article Getting Laconica up and running is a great article, and the comments from both the developer community and Evan, the developer of [...]

  13. By Laconica OpenSource Twitter Clone | OPENGIGA on July 12, 2008 at 3:50 pm

    [...] we know about twitter and Laconica which is providing open source script and that will help you to make your own twitter [...]

  14. By Laconica Easy-ish Install Scripts Finished on July 13, 2008 at 5:13 am

    [...] http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running [...]

  15. By Read the News on July 16, 2008 at 12:37 am

    [...] #1: Les Orchard has twoinstances [...]

  16. [...] So, I’ve been playing around a bit with Laconica, an open source micro-blogging engine used to power Identi.ca.  I finally have it up and running smoothly, however, I’ve found that the “official” installation documentation is a bit sparse and missing a few steps and dependencies.  Because of this, a few snags in the setup process had me scratching my head.  What did help me immensely in the process is the following blog entry on 0xDECAFBA - Getting Laconica up and running. [...]

  17. [...] Setting up Laconica is bit tedious task but once setup then it works like charm. Read more about Laconica (Author) here. [...]

  18. [...] 0xDECAFBAD » Getting Laconica up and running. Το laconica είναι το software που τρέχει πίσω από το micro-blogging platform identi.ca (κάτι σαν twitter). Τέλος πάντων, η εγκατάσταση από ό,τι βλέπω δεν είναι και το πιο εύκολο πράγμα, οπότε φαντάζομαι ότι όποιος την προσπαθήσει θα ξέρει τί είναι όλα αυτά και γιατί :-) — asides — Tags: identi.ca, laconi.ca, microblogging — Panayotis @ 27|Jul|2008 02:30 [...]

  19. [...] am going to use and edit 0xDECAFBAD’s guide to getting Laconica running.  First, you need to install darcs as follows with [...]

  20. [...] Un tuto d’installation : http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running [...]

  21. By Laconica - OpenSource microBlogging | WEReveal on August 27, 2008 at 5:49 pm

    [...] Laconica somewhat straight forward but only because I followed the instructions found on 0xDECAFBAD. Even then there were a couple [...]

  22. [...] is slimmed down version of 0xDECAFBAD’s instructions found at http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running. This is targeted towards someone who wants to get the basic system up and running as quick as [...]

  23. [...] die eingedeutschte Variante bleeper.de. Als Anleitung hatte ich folgenden Beitrag verwendet: “getting laconica up and running“. Musste allerdings schnell feststellen, das die Software schon ne ganze Ecke [...]

  24. By links for 2008-09-11 « Brent Sordyl’s Blog on September 11, 2008 at 9:01 am

    [...] Getting Laconica up and running since I’d like to see you run a Laconica site (or something like it) for mine to talk to, I figured I’d document how I got the thing running. (tags: linux laconica setup twitter) [...]

  25. [...] script is called as Laconica.Except being a Twitter clone another interesting thing about Laconi is that it allows members of a [...]

  26. [...] does it job well given that it has not reached 1.0. Refer http://laconi.ca/trac/browser/README and http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running for general instructions on installing Laconica. The latter is much more comprehensive in terms on [...]

  27. [...] WoWtweet.net I googled for how to do the fancy URL’s properly in Lighttpd - which turned up a great article about setup / lighttpd by Leslie Orchard - however its a little out of date with regard to the [...]

  28. By Daily Digest for 2009-01-09 | Pedro Trindade on January 10, 2009 at 3:09 am

    [...] Getting Laconica up and running - 0xDECAFBAD [...]

  29. By Getting Laconica working - Ben Shephard’s blog on January 26, 2009 at 7:14 pm

    [...] is pretty rough but it’s there and cobbled together with a few other sources mainly THIS blog post from decafbad.com which mentions the few dependencies that had to be installed which I [...]