Recovered from the older tannerjc.net wiki snapshot dated January 23, 2016.

TriangleBeats.com

Calendar

Mailing List

Chat

wiki

[john@trainwreck logs]$ tail irc.freenode.#drupal.weechatlog  -n 120 | grep abaddon | grep John25
2010-11-16 22:29:45	abaddon	John2583: theres a combination of modules you can use, ill paste a few that i used if you hold on a sec.
2010-11-16 22:29:52	John2583	abaddon: yes, thanks
2010-11-16 22:30:24	John2583	abaddon: er, i saw a post someone showed with a *ton* of modules he used to get a wiki, but i was looking for
something more contained.. but let me see what you got
2010-11-16 22:31:47	John2583	abaddon: this guy used about 9 modules to get a wiki http://www.starbowconsulting.com/node/111
2010-11-16 22:31:51	abaddon	John2583: better_formats clickpath content_access content_lock diff edit_section filefield filefield_sources
 flexifilter footnotes freelinking  ckeditor with imce  interwiki quote recent_changes tableofcontents talk wikitools
2010-11-16 22:32:13	John2583	abaddon: ugh. i was hoping for more easy than that..
2010-11-16 22:32:17	abaddon	John2583: the wiki is private, i cant send a link, but its great for what i needed
2010-11-16 22:32:30	John2583	abaddon: does it feel like mediawiki?
2010-11-16 22:32:38	abaddon	John2583: easier than it sounds, i got it functioning in a few hours
2010-11-16 22:32:43	John2583	abaddon: really
2010-11-16 22:32:50	John2583	abaddon: make a howto ;-)
2010-11-16 22:32:58	abaddon	John2583: yep, mediawiki but simpler, or so i see it
2010-11-16 22:33:08	John2583	abaddon: ok well maybe i will give that a shot
2010-11-16 22:33:11	John2583	abaddon: thanks
2010-11-16 22:34:15	abaddon	John2583: there is a wiki install profile, i think, but i didnt try it, i think it wont have all those features
2010-11-16 22:35:57	abaddon	John2583: http://drupal.org/project/drupal_wiki and http://drupal-wiki.com/en/drupal-wiki-enterprise-wiki

twitter/RSS integration

web analytics

http://piwik.org/ http://drupal.org/project/piwik

Development Server Setup

[root@trainwreck qemu]# virt-install -n vission -r 360 --os-variant=fedora13 --vcpus=1 --disk=/var/lib/libvirt/images/vission.img,size=16 \
--vnc --vnclisten=0.0.0.0 --network=bridge=br0 -c /efserv/Software/ISOs/Fedora-13-x86_64-DVD.iso

Starting install...
Allocating 'vission.img'                                                                                      |  16 GB     00:00
Creating domain...

Mailman install/config

[root@vission ~]# yum install mailman
[root@vission mailman-2.1.12]# less /usr/share/doc/mailman-2.1.12/INSTALL.REDHAT
[root@laptop ~]# service httpd start
Starting httpd:                                            [  OK  ]
[root@laptop ~]# /usr/lib/mailma/bin/mmsitepass newpassword
Password changed.
[root@laptop etc]# /usr/lib/mailman/bin/mmsitepass -c
New list creator password:
Again to confirm password:
[root@laptop ~]# /usr/lib/mailman/bin/update
Upgrading from version 0x0 to 0x2010cf0
getting rid of old source files
no lists == nothing to do, exiting
[root@laptop ~]# /usr/lib/mailman/bin/newlist mailman
Enter the email of the person running the list: root@laptop.dj.edm
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:

## mailman mailing list
mailman:              |/usr/lib/mailman/mail/mailman post mailman
mailman-admin:        |/usr/lib/mailman/mail/mailman admin mailman
mailman-bounces:      |/usr/lib/mailman/mail/mailman bounces mailman
mailman-confirm:      |/usr/lib/mailman/mail/mailman confirm mailman
mailman-join:         |/usr/lib/mailman/mail/mailman join mailman
mailman-leave:        |/usr/lib/mailman/mail/mailman leave mailman
mailman-owner:        |/usr/lib/mailman/mail/mailman owner mailman
mailman-request:      |/usr/lib/mailman/mail/mailman request mailman
mailman-subscribe:    |/usr/lib/mailman/mail/mailman subscribe mailman
mailman-unsubscribe:  |/usr/lib/mailman/mail/mailman unsubscribe mailman

Hit enter to notify mailman owner...
[root@laptop ~]# service mailman start
Starting mailman:                                          [  OK  ]
[root@laptop ~]# chkconfig mailman on
[root@laptop ~]# echo DEFAULT_EMAIL_HOST = 'laptop.dj.edm'  /usr/lib/mailman/Mailman/mm_cfg.py
[root@laptop ~]# echo DEFAULT_URL_HOST = 'laptop.dj.edm'  /usr/lib/mailman/Mailman/mm_cfg.py
[root@laptop ~]# tail -n 5 /usr/lib/mailman/Mailman/mm_cfg.py

# Note - if you're looking for something that is imported from mm_cfg, but you
# didn't find it above, it's probably in Defaults.py.
DEFAULT_EMAIL_HOST = 'laptop.dj.edm'
DEFAULT_URL_HOST = 'laptop.dj.edm'
[root@laptop ~]# service mailman restart
Shutting down mailman:                                     [  OK  ]
Starting mailman:                                          [  OK  ]
[root@laptop ~]#
[root@laptop ~]# cd /etc/httpd/conf.d
[root@laptop conf.d]# ls
mailman.conf  mod_dnssd.conf  php.conf  proxy_ajp.conf  README  welcome.conf
[root@laptop conf.d]# cp mailman.conf mailman.conf.backup
[root@laptop conf.d]# vi mailman.conf
[root@laptop conf.d]# diff mailman.conf mailman.conf.backup
26c26
 RedirectMatch ^/mailman[/]*$ http://laptop.dj.edm/mailman/listinfo
---
 # RedirectMatch ^/mailman[/]*$ http://www.example.com/mailman/listinfo
[root@laptop conf.d]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@laptop conf.d]#
[root@laptop mail]# /usr/lib/mailman/bin/newlist community
Enter the email of the person running the list: john@laptop.dj.edm
Initial community password:
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:

## community mailing list
community:              |/usr/lib/mailman/mail/mailman post community
community-admin:        |/usr/lib/mailman/mail/mailman admin community
community-bounces:      |/usr/lib/mailman/mail/mailman bounces community
community-confirm:      |/usr/lib/mailman/mail/mailman confirm community
community-join:         |/usr/lib/mailman/mail/mailman join community
community-leave:        |/usr/lib/mailman/mail/mailman leave community
community-owner:        |/usr/lib/mailman/mail/mailman owner community
community-request:      |/usr/lib/mailman/mail/mailman request community
community-subscribe:    |/usr/lib/mailman/mail/mailman subscribe community
community-unsubscribe:  |/usr/lib/mailman/mail/mailman unsubscribe community

Hit enter to notify community owner...

[root@laptop mail]# vi /etc/aliases
[root@laptop mail]# cd /etc/
[root@laptop etc]# cp aliases aliases.backup
[root@laptop etc]# vi aliases
[root@laptop etc]# vi aliases
[root@laptop etc]# diff aliases aliases.backup
97,119d96
 ## mailman mailing list
 mailman:              |/usr/lib/mailman/mail/mailman post mailman
 mailman-admin:        |/usr/lib/mailman/mail/mailman admin mailman
 mailman-bounces:      |/usr/lib/mailman/mail/mailman bounces mailman
 mailman-confirm:      |/usr/lib/mailman/mail/mailman confirm mailman
 mailman-join:         |/usr/lib/mailman/mail/mailman join mailman
 mailman-leave:        |/usr/lib/mailman/mail/mailman leave mailman
 mailman-owner:        |/usr/lib/mailman/mail/mailman owner mailman
 mailman-request:      |/usr/lib/mailman/mail/mailman request mailman
 mailman-subscribe:    |/usr/lib/mailman/mail/mailman subscribe mailman
 mailman-unsubscribe:  |/usr/lib/mailman/mail/mailman unsubscribe mailman
 ## community mailing list
 community:              |/usr/lib/mailman/mail/mailman post community
 community-admin:        |/usr/lib/mailman/mail/mailman admin community
 community-bounces:      |/usr/lib/mailman/mail/mailman bounces community
 community-confirm:      |/usr/lib/mailman/mail/mailman confirm community
 community-join:         |/usr/lib/mailman/mail/mailman join community
 community-leave:        |/usr/lib/mailman/mail/mailman leave community
 community-owner:        |/usr/lib/mailman/mail/mailman owner community
 community-request:      |/usr/lib/mailman/mail/mailman request community
 community-subscribe:    |/usr/lib/mailman/mail/mailman subscribe community
 community-unsubscribe:  |/usr/lib/mailman/mail/mailman unsubscribe community

[root@laptop etc]# newaliases
/etc/aliases: 96 aliases, longest 54 bytes, 2031 bytes total

hmm this may be useful later on for linode that handles multiple domains:

    - Set the values for DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST in
      /usr/lib/mailman/Mailman/mm_cfg.py file if the fqdn of the host you are
      running mailman on is not the email and url host you need to use.

to disable moderation of all sent messages from members go to

http://laptop.dj.edm/mailman/admin/community Privacy options… Sender filters By default, should new list member postings be moderated? no

Sendmail setup

[root@laptop mail]# yum install sendmail-cf -y
snip
[root@laptop mail]# diff sendmail.mc sendmail.mc.backup
116c116
 DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
---
 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
[root@laptop mail]# make
[root@laptop mail]# service sendmail restart
Shutting down sm-client:                                   [  OK  ]
Shutting down sendmail:                                    [  OK  ]
Starting sendmail:                                         [  OK  ]
Starting sm-client:                                        [  OK  ]
[root@laptop mail]# netstat -tulnp | grep sendmail
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      3533/sendmail: acce

http://www.linuxselfhelp.com/quick/sendmail.html Configure MX records pointing to A records for mail server (not cname)

I couldn’t get the to envelope field to show the real hostname until I set it right in /etc/hosts

[root@laptop mail]# cat /etc/hosts
# hostname laptop.dj.edm added to /etc/hosts by anaconda
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.77.135 laptop.dj.edm

I also had to setup Masquerading

[root@laptop mail]# diff /etc/mail/sendmail.mc /etc/mail/sendmail.mc.backup
116c116
 DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
---
 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
160c160
 MASQUERADE_AS(`laptop.dj.edm')dnl
---
 dnl MASQUERADE_AS(`mydomain.com')dnl
164c164
 FEATURE(masquerade_envelope)dnl
---
 dnl FEATURE(masquerade_envelope)dnl
168c168
 FEATURE(masquerade_entire_domain)dnl
---
 dnl FEATURE(masquerade_entire_domain)dnl
170c170
 MASQUERADE_DOMAIN(laptop.dj.edm)dnl
---
 dnl MASQUERADE_DOMAIN(localhost)dnl

LAMP stack install

[root@vission ~]# yum install httpd mysql-server php php-mysql
[root@vission ~]# chkconfig httpd on
[root@vission ~]# chkconfig mysqld on

Drupal

Oct 14 11:30:09 laptop yum: Installed: php-mbstring-5.3.3-1.fc13.x86_64
Oct 14 11:30:12 laptop yum: Installed: t1lib-5.1.2-5.fc12.x86_64
Oct 14 11:30:13 laptop yum: Installed: php-gd-5.3.3-1.fc13.x86_64
Oct 14 11:30:15 laptop yum: Installed: drupal-6.19-1.fc13.noarch
[root@laptop mail]# rpm -q drupal
drupal-6.19-1.fc13.noarch
[root@laptop drupal]# /usr/sbin/setsebool -P httpd_can_sendmail 1

MySQL setup for drupal

[root@laptop ~]# service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK
snip

set root password for mysql

[root@laptop ~]# mysql_secure_installation
snip

create drupal database and user with required prvileges

[root@laptop ~]# mysqladmin -u root -p create drupal
Enter password:
[root@laptop ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.1.50 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON drupal.* to 'drupal'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

mysql

Apache setup for drupal

disable /drupal directory alias

[root@laptop ~]# cd /etc/httpd/conf.d
[root@laptop conf.d]# mv drupal.conf drupal.conf.no

we’ll use name based virtual hosting instead:

[root@laptop conf]# cp httpd.conf httpd.conf.backup
[root@laptop conf]# vi httpd.conf
[root@laptop conf.d]# diff /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup
975c975
 NameVirtualHost *:80
---
 #NameVirtualHost *:80
988,994c988,994
 VirtualHost laptop.dj.edm:80
     ServerAdmin john@laptop.dj.edm
     DocumentRoot /usr/share/drupal
     ServerName laptop.dj.edm
     ErrorLog logs/laptop.dj.edm-error_log
     CustomLog logs/laptop.dj.edm-access_log common
 /VirtualHost
---
 #VirtualHost *:80
 #    ServerAdmin webmaster@dummy-host.example.com
 #    DocumentRoot /www/docs/dummy-host.example.com
 #    ServerName dummy-host.example.com
 #    ErrorLog logs/dummy-host.example.com-error_log
 #    CustomLog logs/dummy-host.example.com-access_log common
 #/VirtualHost

disable the Fedora test page:

[root@laptop conf.d]# mv welcome.conf welcome.conf.backup
[root@laptop conf.d]# echo hi   /var/www/html/index.html
[root@laptop conf.d]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

now laptop.dj.edm goes to the /usr/share/drupal site, any other requests on diff DNS or IPs will get the default /var/www/html/ site

setup drupal via the web: http://laptop.dj.edm/

[root@laptop default]# pwd
/etc/drupal/default
[root@laptop default]# ls -lZ
lrwxrwxrwx. root   root   unconfined_u:object_r:httpd_sys_rw_content_t:s0 files - ../../../../var/lib/drupal/files/default
-rwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 settings.php

enable virtual hosts for other domains

[root@laptop www]# diff /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup
975c975
 NameVirtualHost *:80
---
 #NameVirtualHost *:80
988,1006c988,994
 VirtualHost *:80
     ServerAdmin john@laptop.dj.edm
     DocumentRoot /usr/share/drupal
     ServerName laptop.dj.edm
     ErrorLog logs/laptop.dj.edm-error_log
     CustomLog logs/laptop.dj.edm-access_log common
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
 /VirtualHost
 VirtualHost *:80
     ServerAdmin john@laptop.dj.edm
     DocumentRoot /var/www/jimbrier.com
     ServerName jimbrier.com
     ErrorLog logs/jimbrier.com-error_log
     CustomLog logs/jimbrier.com-access_log common
 /VirtualHost
---
 #VirtualHost *:80
 #    ServerAdmin webmaster@dummy-host.example.com
 #    DocumentRoot /www/docs/dummy-host.example.com
 #    ServerName dummy-host.example.com
 #    ErrorLog logs/dummy-host.example.com-error_log
 #    CustomLog logs/dummy-host.example.com-access_log common
 #/VirtualHost

create virtual host directory with proper SELinux attributes

[root@laptop conf]# cd /var/www
[root@laptop www]# ls -lZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
[root@laptop www]# mkdir jimbrier.com
[root@laptop www]# ls -lZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 jimbrier.com
[root@laptop www]# chcon --reference html jimbrier.com/
[root@laptop www]# ls -lZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 jimbrier.com
[root@laptop www]# echo jimbrier.com  jimbrier.com/index.html

enable mod_rewrite for drupal

http://drupal.org/node/43788

http://drupal.org/node/54231#comment-102528

[root@laptop conf.d]# diff /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup
975c975
 NameVirtualHost *:80
---
 #NameVirtualHost *:80
988,1008c988,994
 VirtualHost *:80
     ServerAdmin john@trianglebeats.com
     DocumentRoot /usr/share/drupal
     ServerName trianglebeats.com
     ServerAlias www.trianglebeats.com
     ErrorLog logs/trianglebeats.com-error_log
     CustomLog logs/trianglebeats.com--access_log common
     RewriteEngine on
     RewriteCond  %{REQUEST_FILENAME} !^/mailman
     RewriteCond  %{REQUEST_FILENAME} !^/$
     RewriteCond  %{REQUEST_FILENAME} !^/(files|misc|uploads)(/.*)?
     RewriteCond  %{REQUEST_FILENAME} !\.(php|ico|png|jpg|gif|css|js|html?)(\W.*)?
     RewriteRule ^/(.*)$ /index.php?q=$1 [L,QSA]
 /VirtualHost
 VirtualHost *:80
     ServerAdmin john@laptop.dj.edm
     DocumentRoot /var/www/jimbrier.com
     ServerName jimbrier.com
     ErrorLog logs/jimbrier.com-error_log
     CustomLog logs/jimbrier.com-access_log common
 /VirtualHost
---
 #VirtualHost *:80
 #    ServerAdmin webmaster@dummy-host.example.com
 #    DocumentRoot /www/docs/dummy-host.example.com
 #    ServerName dummy-host.example.com
 #    ErrorLog logs/dummy-host.example.com-error_log
 #    CustomLog logs/dummy-host.example.com-access_log common
 #/VirtualHost

=== Modules for calendar ===
[root@laptop modules]# ls
calendar-6.x-2.2.tar.gz  cck  cck-6.x-2.8.tar.gz  date-6.x-2.6.tar.gz  views-6.x-2.11.tar.gz
[root@laptop modules]# pwd
/etc/drupal/all/modules
[root@laptop modules]# ls
calendar-6.x-2.2.tar.gz  cck  cck-6.x-2.8.tar.gz  date-6.x-2.6.tar.gz  views-6.x-2.11.tar.gz
[root@laptop modules]# tar -xf date-6.x-2.6.tar.gz
[root@laptop modules]# tar -xf calendar-6.x-2.2.tar.gz
[root@laptop modules]# tar -xf views-6.x-2.11.tar.gz
[root@laptop modules]# ls
calendar                 cck                 date                 views
calendar-6.x-2.2.tar.gz  cck-6.x-2.8.tar.gz  date-6.x-2.6.tar.gz  views-6.x-2.11.tar.gz
[root@laptop modules]#

After enabling the calendar module I ran into this bug: http://drupal.org/node/613528

PHP 5.3 issue - Attempt to modify property of non-object (Calendar Module)

I ‘rm -rf calendar’ and downloaded the dev version of calendar per the bug and that resolved the issue

After working with views I ran into this bug: http://drupal.org/node/452384

Make Views compatible with PHP 5.3 (but don’t break it for PHP 4.x)

fixed that by following

http://drupal.org/node/452384#comment-3219914

Removing the in line 1511 in includes/admin.inc in

function views_ui_build_form_state($js, $key, $view, $display_id, $args) {

helped! (#78; Views 6.x-2.11)’'

List Handler

[root@laptop modules]# wget http://ftp.drupal.org/files/projects/listhandler-6.x-1.0.tar.gz
[root@laptop modules]# tar -xf listhandler-6.x-1.0.tar.gz

Mailhandler

[root@laptop modules]# wget http://ftp.drupal.org/files/projects/mailhandler-6.x-1.11.tar.gz
[root@laptop modules]# tar -xf mailhandler-6.x-1.11.tar.gz

MailHandler requires php IMAP support or it won’t enable:

[root@laptop modules]# yum install php-imap -y
[root@laptop modules]# service httpd restart

HowTo: Integrate mailing lists with forums using Listhandler and Mailhandler

http://drupal.org/node/40777

  • Todo
  • figure out why posts from Mailhandler are not automatically approved.
  • I think it’s because the user used to post the comment is not authenticated specifically, since it comes in through mailhandler

http://trianglebeats.com/admin/user/permissions#module-comment

http://trianglebeats.com/admin/content/comment

Mailman Manager

Todo Mailman Manager http://drupal.org/project/mailman_manager - provides an interface through which users can subscribe to mailing lists run by Mailman.

Cron

mailhandler checks the configured email address that is subscribed to mailman whenever the drupal cron is run.

todo: http://drupal.org/cron

can be run manually here:

http://trianglebeats.com/admin/reports/status

multisite setup

[root@vission drupal]# vi /usr/share/drupal/includes/bootstrap.inc
/**
 * Find the appropriate configuration directory.
 *
 * Try finding a matching configuration directory by stripping the website's
 * hostname from left to right and pathname from right to left. The first
 * configuration file found will be used; the remaining will ignored. If no
 * configuration file is found, return a default value '$confdir/default'.
 *
 * Example for a fictitious site installed at
 * http://www.drupal.org:8080/mysite/test/ the 'settings.php' is searched in
 * the following directories:
 *
 *  1. $confdir/8080.www.drupal.org.mysite.test
 *  2. $confdir/www.drupal.org.mysite.test
 *  3. $confdir/drupal.org.mysite.test
 *  4. $confdir/org.mysite.test
 *
 *  5. $confdir/8080.www.drupal.org.mysite
 *  6. $confdir/www.drupal.org.mysite
 *  7. $confdir/drupal.org.mysite
 *  8. $confdir/org.mysite
 *
 *  9. $confdir/8080.www.drupal.org
 * 10. $confdir/www.drupal.org
 * 11. $confdir/drupal.org
 * 12. $confdir/org
 *
 * 13. $confdir/default
[root@vission drupal]# pwd
/etc/drupal
[root@vission drupal]# ls
all  default  doublevission.dj.edm  trianglebeats.com
[root@vission drupal]# ls -l
total 16
drwxr-xr-x. 3 root root 4096 Oct 16 12:33 all
drwxr-xr-x. 2 root root 4096 Nov 13 19:17 default
drwxr-xr-x. 2 root root 4096 Nov 13 21:22 doublevission.dj.edm
drwxr-xr-x. 2 root root 4096 Nov 13 00:30 trianglebeats.com
[root@vission drupal]# ls -l all
total 4
drwxr-xr-x. 9 root root 4096 Oct 16 16:18 modules
[root@vission drupal]# ls -l all/modules/
total 3764
drwxr-xr-x.  9 6226 6226    4096 Aug 22 20:04 calendar
-rw-r--r--.  1 root root  477488 Jul 29  2009 calendar-6.x-2.2.tar.gz
-rw-r--r--.  1 root root  490883 Aug 22 20:04 calendar-6.x-2.x-dev.tar.gz
drwxr-xr-x.  8 6226 6226    4096 Aug 11 19:56 cck
-rw-r--r--.  1 root root  440596 Aug 11 19:56 cck-6.x-2.8.tar.gz
drwxr-xr-x. 15 6226 6226    4096 Aug 14 07:56 date
-rw-r--r--.  1 root root  671779 Aug 14 07:56 date-6.x-2.6.tar.gz
drwxr-xr-x.  4 1080 1080    4096 Oct 26 21:33 listhandler
-rw-r--r--.  1 root root   22100 Mar 14  2009 listhandler-6.x-1.0.tar.gz
drwxr-xr-x.  3 1080 1080    4096 Oct 26 20:03 mailhandler
-rw-r--r--.  1 root root   29759 Jun 13 14:05 mailhandler-6.x-1.11.tar.gz
drwxr-xr-x.  3 1080 1080    4096 Mar 20  2009 mailman_manager
-rw-r--r--.  1 root root   13353 Mar 20  2009 mailman_manager-6.x-2.3.tar.gz
drwxr-xr-x. 14 1080 1080    4096 Jun 16 23:00 views
-rw-r--r--.  1 root root 1662750 Jun 16 23:00 views-6.x-2.11.tar.gz
[root@vission drupal]# ls -l doublevission.dj.edm/
total 12
-r-xr-xr-x. 1 root root 9500 Nov 13 20:12 settings.php
[root@vission drupal]#

themes

adding a theme to a development instance

ssh to virtual machine:

[john@farina ~]$ ssh awcrosby@vission.dj.edm
awcrosby@vission.dj.edm's password:

use sudo to elevate privileges to root

[awcrosby@vission ~]$ sudo su -

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for awcrosby:
cd to the dev instance site configuration for drupal (in this case doublevission.dj.edm)
[root@vission ~]# cd /etc/drupal/
[root@vission drupal]# ls
all  default  doublevission.dj.edm  trianglebeats.com
[root@vission drupal]# cd doublevission.dj.edm/
[root@vission doublevission.dj.edm]# ls
files  settings.php  themes

cd into the themes directory and download the new theme you want to install

[root@vission doublevission.dj.edm]# cd themes/
[root@vission themes]# ls
pixture_reloaded  pixture_reloaded-6.x-3.2.tar.gz
[root@vission themes]# wget http://ftp.drupal.org/files/projects/sky-6.x-3.10.tar.gz
--2010-11-14 12:26:33--  http://ftp.drupal.org/files/projects/sky-6.x-3.10.tar.gz
Resolving ftp.drupal.org... 64.50.236.52, 64.50.233.100
Connecting to ftp.drupal.org|64.50.236.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 337905 (330K) [application/x-gzip]
Saving to: “sky-6.x-3.10.tar.gz”

100%[=============================================================] 337,905      721K/s   in 0.5s

2010-11-14 12:26:34 (721 KB/s) - “sky-6.x-3.10.tar.gz” saved [337905/337905]

untar the theme and you’re done

[root@vission themes]# tar -xvf sky-6.x-3.10.tar.gz
sky/
sky/css/
sky/css/admin.css
sky/css/forums.css
sky/css/ie-6.css
sky/css/ie-7.css
sky/css/layout.css
sky/css/sprites-ref.css
sky/README.txt
sky/favicon.ico
sky/logo.png
sky/screenshot-drupal.org.png
sky/screenshot.png
sky/sky.info
sky/style.css
sky/template.php
sky/theme-settings.php
sky/functions/
sky/functions/theme-custom.inc
sky/functions/theme-overrides.inc
sky/images/
sky/images/bg-body.png
sky/images/bg-buttons.png
sky/images/bg-cite.png
sky/images/bg-header.png
sky/images/bg-shade-dark-flip.png
sky/images/bg-shade-dark.png
sky/images/bg-shade-gray-lrg.png
sky/images/bg-shade-light-flip.png
sky/images/bg-shade-light.png
sky/images/bg-shade-medium.png
sky/images/bg-shade-white-lrg-flip.png
sky/images/bg-shade-white-lrg.png
sky/images/bg-shade-white-sml.png
sky/images/icn-arrow-down-light.png
sky/images/icn-arrow-right-light.png
sky/images/icn-feed.png
sky/images/icn-link.png
sky/images/sprites-16.png
sky/images/sprites-32.png
sky/images/sprites-sky.png
sky/images/transparent.gif
sky/preprocess/
sky/preprocess/preprocess-block.inc
sky/preprocess/preprocess-comment-wrapper.inc
sky/preprocess/preprocess-comment.inc
sky/preprocess/preprocess-node.inc
sky/preprocess/preprocess-page.inc
sky/preprocess/preprocess-views-view.inc
sky/scripts/
sky/scripts/hoverIntent.js
sky/scripts/iepngfix.htc
sky/scripts/sky.js
sky/scripts/superfish.js
sky/templates/
sky/templates/overrides/
sky/templates/overrides/block.tpl.php
sky/templates/overrides/comment-forum.tpl.php
sky/templates/overrides/comment-wrapper.tpl.php
sky/templates/overrides/comment.tpl.php
sky/templates/overrides/node-forum.tpl.php
sky/templates/overrides/node.tpl.php
sky/templates/overrides/page.tpl.php
sky/templates/overrides/user-picture.tpl.php
sky/templates/overrides/views-more.tpl.php
sky/templates/overrides/views-view.tpl.php
sky/LICENSE.txt
[root@vission themes]#

Now you can see the new theme by reloading http://doublevission.dj.edm/admin/build/themes

editing a default theme

If you want to edit a default theme you need to copy it from the installed directory to the unique site where you want to edit it

so now we are inside of /etc/drupal/doublevission.dj.edm

[root@vission themes]# ls
pixture_reloaded  pixture_reloaded-6.x-3.2.tar.gz  sky  sky-6.x-3.10.tar.gz

make a new directory for the garland (default) theme called ‘garland-copy’

[root@vission themes]# mkdir garland-copy

copy over the default garland theme from the /usr/share/drupal/themes/garland/ to /etc/drupal/doublevission.dj.edm/themes/garland-copy/

[root@vission themes]# cp -av /usr/share/drupal/themes/garland/* /etc/drupal/doublevission.dj.edm/themes/garland-copy/
`/usr/share/drupal/themes/garland/block.tpl.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/block.tpl.php'
`/usr/share/drupal/themes/garland/color' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/color'
`/usr/share/drupal/themes/garland/color/color.inc' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/color/color.inc'
`/usr/share/drupal/themes/garland/color/base.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/color/base.png'
`/usr/share/drupal/themes/garland/color/preview.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/color/preview.css'
`/usr/share/drupal/themes/garland/color/preview.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/color/preview.png'
`/usr/share/drupal/themes/garland/comment.tpl.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/comment.tpl.php'
`/usr/share/drupal/themes/garland/fix-ie.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/fix-ie.css'
`/usr/share/drupal/themes/garland/fix-ie-rtl.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/fix-ie-rtl.css'
`/usr/share/drupal/themes/garland/garland.info' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/garland.info'
`/usr/share/drupal/themes/garland/images' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images'
`/usr/share/drupal/themes/garland/images/menu-expanded.gif' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/menu-expanded.gif'
`/usr/share/drupal/themes/garland/images/bg-bar-white.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-bar-white.png'
`/usr/share/drupal/themes/garland/images/body.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/body.png'
`/usr/share/drupal/themes/garland/images/bg-content-right.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-content-right.png'
`/usr/share/drupal/themes/garland/images/gradient-inner.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/gradient-inner.png'
`/usr/share/drupal/themes/garland/images/menu-leaf.gif' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/menu-leaf.gif'
`/usr/share/drupal/themes/garland/images/bg-navigation-item.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-navigation-item.png'
`/usr/share/drupal/themes/garland/images/bg-navigation-item-hover.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-navigation-item-hover.png'
`/usr/share/drupal/themes/garland/images/menu-collapsed-rtl.gif' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/menu-collapsed-rtl.gif'
`/usr/share/drupal/themes/garland/images/bg-content.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-content.png'
`/usr/share/drupal/themes/garland/images/task-list.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/task-list.png'
`/usr/share/drupal/themes/garland/images/bg-navigation.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-navigation.png'
`/usr/share/drupal/themes/garland/images/bg-content-left.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-content-left.png'
`/usr/share/drupal/themes/garland/images/bg-tab.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-tab.png'
`/usr/share/drupal/themes/garland/images/menu-collapsed.gif' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/menu-collapsed.gif'
`/usr/share/drupal/themes/garland/images/bg-bar.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/images/bg-bar.png'
`/usr/share/drupal/themes/garland/logo.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/logo.png'
`/usr/share/drupal/themes/garland/maintenance-page.tpl.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/maintenance-page.tpl.php'
`/usr/share/drupal/themes/garland/minnelli' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli'
`/usr/share/drupal/themes/garland/minnelli/logo.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/logo.png'
`/usr/share/drupal/themes/garland/minnelli/minnelli.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/minnelli.css'
`/usr/share/drupal/themes/garland/minnelli/minnelli.info' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/minnelli.info'
`/usr/share/drupal/themes/garland/minnelli/screenshot.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/screenshot.png'
`/usr/share/drupal/themes/garland/minnelli/color' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/color'
`/usr/share/drupal/themes/garland/minnelli/color/color.inc' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/color/color.inc'
`/usr/share/drupal/themes/garland/minnelli/color/base.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/color/base.png'
`/usr/share/drupal/themes/garland/minnelli/color/preview.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/minnelli/color/preview.png'
`/usr/share/drupal/themes/garland/node.tpl.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/node.tpl.php'
`/usr/share/drupal/themes/garland/page.tpl.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/page.tpl.php'
`/usr/share/drupal/themes/garland/print.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/print.css'
`/usr/share/drupal/themes/garland/screenshot.png' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/screenshot.png'
`/usr/share/drupal/themes/garland/style.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/style.css'
`/usr/share/drupal/themes/garland/style-rtl.css' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/style-rtl.css'
`/usr/share/drupal/themes/garland/template.php' - `/etc/drupal/doublevission.dj.edm/themes/garland-copy/template.php'
[root@vission themes]# ls
garland-copy  pixture_reloaded  pixture_reloaded-6.x-3.2.tar.gz  sky  sky-6.x-3.10.tar.gz
[root@vission themes]# ls garland-copy/
block.tpl.php    fix-ie.css      images                    minnelli      print.css       style-rtl.css
color            fix-ie-rtl.css  logo.png                  node.tpl.php  screenshot.png  template.php
comment.tpl.php  garland.info    maintenance-page.tpl.php  page.tpl.php  style.css

now we need to change the name of the garland theme from Garland to garland-copy.. otherwise drupal will ignore it as a duplicate of what is already in /usr/share/drupal/themes/garland

[root@vission themes]# cd garland-copy/
[root@vission garland-copy]# ls
block.tpl.php    fix-ie.css      images                    minnelli      print.css       style-rtl.css
color            fix-ie-rtl.css  logo.png                  node.tpl.php  screenshot.png  template.php
comment.tpl.php  garland.info    maintenance-page.tpl.php  page.tpl.php  style.css
[root@vission garland-copy]# cp garland.info garland.info.backup
[root@vission garland-copy]# vi garland.info
[root@vission garland-copy]# diff garland.info garland.info.backup
2c2
 name = Garland-copy
---
 name = Garland
[root@vission garland-copy]#

now you can edit the css files or whatever of this default theme to your hearts content and not mess up other drupal sites installed on the same server

Forums

flat comments

http://drupal.org/project/flatcomments

avatars from profile

http://support.moonpoint.com/network/web/cms/drupal/avatars.php

images inline in content

troubleshooting

when clean URLs break, disable them directly, or manually