Ubuntu Dapper Installation Notes
Page: 1
Update, July 10 '06:
Ilija Studen has announced activeCollab Community Preview 0.6 is available, and he's provided upgrade instructions (in this post). I've just run through a fresh installation process using 0.6 and there were 0 hang-ups. I'll leave the rest of the post here as the file ownership/access issues are still valid (and not actually a bug in the program).
Original
I've just finished a successful installation of activeCollab and thought that my notes might be useful to others. Conversly, if anyone perusing this post sees major errors on my part PLEASE point them out.
Environment notes:
OS: Ubuntu 6.06 LTS - Dapper Drake
Web server: Apache 2.0.55-4ubuntu2
PHP: 5.1.2 with MySQL Connector installed via Synaptic Package Manager
MySQL: mysql-server 5.0.22-0ubuntu6.06, mysql-admin 1.1.6-1build1, mysql-query-browser 1.1.17-5ubuntu3, all installed via Synaptic
Part 1: File installation
Unzipped the current download to /var/www/ using Ubuntu's built in zip file manager thingy.
Loaded 'localhost/activeCollab/install' in Firefox. Got welcome screen, clicked 'Next' to test environment.
Failed on tests:
/config/config.php is writable
/public/files/avatars is writable
/public/files/logos is writable
/public/files/project_documents is writable
/cache is writable
Opened terminal, performed the following:
1. Changed to root
2. CD'd to activeCollab's files directory
3. Checked permissions
4. Decided the problem was that the Apache process ID doesn't have ownership of the directories in question. I considered changing file permissions to 777 for 'all' but then realized that was a very bad idea... Changed directory ownership to the default process ID for the Apache server.
5. Noted that the 'project_documents' directory didn't exist. Created it and changed its ownership to the Apache process. Checked permissions again.
6. Noted that the 'cache' directory didn't exist under site root. Created it and set ownership to Apache.
7. Changed ownership for the file config.php and checked outcome
8. Re-ran installaton pre-check from install directory.
Step 2: Environment checks
* OK: PHP version is 5.1.2
* OK: MySQL extension is loaded
* OK: /config/config.php is writable
* OK: /public/files/avatars is writable
* OK: /public/files/logos is writable
* OK: /public/files/project_documents is writable
* OK: /cache is writable
7. w00t! Clicked 'Next' to move to System Settings.
8. Loaded MySQL Admin to create an account for activeCollab, but it crapped out (yes, that's the correct technical term). So I dropped to terminal and used the old-style sql interface to create the new account and a schema (database) for the program to use.
Note that the user doesn't have rights to any schema besides the one assigned to activeCollab. Hopefully this will prevent mischief should the account be compromised.
9. Note that I'm creating the user and granting access all in one command. It seems to have worked.
10. Entered values for user, database, and password in the web form, left the 'absolute script URL' value and the table prefix at the default setting and clicked 'Next'
11. 'Script Settings' screen. Decided on an account name, email address, password, and company name to use in the application, entered the values and clicked 'Next'
12. Got to the Success screen. But it's not over yet.
Step 5: Finish
Installation process:
* Connected to database as activeCollab@localhost
* Database 'activeCollab' found
* Tables created in 'activeCollab'. (Executed queries: 22)
* Initial data imported into 'activeCollab'. (Executed queries: 42)
* Company 'UCSC' has been created
* User 'activeCollabAdmin' has been created
Part 2: Post Install Tweaks
1. Loaded MySQL Query Browser and lo-and-behold, it crapped out too. Bleh. Okay, so in the SQL command line client I edited the table 'ac_companies' row 'client_of_id' to have a default value of 0. As pointed out by elbows in this post, this could have been avoided by editing the file /install/installation/templates/sql/mysql_schema.php.
Part 3: Development Environment Setup
1. I've got an instance of Eclipse that I use for PHP coding, so I'd like to have that hooked into my activeCollab instance. The setup was pretty straight forward. From the command line, create a symbolic link from Eclipse's workspace to the activeCollab root directory then create a new PHP project in Eclipse that uses that directory as its location.
2. Okay, from the command line, to create a symbolic link.
3. Now there's a pointer in the workspace directory pointing to the activeCollab root.
4. Use Eclipse's IDE to create the new PHP project.
5. Start editing files like a mad man! :D
Wow, that turned into a loooooong post.
Ilija Studen has announced activeCollab Community Preview 0.6 is available, and he's provided upgrade instructions (in this post). I've just run through a fresh installation process using 0.6 and there were 0 hang-ups. I'll leave the rest of the post here as the file ownership/access issues are still valid (and not actually a bug in the program).
Original
I've just finished a successful installation of activeCollab and thought that my notes might be useful to others. Conversly, if anyone perusing this post sees major errors on my part PLEASE point them out.
Environment notes:
OS: Ubuntu 6.06 LTS - Dapper Drake
Web server: Apache 2.0.55-4ubuntu2
PHP: 5.1.2 with MySQL Connector installed via Synaptic Package Manager
MySQL: mysql-server 5.0.22-0ubuntu6.06, mysql-admin 1.1.6-1build1, mysql-query-browser 1.1.17-5ubuntu3, all installed via Synaptic
Part 1: File installation
Unzipped the current download to /var/www/ using Ubuntu's built in zip file manager thingy.
Loaded 'localhost/activeCollab/install' in Firefox. Got welcome screen, clicked 'Next' to test environment.
Failed on tests:
/config/config.php is writable
/public/files/avatars is writable
/public/files/logos is writable
/public/files/project_documents is writable
/cache is writable
Opened terminal, performed the following:
1. Changed to root
$ sudo su
2. CD'd to activeCollab's files directory
# cd /var/www/activeCollab/public/files
3. Checked permissions
# ls -l drwxr-xr-x 2 userName userName 4096 2006-07-08 18:44 avatars drwxr-xr-x 2 userName userName 4096 2006-07-08 18:44 logos
4. Decided the problem was that the Apache process ID doesn't have ownership of the directories in question. I considered changing file permissions to 777 for 'all' but then realized that was a very bad idea... Changed directory ownership to the default process ID for the Apache server.
# chown www-data avatars/ # chown www-data logos/
5. Noted that the 'project_documents' directory didn't exist. Created it and changed its ownership to the Apache process. Checked permissions again.
# mkdir project_documents # chown www-data project_documents # ls -l drwxr-xr-x 2 www-data userName 4096 2006-07-08 18:44 avatars drwxr-xr-x 2 www-data userName 4096 2006-07-08 18:44 logos drwxr-xr-x 2 www-data root 4096 2006-07-08 18:50 project_documents
6. Noted that the 'cache' directory didn't exist under site root. Created it and set ownership to Apache.
# mkdir /var/www/activeCollab/cache # chown www-data /var/www/activeCollab/cache
7. Changed ownership for the file config.php and checked outcome
# chown www-data /var/www/activeCollab/config/config.php # ls -l -rw-r--r-- 1 www-data userName 24 2006-06-29 00:07 config.php
8. Re-ran installaton pre-check from install directory.
Step 2: Environment checks
* OK: PHP version is 5.1.2
* OK: MySQL extension is loaded
* OK: /config/config.php is writable
* OK: /public/files/avatars is writable
* OK: /public/files/logos is writable
* OK: /public/files/project_documents is writable
* OK: /cache is writable
7. w00t! Clicked 'Next' to move to System Settings.
8. Loaded MySQL Admin to create an account for activeCollab, but it crapped out (yes, that's the correct technical term). So I dropped to terminal and used the old-style sql interface to create the new account and a schema (database) for the program to use.
Note that the user doesn't have rights to any schema besides the one assigned to activeCollab. Hopefully this will prevent mischief should the account be compromised.
# mysql -u root
mysql> CREATE DATABASE activeCollab;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
-> ON activeCollab.*
-> TO 'activeCollab'@'localhost'
-> IDENTIFIED BY 'myReallyGoodPassphrase';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR 'activeCollab'@'localhost';
+------------------------------------------------------------------------------- -----------------+
| Grants for activeCollab@localhost |
+------------------------------------------------------------------------------- -----------------+
| GRANT USAGE ON *.* TO 'activeCollab'@'localhost' IDENTIFIED BY PASSWORD 'sha hash of password goes here' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `activeCollab`.* TO 'activeCol lab'@'localhost' |
+------------------------------------------------------------------------------- -----------------+
2 rows in set (0.00 sec)9. Note that I'm creating the user and granting access all in one command. It seems to have worked.
10. Entered values for user, database, and password in the web form, left the 'absolute script URL' value and the table prefix at the default setting and clicked 'Next'
11. 'Script Settings' screen. Decided on an account name, email address, password, and company name to use in the application, entered the values and clicked 'Next'
12. Got to the Success screen. But it's not over yet.
Step 5: Finish
Installation process:
* Connected to database as activeCollab@localhost
* Database 'activeCollab' found
* Tables created in 'activeCollab'. (Executed queries: 22)
* Initial data imported into 'activeCollab'. (Executed queries: 42)
* Company 'UCSC' has been created
* User 'activeCollabAdmin' has been created
Part 2: Post Install Tweaks
1. Loaded MySQL Query Browser and lo-and-behold, it crapped out too. Bleh. Okay, so in the SQL command line client I edited the table 'ac_companies' row 'client_of_id' to have a default value of 0. As pointed out by elbows in this post, this could have been avoided by editing the file /install/installation/templates/sql/mysql_schema.php.
# mysql -u root mysql> use activeCollab; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> ALTER TABLE ac_companies MODIFY client_of_id smallint(5) unsigned NOT NULL default '0'; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> DESCRIBE ac_companies; +-------------------+----------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+----------------------+------+-----+---------------------+----------------+ | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | client_of_id | smallint(5) unsigned | NO | MUL | 0 | | | name | varchar(50) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | | homepage | varchar(100) | YES | | NULL | | | address | varchar(100) | YES | | NULL | | | address2 | varchar(100) | YES | | NULL | | | city | varchar(50) | YES | | NULL | | | state | varchar(50) | YES | | NULL | | | zipcode | varchar(30) | YES | | NULL | | | country | varchar(10) | YES | | NULL | | | phone_number | varchar(30) | YES | | NULL | | | fax_number | varchar(30) | YES | | NULL | | | logo_file | varchar(30) | YES | | NULL | | | hide_welcome_info | tinyint(1) unsigned | NO | | 0 | | | created_on | datetime | NO | MUL | 0000-00-00 00:00:00 | | | created_by_id | int(10) unsigned | YES | | NULL | | | updated_on | datetime | NO | | 0000-00-00 00:00:00 | | | updated_by_id | int(10) unsigned | YES | | NULL | | +-------------------+----------------------+------+-----+---------------------+----------------+ 19 rows in set (0.00 sec)
Part 3: Development Environment Setup
1. I've got an instance of Eclipse that I use for PHP coding, so I'd like to have that hooked into my activeCollab instance. The setup was pretty straight forward. From the command line, create a symbolic link from Eclipse's workspace to the activeCollab root directory then create a new PHP project in Eclipse that uses that directory as its location.
2. Okay, from the command line, to create a symbolic link.
# ln -s /var/www/activeCollab /home/userName/workspace/activeCollab
3. Now there's a pointer in the workspace directory pointing to the activeCollab root.
4. Use Eclipse's IDE to create the new PHP project.
5. Start editing files like a mad man! :D
Wow, that turned into a loooooong post.
Topic is locked. If you have something important to say about issues discussed on this page please write at hi@a51dev.com.



