File: INSTALL

package info (click to toggle)
slash 2.2.6-8etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 3,672 kB
  • ctags: 1,915
  • sloc: perl: 23,113; sql: 1,878; sh: 433; makefile: 233
file content (655 lines) | stat: -rw-r--r-- 27,050 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
NAME
    INSTALL - Slash Installation

SYNOPSIS
    This document describes how to install Slash 2.2. For instructions on
    installation or upgrade of previous versions of Slash, see the INSTALL
    document included with those distributions.

    These instructions have only been tested on Linux. Installation under
    BSD and other Unix OSes should work similarly, but there are problems
    with the Makefile and installtion under some non-Linux OSes. Feel free
    to submit bug reports (better, patches) for any such problems. We've had
    reports of the 1.0.x version of Slash running on Windows, but have done
    no testing and have no further information, and have no information
    about Slash 2 running on Windows.

    PostgreSQL support in Slash 2 is currently alpha-quality.

    Slash can always be downloaded from SourceForge.net, from the FTP site,
    and via CVS.

            http://sf.net/projects/slashcode/
            ftp://ftp.slashcode.com//pub/slashcode/
            http://cvs.slashcode.com/

    See the SourceForge.net page for patches and bug reports.

  Important Note

    The software and hardware requirements are listed at the end of the
    document, because we know you want to get right into the installation.
    Please read those requirements if you have any question about what might
    be required.

    Upgrading information is also toward the end of the document.

INSTALLATION
  Installation Notes

    *   For slashd (see utils/slash, which starts slashd), mod_perl (see
        httpd/httpd.conf), and MySQL, we set all processes to run in GMT.
        Then it is easy to convert dates to whatever the user's local time
        is. If you have date offset problems, check that all of these are
        properly set to run in GMT.

    *   You cannot have different versions of the Slash modules installed
        for different sites on the same Apache server. Well, if you want to,
        you can try the Apache::PerlVINC module, but this is not recommended
        for performance reasons. Slash is designed to have one shared core
        of code for all Slash sites on a system. (This is made easier than
        it was in 1.0.x, where to customize a site, you needed to change the
        module code; this should no longer be necessary.)

    *   All of the installation steps below should be executed as root.

  Installation Procedure

    There are six steps to installation. Skip the parts you already have
    installed (making sure you have the correct versions). Make sure to read
    the special note about Apache / mod_perl installation.

    1.  Install MySQL.

        Please refer to MySQL documentation for compilation and/or
        installation notes for any questions with this process. Find the
        script that runs mysql (probably safe_mysqld) and add these lines to
        the beginning of it:

                TZ=GMT
                export TZ

        Start MySQL (it must be running for the installation of Perl modules
        and Slash).

        Create a database to be used by Slash.

        Create a username/password that can access that database (by
        default, we normally set the user to have all permissions, but that
        might not be appropriate for your site; make sure that you have at
        least privileges to select, insert, update, delete, create, drop,
        and index).

    2.  Install perl.

        perl is likely already installed on your machine; make sure its
        version is at least the minimum required (see the section on
        "REQUIREMENTS").

    3.  Install Apache and mod_perl.

        You MUST install mod_perl and Apache as directed here. OK, that is
        not strictly true, but it is *mostly* true. If you already have
        mod_perl installed, it is probably not configured properly to work
        with Slash and you will have to rebuild it. [If you are using the
        provided httpd.conf file from the slash distribution, and find that
        Apache is giving you errors, chances are mod_perl is not installed
        correctly, and you need to build it from scratch.] Of course, if you
        have your own Apache modules or build options, you will need to
        modify the instructions here appropriately.

        First, untar apache and mod_perl. Then, go to the mod_perl
        directory, and have mod_perl build and install apache for you:

                perl Makefile.PL APACHE_SRC=/where_you_have_the_source DO_HTTPD=1 \
                        USE_APACI=1 PERL_MARK_WHERE=1 EVERYTHING=1 \
                        APACHE_PREFIX=/where_apache_will_be_installed
                make
                make test
                make install

        NOTE: You may be unsuccessful with "make test" if the perl modules
        are not yet installed. However, some Perl modules will not install
        without Apache and mod_perl installed. If you wish, come back and
        run "make test" after installing here, and then installing the Perl
        modules, to make sure everything is OK.

    4.  Install the Perl modules.

        The best way to do this is with the CPAN module.

        You might also wish to install each module by hand, using
        distributions found on the CPAN. See the perlmodinstall manpage for
        more information on installing perl modules.

        IMPORTANT NOTES:

        Overactive CPAN
            With some versions of the CPAN module, the module will try to
            download and install the latest version of Perl. Watch what the
            module is doing; if it begins to download an entire perl
            distribution, interrupt it (hit ctrl-C) until it stops, then try
            again with the CPAN module. This should not be an issue in the
            latest version of Bundle::Slash.

        Uninstalling Old Modules
            Sometimes, you will be installing a newer version of a module
            that exists elsewhere on the system. You might want to tell the
            CPAN module to automatically remove older files. To do that from
            the CPAN shell, type:

                    cpan> o conf make_install_arg UNINST=1

        Old Version
            If you have previously installed Bundle::Slash, you will want to
            install it again, but you will need to delete the existing
            version. Go to your .cpan/Bundle directory (usually
            ~/.cpan/Bundle/) and remove Slash.pm.

        Additional Libraries
            You must have certain libraries existing on your system before
            building, for Compress::Zlib and XML::Parser (see the section on
            "REQUIREMENTS").

        BSD
            If running BSD, also install the BSD::Resource module.

        Alternate DBs
            If not using MySQL, just allow the installation of its drivers
            to continue, and possibly fail. Then install the driver you need
            (e.g., for PostgreSQL, use "DBD::Pg") using the CPAN shell.

        DBIx::Password
            When installing DBIx::Password, you will be asked for various
            information, the same information used to create the database
            and database user in Step 1. You will also be asked for a
            virtual user name, which will be the identifier for all of this
            data. You can just use the name of your site, or any other
            alphanumeric string. You will use this virtual user name in
            other places, so do not forget it.

        libnet Broken
            libnet is currently broken somewhat in its tests. Please use
            "install Net::Cmd" first, before you install anything else. If
            it fails only tests 8 and 9 of t/require, then it is OK; just do
            "force install Net::Cmd", then continue on with the rest of the
            modules installation.

        To use the CPAN module, invoke the CPAN shell:

                perl -MCPAN -e shell

        After it has been configured, install Bundle::Slash:

                cpan> install Bundle::Slash

        To read the README for any module, before or after installing:

                cpan> readme MODULE

        If you have problems, feel free to re-run "install Bundle::Slash".
        It will safely skip anything already installed.

        To read the documentation of any of the modules, once they have been
        installed, type "perldoc MODULE" at the command line.

    5.  Install Slash.

        Unpack the distribution and go to the new directory that creates,
        and type:

                make
                make install

        Note: you will want the GNU versions of fileutils (version 4.0
        recommended, for cp and install) and make. Older versions of
        install, and make and cp from other systems, might not work.

        There are a few options to "make" and "make install" you may want to
        change.

                option          default                 purpose
                ==========================================================
                SLASH_PREFIX    /usr/local/slash        Location for
                                                        installed files
                INIT            /etc or /etc/rc.d       Location for init
                                                        scripts
                USER            nobody                  User to own files
                GROUP           nobody                  Group to own files
                CP              cp                      Name of or path to
                                                        alternate `cp`
                INSTALL         install                 Name of or path to
                                                        alternate `install`

        (USER and GROUP will also be changed later on a per-site basis, in
        step 6. while running install-slashsite.)

        So, for example, you might type (although the default SLASH_PREFIX
        is *strongly* recommended):

                make SLASH_PREFIX=/home/slash
                make install SLASH_PREFIX=/home/slash

        When done, a configuration file for Apache will be created at
        $SLASH_PREFIX/slash.conf. You can put its contents into your
        httpd.conf, or you can just "Include" it in your httpd.conf.

        WARNING!

        Please be aware that if you include $SLASH_PREFIX/slash.conf or
        $SLASH_PREFIX/sites/sitename/sitename.conf more than once, or if
        this file shares contents with directives in httpd.conf, that your
        Slash site WILL break. The directives in $SLASH_PREFIX/slash.conf
        should be run only ONCE in any any site context. Read through
        $SLASH_PREFIX/slash.conf to make sure it all looks proper.

    6.  Install your Slash site.

        Go to your installation directory (by default, /usr/local/slash) and
        execute (where "VIRTUAL_USER" is the name of the virtual user given
        in the DBIx::Password distribution):

                bin/install-slashsite -u VIRTUAL_USER

        The program will prompt for answers to several configuration
        questions. Answer the questions. When done, another configuration
        file will be created at $SLASH_PREFIX/$SITENAME/$SITENAME.conf. You
        can put its contents unto your httpd.conf, or you can just "Include"
        it in your httpd.conf.

        NOTE: Read the message printed at the end of running
        install_slashsite.

    7.  Start it up.

        After installation of the site is done, and Apache has been stopped
        and started (do NOT try to restart Apache, but do a full stop and
        start), run slashd. This should be done via the init script:

                /etc/init.d/slash start

        slashd is the daemon that runs routine maintenance on Slash sites,
        including sending out daily mailings, cleaning up the database, and
        updating stories. The init script above will start up an individual
        slashd daemon process process for each installed site.

INSTALLATION OPTIONS
  Multiple Servers

    You can, of course, have a separate database server from your Slash
    server. Further, you can have multiple web servers for one Slash site.
    Slashdot, for instance, has one primary server with all of the code
    (Apache, perl, etc.), and it runs slashd and NFS. Each web server then
    mounts the code read-only over NFS. Some notes:

    *   Make sure the MySQL server allows the user to log in from each web
        server, and the NFS server.

    *   Make sure, if you use the same httpd tree on all machines, that the
        httpd.conf is listening to the proper IP addresses. This can be done
        by putting all of the IP addresses in the conf file, or by having a
        separate Listen file on each machine. Similarly, make sure that each
        web server's logfiles unique to each machine, not written to the NFS
        volumes.

  Virtual Hosts

    Slash has support for virtual hosts, so you can have multiple Slash
    sites on one machine. Simply execute step 6 in the install process for
    each Slash site (after adding a new virtual user to DBIx::Password for
    each).

  SSL

    In Slash, there are two variables for the root URL of the site.
    absolutedir is the full URL, including protocol, while rootdir is the
    URL without protocol:

            absolutedir     http://slashcode.com
            rootdir         //slashcode.com

    absolutedir is used only for creating external links to the site (such
    as in RSS files). rootdir is used for internal links; that way, you can
    use the same HTML pages for SSL and non-SSL. You don't have to do
    anything special to the code or preferences to allow it to work with SSL
    by itself, SSL and non-SSL together, or non-SSL by itself.

  Non-Root

    It is possible to install and run everything here without root.

    Describing the process for a non-root install would take up significant
    space and time, having to account for differences in various systems,
    and all the workarounds necessary for it to work.

    If you must have a non-root install, consult the various documentation
    for Apache, MySQL, and perl about running and installing without root
    access. Then, for Slash, you simply need to set the make variables
    PREFIX, SLASH_PREFIX, and INIT appropriately for your needs.

    Note: Slash (or, more accurately, Apache + mod_perl and MySQL) take up a
    lot of system resources. It is *not advisable* for anyone to run Slash
    at all on a system, without the permission of the administrator of that
    system.

UPGRADING
    These upgrade procedures are still in testing. Please read them entirely
    before beginning. We are not responsible for any loss of data or
    functionality.

  Slash 2.0 -> Slash 2.2

    Slash 2.2 is a major upgrade from Slash 2.0. It takes a little bit of
    work to get it going.

    1.  BACK EVERYTHING UP ON THE EXISTING SITE.

    2.  Install Bundle::Slash. If you have done so previously, follow the
        instructions for removing the existing version of Bundle::Slash
        before proceeding.

    3.  Apply this patch to your installed Slash::Install module (probably
        easiest to hand-edit the file):

          --- Install.pm~ Wed May  9 15:02:34 2001
          +++ Install.pm  Fri Sep 28 12:44:41 2001
          @@ -116,7 +116,7 @@
           sub writeTemplateFile {
                  my($self, $filename, $template) = @_;
                  open(FILE, '>' . $filename) or die "$! unable to open file $filename to write to";
          -       for (keys %$template) {
          +       for (qw(section description title page lang name template seclev)) {
                          next if ($_ eq 'tpid');
                          print FILE "__${_}__\n";
                          $template->{$_} =~ s/\015\012/\n/g;

    4.  Run "template-check" on your site, and make a note of every change
        you've made to the standard templates. You will need to make those
        changes again, manually, later.

        This is unfortunately unavoidable, because templates include code
        that changes significantly between releases. It is recommended that
        you compile your changes into a THEME so they may easily be updated
        and applied.

    5.  Stop Apache and slashd on the target machine(s).

    6   Install Slash.

        If installing on a different machine ...

        1   Install slash 2.2 as normal. Do not yet run install-slashsite.

        2   Make sure that from this machine, you can access not only the
            database used for this installation, but the one used for the
            old installation. You may wish to, instead of accessing that
            database directly if it on another machine, dumping it and
            adding it to your new database server under a different name.

        3   Add a virtual user to DBIx::Password for the old installation.

        If installing on the same machine ...

        1   Create a new database for the new installation. You cannot use
            the same database for both installations.

        2   Add a new virtual user to DBIx::Password for the new database,
            and update (and flush) MySQL privileges appropriately. You
            cannot use the same virtual user for both installations.

        3   It is highly recommended that you move /usr/local/slash (or
            whatever your installation directory is) to a new location, such
            as /usr/local/slash-old, and install a clean slash 2.2
            installation. However, this is not necessary to do; you may
            install slash 2.2 on top of the slash 2.0 installation.

            The reason to not move anything is that you can keep any
            customizations done (images, additional scripts and plugins,
            static files, etc.). The reason to move it is so that everything
            is clean. It is highly recommended that you move it, and then
            manually copy back the pieces you want.

        4   In any event, either move the old directory, or don't, and then
            install slash 2.2 as normal. Do not yet run install-slashsite.

    7.  If you have plugins or themes from the old installation to install,
        copy them over now. Warning: some plugins and themes might need to
        be ported first. You may wish to deal with them later if they are
        not yet ported to slash 2.2.

    8.  Run install-slashsite. Use the new virtual user.

    9.  Copy over any files (images, FAQs, etc.) that need to be copied, if
        necessary.

    10. Run update script, utils/slash2toslash2.2. Read its instructions!

    11. Update templates.

    12. Doublecheck Apache configs (httpd/slash.conf,
        site/sitename/sitename.conf). These configs have changed from the
        last version. Read the comments and set them up as desired.

    13. Start Apache.

    14. Start slashd.

  Slash 2.2.x -> Slash 2.2.y

    Read all of this section before doing any of it.

    The first thing to do is to, as per the instructions below under
    INSTALLATION, unpack the latest distribution and run make and make
    install with the proper arguments.

    Overwriting Changes
        This process will overwrite any customizations of your installed
        modules, or customizations of the installed scripts in
        /usr/local/slash/themes/ and /usr/local/slash/plugins/ (for themes
        and plugins that come with Slash). If you ran install-slashsite with
        the default option of using symlinks, and made customizations to the
        originals instead of breaking the symlink and copying the file over,
        then this will overwrite your changes.

        If you did modify the original instead of a copy, then break the
        symlink, copy over the original (as modified), and then continue.
        The original will be copied over by the new version, and your
        modified copy will remain intact.

    Templates
        With every update, there are changes to templates. But most people
        will modify their templates. A relatively simple way to see what has
        changed is to use template-tool and template-check. This procedure
        should help most users deal with the integration of new templates
        into an existing site (it will only work with the slashcode theme,
        but a simple modification to the code of template-check can fix
        that).

        Dump
            Use template-tool to dump your templates into an empty
            directory.

                    % mkdir templates
                    % cd templates
                    % template-tool -u VIRTUAL_USER -d

            (Defaults to current directory.)

        Compare
            Use template-check to compare installed templates in
            /usr/local/slash/themes/slashcode/ and /usr/local/slash/plugins/
            against the templates that have been dumped.

                    % template-check -u VIRTUAL_USER

            (Defaults to current directory.)

            This will use diff to show you the differences. You can either
            go into the templates with a text editor (in another window) and
            change the dumped ones by hand, edit them by hand in the
            Template Editor via the web browser, or take a note of every
            template you want to copy over your existing template.

            After each directory of templates is done, hit "q" to continue
            to the next plugin/theme.

        Sync
            If you made changes by hand via the web, you are done.
            Otherwise, take the list of templates to update, and pass the
            full filenames to template-tool (this will either be the
            templates you modified by hand in the dump directory, or the
            unmodified ones in the installation directories). You might need
            to put each filename in quotes because of the ";" character in
            the filenames. This will overwrite your existing template with
            the new template.

                    % template-tool -u VIRTUAL_USER -s LIST

  Slash 1.0 -> Slash 2.2

    Please read the complete documentation of utils/slash1toslash2.2. It is
    a program that will convert your database from Slash 1.0 to a new Slash
    2.2 database. The program documentation (which can be read with perldoc)
    details exactly what process it follows to do the conversion, so you can
    attempt to do it by hand if you prefer.

REQUIREMENTS
  Software

    Below, the main software components needed are listed. The recommended
    version is noted, along with the earliest version that has been tested
    (or is expected) to work. The earliest versions are not necessarily
    supported, but should work. perl 5.005_03 is supported, but MySQL 3.22
    is not.

    perl
        Version 5.6.1 (5.005_03). [NOTE: perl 5.6.0 may have some problems.
        5.6.1 is recommended.]

                http://www.cpan.org/

    MySQL
        Version 3.23.42 (3.23).

                http://www.mysql.com/

    Apache
        Version 1.3.20 (1.3.6).

                http://httpd.apache.org/

    mod_perl
        Versions 1.26 (1.21).

                http://perl.apache.org/

    Sendmail or other transport daemon
        Refer to your OS distribution.

    Perl module distributions
        See http://search.cpan.org/ and http://www.cpan.org/ to get each
        module individually; however, we recommend you download them using
        the CPAN module.

        The latest version of each module is recommended.

        For Compress::Zlib, the zlib development library is required. For
        XML::Parser, the expat library is required. If they are not present
        on the system already, download and install them before installing
        the modules.

                http://www.gzip.org/zlib/
                http://sf.net/projects/expat/

        The following required distributions are all included in the
        Bundle::Slash distribution.

        libnet
        Digest-MD5
        MD5
        Compress-Zlib
        Archive-Tar
        File-Spec
        Storable
        MIME-Base64
        libwww-perl
        HTML-Tree
        Font-AFM
        HTML-FormatText
        XML-Parser
        XML-RSS
        DBI
        Data-ShowTable
        Msql-Mysql-modules
        DBIx-Password
        ApacheDBI
        libapreq
        AppConfig
        Template-Toolkit (version 2)
        Mail-Sendmail
        MailTools
        Email-Valid
        Getopt-Long
        Image-Size
        Time-HiRes
        TimeDate
        DateManip
        Time-modules
        Schedule-Cron

  Hardware

    There are no specific hardware requirements. Apache (with mod_perl) and
    MySQL both take up a lot of RAM; running a complete system with 128MB
    might be possible, if you do some tuning of the configuration, but a
    practical minimum 256MB is recommended, though less could be sufficient
    with some tuning.Storage space depends on how busy you expect the site
    to be; 250MB is possible, but a minimum 1GB is recommended. Necessary
    processor speed is also dependent on how busy the site is; Pentium 133
    or equivalent might work, but less than a Pentium II/200 is not
    recommended.

    For the curious, Slashdot (as of September 2001) runs on nine machines:
    nine webservers (each is Pentium III/600, 1GB RAM, 9GB hard drive), one
    NFS server (600MHz PIII, 1GB RAM), and three database servers database
    server (quad 600MHz PIII, 4GB RAM). One database server is live, one is
    a replicated backup, and a third is for doing live searches and
    performance-intensive SELECTs by daemons etc.

    However, this is certainly overkill for most sites (and possibly even
    overkill for Slashdot). slashcode.com runs on two web servers and one
    NFS/database server. Many sites can run fine on just one machine for
    everything (we use a minimum of two web server machines on every site
    for load balancing and redundancy).

VERSIONS
    Each version of slash has a code name, and the files on CVS for that
    version are tagged with that name. The current release is always MAIN.
    The versioning scheme is as Linux and Perl are,
    revision.version.subversion. version is even for releases, and odd for
    development. The codename applies to the development version and
    subsequent release.

    For example, 1.0.11 is a normal release, while 1.1.0 is the first
    development release for what will be the next release (either 1.2 or
    2.0).

    The CVS repository is tagged with version numbers, so to get release
    1.0.3, use tag "v1_0_3_0". The last number (in this case a zero) will be
    incremented during development ("v1_0_3_1", "v1_0_3_2", etc.) until the
    next release.

  Codenames

    v1.0
        beast

    v2.0
        bender

    v2.2
        fry

VERSION
    $Id: INSTALL,v 1.19.2.12 2002/02/07 13:18:00 pudge Exp $