{"id":243,"date":"2008-10-15T07:38:41","date_gmt":"2008-10-15T12:38:41","guid":{"rendered":"http:\/\/poojanwagh.opalstacked.com\/poojanblog\/?p=243"},"modified":"2008-10-15T07:38:41","modified_gmt":"2008-10-15T12:38:41","slug":"laconica-on-dreamhost","status":"publish","type":"post","link":"https:\/\/poojanblog.com\/blog\/2008\/10\/laconica-on-dreamhost\/","title":{"rendered":"Laconica on DreamHost"},"content":{"rendered":"<p>I got a laconica install going on DreamHost. I&#8217;ve been able to post from the web, but I&#8217;ve found that posting from email won&#8217;t work with DreamHost. The jury is still out on posting from Jabber, but I&#8217;m optimistic. I&#8217;ll update this post when I know more.<\/p>\n<p>I <strong>was<\/strong> able to get notifications of new posts via email. I&#8217;m not sure if that&#8217;s useful. In my opinion, notifying from email is equivalent to a discussion group or mailing list.<\/p>\n<h2>Gimmesoda automatic script<\/h2>\n<p>I created a new domain and MySQL database\/user using dreamhost panel.<\/p>\n<p>Then, ran http:\/\/www.gimmesoda.com\/2008\/07\/18\/another-laconica-easy-install-script-update\/ to install into ~\/laconica.domain.tld<\/p>\n<p>This actually worked! Except, its seems to be an older version of laconica. At minimum, it was useful for getting custom pear (right?).<\/p>\n<h2>Following Laconica README<\/h2>\n<p>Decided to download latest darcs copy. Moved the gimmesoda-install from ~\/laconica.domain.tld to a laconica.domain.tld.bak directory and then downloaded the darcs copy using:<\/p>\n<pre class=\"wiki\">darcs get --partial http:\/\/laconi.ca\/darcs\/ laconica.domain.tld<\/pre>\n<p>Then, deleted database and re-created database called la_db (&amp; MySQL user la_sqluser) using DreamHost control panel. Now, following <a title=\"Laconica README (official install instructions)\" href=\"http:\/\/laconi.ca\/darcs\/README\">README<\/a>:<\/p>\n<pre>mysql -u la_sqluser -p -h mysql.domain.tld la_db &lt; domain.tld\/db\/laconica.sql<\/pre>\n<p>Check to make sure:<\/p>\n<pre>[gorgon]$\u00c2\u00a0 mysql -u la_sqluser -p -h mysql.domain.tld la_db\r\nEnter password:\r\nReading table information for completion of table and column names\r\nYou can turn off this feature to get a quicker startup with -A\r\nWelcome to the MySQL monitor.\u00c2\u00a0 Commands end with ; or \\g.\r\nYour MySQL connection id is 3326653\r\nServer version: 5.0.67-log MySQL Community Server (GPL)\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the buffer.\r\nmysql&gt; SHOW TABLES;\r\n+----------------------+\r\n| Tables_in_la_db   \u00c2\u00a0\u00c2\u00a0 |\r\n+----------------------+\r\n| avatar\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| confirm_address\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| consumer\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| fave\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| foreign_link\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| foreign_service\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| foreign_subscription |\r\n| foreign_user\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| invitation\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| message\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| nonce\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| notice\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| notice_source\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| notice_tag\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| oid_associations\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| oid_nonces\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| profile\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| queue_item\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| remember_me\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| remote_profile\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| reply\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| sms_carrier\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| subscription\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| token\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| user\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n| user_openid\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 |\r\n+----------------------+\r\n26 rows in set (0.00 sec)<\/pre>\n<p>Skipped user access, since mysql user should already have access. Found one more thing to do:<\/p>\n<pre>cd domain.tld\/classes\r\ncp laconica.ini la_db.ini<\/pre>\n<p>The .ini file needs to be the same name as the MySQL database name.<\/p>\n<p>The above gave me basic functionality. I then tackled the following:<\/p>\n<h2>Pretty URL<\/h2>\n<p>Changed the config[&#8216;fancy&#8217;] option to true. I then copied htaccess.sample to .htaccess (within ~\/laconica.domain.tld). I then edited .htaccess and changed the line:<\/p>\n<pre>RewriteBase \/mublog\/<\/pre>\n<p>to be<\/p>\n<pre>RewriteBase \/<\/pre>\n<p>I have to do this because .htaccess sits in the same directory in which I installed laconica.<\/p>\n<h2>Email<\/h2>\n<p>I set up a new email address at laconica@laconica.domain.tld. I specified the following in the config.php file:<\/p>\n<pre>#Email info, used for all outbound email\r\n$config['mail']['notifyfrom'] = 'laconica@laconica.domain.tld';\r\n$config['mail']['domain'] = 'laconica.domain.tld';\r\n# See http:\/\/pear.php.net\/manual\/en\/package.mail.mail.factory.php for options\r\n$config['mail']['backend'] = 'smtp';\r\n$config['mail']['params'] = array(\r\n                                                        'host' =&gt; 'mail.laconica.domain.tld',\r\n                                                        'port' =&gt; 25,\r\n                                                        'auth' =&gt; true,\r\n                                                        'username' =&gt; 'laconica@laconica.domain.tld',\r\n                                                        'password' =&gt; 'xxxxxxxxxxxxxxx'\r\n                                                        );\r\n#For incoming email, if enabled. Defaults to site server name.\r\n#$config['mail']['domain'] = 'incoming.example.net';<\/pre>\n<p>Note that that last (commented) line is redundant. Unfortunately, posting by email won&#8217;t work. What needs to happen is a php script needs to get executed upon receipt of an email. This can&#8217;t happen, because DreamHost doesn&#8217;t support email addresses being tied to UNIX accounts. I&#8217;d like to disable the laconica &#8220;Post by email&#8221; feature altogether, but I&#8217;m not sure how.<\/p>\n<h2>Jabber\/XMPP<\/h2>\n<p>One nice feature with DreamHost is that you can host your own Jabber accounts. I set up a custom-hosted Jabber account laconica@laconica.domain.tld for a post\/notify bot. It hasn&#8217;t activated yet, so I have no confirmation on whether it works. Anyway, here are the changes to config.php:<\/p>\n<p># xmpp<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;enabled&#8217;] = true;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;server&#8217;] = &#8216;laconica.domain.tld&#8217;;<br \/>\n#$config[&#8216;xmpp&#8217;][&#8216;host&#8217;] = NULL;\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 # Only set if different from server<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;port&#8217;] = 5222;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;user&#8217;] = &#8216;laconica&#8217;;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;encryption&#8217;] = false;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;resource&#8217;] = &#8216;zzzzzzz&#8217;;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;password&#8217;] = &#8216;xxxxxxxxxxxxxxxxxxx&#8217;;<br \/>\n$config[&#8216;xmpp&#8217;][&#8216;public&#8217;][] = &#8216;laconica@laconica.domain.tld&#8217;;<br \/>\n#$config[&#8216;xmpp&#8217;][&#8216;debug&#8217;] = false;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I got a laconica install going on DreamHost. I&#8217;ve been able to post from the web, but I&#8217;ve found that posting from email won&#8217;t work with DreamHost. The jury is still out on posting from Jabber, but I&#8217;m optimistic. I&#8217;ll update this post when I know more. I was able to get notifications of new [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[97,20,96,90,94,95],"class_list":["post-243","post","type-post","status-publish","format-standard","hentry","category-web","tag-config","tag-dreamhost","tag-install","tag-jabber","tag-laconica","tag-xmpp"],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/comments?post=243"}],"version-history":[{"count":15,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/243\/revisions"}],"predecessor-version":[{"id":258,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/243\/revisions\/258"}],"wp:attachment":[{"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/media?parent=243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/categories?post=243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/poojanblog.com\/blog\/wp-json\/wp\/v2\/tags?post=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}