Source code for intraface.dk. A system for small businesses made with the konstrukt.dk framework.
- Apache-server running PHP.
- php-xml module.
- MySQL-server
- Allowing .htaccess configuration with auto_prepend_file
- PEAR setup correctly (deprecatd - use composer)
- PHP module openSSL (for https requests to onlinepayment gateways)
- PHP with magic_quotes_pgc = Off
- Intraface dependencies - install by creating a PEAR package; see below (deprecated - use composer)
You can install all depedencies using the following command.
composer install
That will install dependencies into the vendor
directory. Then you can use vendor/autoload.php
to include required files automatically.
The web directory is not setup automatically this way, but by configuring your server manually to serve webcontent from src/intraface.dk/core
will make the webapp run properly.
It is fairly easy to install intraface using the command line.
First install phing
pear install --force --alldeps pear_packagefilemanager
pear channel-discover pear.phing.info
pear install --alldeps phing/Phing
pear channel-discover pear.domain51.com
pear install --force d51/Phing_d51PearPkg2Task
pear channel-discover pear.saltybeagle.com
pear install --force --alldeps intrafacepublic/Phing_IlibPearDeployerTask
pear install --force --alldeps pear/PHP_CodeSniffer
Notice: If ftpDeployTask is not located in phing/tasks/ext/FtpDeployTask.php get it from phing.
Make sure that your PEAR installation knows the following channels:
pear channel-discover public.intraface.dk
pear channel-discover pear.doctrine-project.org
pear channel-discover htmlpurifier.org
pear channel-discover pear.michelf.com
pear channel-discover pearhub.org
Now you are ready to create the PEAR package. The PEAR package will take care of installing all dependencies and put files in the correct web accessible folder.
Change directory so you are in the root directory of intraface:
php generate_package_xml.php make X.Y.Z
pear package src/package.xml
You need to specify which folder is the web accessible folder:
pear config-set www_dir /home/intraface/intraface.dk
Now you are ready to install the package:
sudo pear install --alldeps --force src/Intraface-X.Y.Z.tgz
sudo rm src/Intraface-X.Y.Z.tgz
Then you need to navigate to your web accessible folder and create a config file:
cp config.local.example.php config.local.php
Edit the values in the config file, and make sure:
- Create and give access to the webserver to write to log/
- Create and give access to the webserver to write to upload/
- Create and give access to the webserver to write to cache/
Now you are ready to access intraface through your webbrowser:
- Login with [email protected], password: startup.
- Go to intranetmaintenance -> Modules, and click 'Registrer Modules'
- Go to Intranet, and edit/create your intranets. Remeber to change login data for the default created intranet.
In the install folder you will find the database structure. Make sure that you both setup the structure and values.
If you create updates for intraface, you just create a new package.
-
Check generate_package_xml.php to ensure everything is correct.
-
Remember to change the version number and update the version numbers for dependencies.
php generate_package_xml.php make pear package src/package.xml
Install the package locally on your computer
pear install /path/to/package/Package.tgz
Make sure that everything works correctly, and now you can upgrade, using:
pear upgrade Intraface-X.Y.Z.tgz
- Run all unit tests
- Run all selenium tests
- Write a twitter status with upgrade
- Run backup/upload.sh
- Run backup/mysql.sh.
- Download backup/mysql/daily.0.sql.gz to your local machine
- Update the generate_package_xml.php and generate package.xml (see below)
- Create the PEAR package: PEAR package package.xml
- Upload the package to server
- Update the database structure from the install/database-updates.sql
- Upgrade the intraface package: PEAR upgrade /home/intraface/Intraface-1.x.x.tgz
- ...
- Ensure cron job is correct and they do not generate error.
- Test general use of the system
- Test that pdfs are working. Ensure that payment bank information is correct
- Test that send invoice as e-mail sender works
- Write twitter status
- Goodnight!