140 lines
5.7 KiB
Plaintext
140 lines
5.7 KiB
Plaintext
---------------------------------------------------------------------
|
|
Contents
|
|
---------------------------------------------------------------------
|
|
About
|
|
|
|
Copyright
|
|
|
|
Requirements
|
|
|
|
Installation
|
|
|
|
---------------------------------------------------------------------
|
|
About
|
|
---------------------------------------------------------------------
|
|
This scaffolding is really just a template for our web
|
|
applications. It provides us the basics to get a web application up
|
|
and running very quickly. It also means our applications will be
|
|
relatively uniform and easier to extend and maintain down the road.
|
|
While not fully MVC, it has borrowed ideas from Rails
|
|
and Struts. It has developed over time, and will continue to develop
|
|
as we come across better solutions to problems run into while creating
|
|
new applications.
|
|
|
|
---------------------------------------------------------------------
|
|
Copyright
|
|
---------------------------------------------------------------------
|
|
This scaffolding is written and copyrighted by the
|
|
City of Bloomington, IN. It is being released as free software;
|
|
you can redistribute it and/or modify it under the terms of the
|
|
GNU Affero General Public License as published by the Free Software Foundation;
|
|
either version 3 of the License, or (at your option) any later version.
|
|
|
|
This scaffolding includes code generators to create classes to
|
|
work with your database. While the generators fall under the GPL,
|
|
any code you generate with them belongs to you. However, we highly
|
|
encourage you to uphold the values of Free Software and release your
|
|
application as Free Software as well.
|
|
|
|
In any case, you own the copyright to any generated code and should
|
|
edit the copyright statement in the configuration. This will be the
|
|
copyright statement that will be included in all generated code.
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
Requirements
|
|
---------------------------------------------------------------------
|
|
framework:
|
|
This scaffolding requires our framework to be on the server somewhere.
|
|
It ships with a working version of framework installed in /libraries.
|
|
In the configuration, you can point the application to another copy
|
|
of the framework, if you like. If you make changes to the code in
|
|
the /libraries/framework, you might consider sending those changes
|
|
back to us, so we can improve this scaffolding.
|
|
|
|
ZendFramework:
|
|
Database interaction for this application is done using Zend_Db. You must
|
|
have downloaded a copy of the ZendFramework for this to work. In the
|
|
configuration, you will point the application to wherever you've installed
|
|
your copy of the ZendFramework. The ZendFramework is available under a
|
|
BSD license at:
|
|
http://framework.zend.com/
|
|
|
|
Apache:
|
|
This application was written assuming you have control over your own web
|
|
server. If you are on a hosted system, you may need to make changes to
|
|
the code to accomodate your server.
|
|
|
|
All webserver instructions assume the Apache webserver. It is certainly
|
|
possible to set this using a different web server. However, we don't have
|
|
any experience with other webservers and cannot provide information on
|
|
their configuration.
|
|
|
|
All include files have been kept out of the web directory, and a configuration
|
|
file has been included. You will need to make sure that every .php script
|
|
in the HTML directory includes configuration.inc. If you control your own
|
|
webserver, you can add a <Directory> command to your httpd.conf.
|
|
|
|
PHP:
|
|
PHP must be compiled with support for:
|
|
PDO
|
|
MySQL
|
|
LDAP
|
|
|
|
Actually, you can substitute any database support for MySQL, as our
|
|
framework uses PDO for database interaction. However, the initial SQL
|
|
schema provided is specific to MySQL. The schema would need to be modified
|
|
for other databases.
|
|
|
|
MySQL:
|
|
MySQL should have support for InnoDB. Foreign keys are written into
|
|
the database load scripts. While MyISAM tables will just ignore them,
|
|
you database and your application will be that much more robust with InnoDB
|
|
support.
|
|
|
|
LDAP:
|
|
LDAP is only used for doing LDAP authentication for users.
|
|
If you're not going to do any LDAP authentication, you can delete or
|
|
comment out the LDAP stuff.
|
|
|
|
---------------------------------------------------------------------
|
|
Installation
|
|
---------------------------------------------------------------------
|
|
This scaffolding is essentially a working web application that is
|
|
ready to be extended. It has authentication and user management
|
|
already built.
|
|
|
|
The best way is to have PHP auto_prepend the configuration.inc.
|
|
If this is the only web application on your apache server, you can just point
|
|
your apache's web directory to the html directory inside the application and
|
|
edit the auto_prepend in your php.ini file.
|
|
|
|
For us, we're running multiple applications, and have a seperate entry in
|
|
our Apache config for each one. This does essentially the same thing.
|
|
|
|
Add to httpd.conf:
|
|
|
|
Alias /application_name "/path/to/application_name/html"
|
|
<Directory "/path/to/application_name/html">
|
|
Options FollowSymLinks
|
|
AllowOverride None
|
|
Order allow,deny
|
|
Allow from all
|
|
|
|
php_value auto_prepend_file /path/to/application_name/configuration.inc
|
|
</Directory>
|
|
|
|
|
|
If you're running in a shared hosting environment, you cannot do Alias or
|
|
Directory commands. However the html can be moved into your web directory.
|
|
To make sure the configuration file gets loaded, create an htaccess file in
|
|
this application's html directory with the php_value line from above.
|
|
|
|
If you cannot edit your httpd.conf or use htaccess files, you will need to
|
|
add an include() command to the top of every last PHP script in the html directory.
|
|
|
|
---------------------------------------------------------------------
|
|
Configuration
|
|
---------------------------------------------------------------------
|
|
Edit configuration.inc with appropriate values for your installation.
|