I'm having a little bit of problems with getting it set up on my Windows system. The path to my uncompressed Akelos folder is C:\Server\akelos_framework
This script works find and shows me the installer options
./script/setup -h
However this (and many other variants) will not work for me
./script/setup -d C:\Server\akelos_framework\booklink -p \Apache2\htdocs\booklink
However, I was able to use:
./script/setup -d C:\Server\akelos -p \Apache2\htdocs\booklink
But this creates a folder called 'akelos' and in the path mentioned in the statement C:\Server\akelos
this folder appears to have all the files but the second folder is not created at all. Should I try a full path? I manually copied this 'akelos' folder and placed (in my htdocs folder with the name of 'booklink') it where it needs to be. Now that I am trying to continue to set up the config file via web interface, I noticed that there isn't an index.php in the folder. I do however have everything else.
C:.
│
├───app
│ │ application_controller.php
│ │ shared_model.php
│ │
│ ├───apis
│ ├───controllers
│ │ framework_setup_controller.php
│ │ page_controller.php
│ │
│ ├───filters
│ ├───helpers
│ ├───installers
│ │ database_installer.php
│ │ framework_installer.php
│ │
│ ├───locales
│ │ ├───framework_setup
│ │ │ en.php
│ │ │ es.php
│ │ │
│ │ ├───localize
│ │ │ └───date
│ │ │ en.php
│ │ │ es.php
│ │ │
│ │ └───page
│ │ en.php
│ │ es.php
│ │
│ ├───models
│ │ framework_setup.php
│ │
│ ├───vendor
│ │ └───plugins
│ └───views
│ ├───framework_setup
│ │ │ configure_ftp_details.tpl
│ │ │ index.tpl
│ │ │ perform_setup.tpl
│ │ │ select_database.tpl
│ │ │ set_database_details.tpl
│ │ │ set_locales.tpl
│ │ │
│ │ └───compiled
│ │ configure_ftp_details.tpl.php
│ │ index.tpl.php
│ │ perform_setup.tpl.php
│ │ select_database.tpl.php
│ │ set_database_details.tpl.php
│ │ set_locales.tpl.php
│ │
│ ├───layouts
│ │ │ page.tpl
│ │ │
│ │ └───compiled
│ │ page.tpl.php
│ │
│ └───page
│ │ index.tpl
│ │
│ └───compiled
│ index.tpl.php
│
├───cache
├───config
│ │ boot.php
│ │ DEFAULT-config.php
│ │ DEFAULT-routes.php
│ │
│ ├───environments
│ │ development.php
│ │ production.php
│ │ testing.php
│ │
│ └───locales
│ en.php
│ es.php
│
├───docs
│ │ tutorial-es.markdown
│ │ tutorial-fr.markdown
│ │ tutorial.markdown
│ │ windows_set_php_path-es.markdown
│ │
│ └───images
│ akelos_mvc-es.png
│ akelos_mvc-fr.png
│ akelos_mvc.png
│
├───public
│ │ .htaccess
│ │ 404.html
│ │ 500.html
│ │ index.php
│ │ mod_rewrite_test_file.txt
│ │ robots.txt
│ │
│ ├───images
│ │ akelos_framework_logo.png
│ │ bg_header.png
│ │ bg_page.png
│ │
│ ├───javascripts
│ │ behaviour.js
│ │ builder.js
│ │ controls.js
│ │ cookies.js
│ │ debug.js
│ │ dragdrop.js
│ │ effects.js
│ │ event_selectors.js
│ │ file_uploader.js
│ │ prototype.js
│ │ scriptaculous.js
│ │ slider.js
│ │ unittest.js
│ │ window.js
│ │
│ └───stylesheets
│ default.css
│ forms.css
│ scaffold.css
│
├───script
│ │ console
│ │ generate
│ │ migrate
│ │ setup
│ │ test
│ │
│ └───generators
│ │ AkelosGenerator.php
│ │
│ ├───clone
│ │ clone_generator.php
│ │ USAGE
│ │
│ ├───controller
│ │ │ controller_generator.php
│ │ │ USAGE
│ │ │
│ │ └───templates
│ │ controller.tpl
│ │ fixture.tpl
│ │ functional_test.tpl
│ │ helper.tpl
│ │ helper_fixture.tpl
│ │ view.tpl
│ │
│ ├───model
│ │ │ model_generator.php
│ │ │ USAGE
│ │ │
│ │ └───templates
│ │ installer.tpl
│ │ installer_fixture.tpl
│ │ model.tpl
│ │ model_fixture.tpl
│ │ unit_test.tpl
│ │
│ ├───scaffold
│ │ │ scaffold_generator.php
│ │ │ USAGE
│ │ │
│ │ ├───sintags_templates
│ │ │ controller.php
│ │ │ form.tpl
│ │ │ form_scaffolding.tpl
│ │ │ helper.php
│ │ │ installer.tpl
│ │ │ installer_fixture.tpl
│ │ │ layout.tpl
│ │ │ model.tpl
│ │ │ model_fixture.tpl
│ │ │ model_unit_test.tpl
│ │ │ style.css
│ │ │ view_add.tpl
│ │ │ view_destroy.tpl
│ │ │ view_edit.tpl
│ │ │ view_listing.tpl
│ │ │ view_show.tpl
│ │ │
│ │ └───templates
│ │ controller.php
│ │ form.tpl
│ │ form_scaffolding.tpl
│ │ helper.php
│ │ installer.tpl
│ │ installer_fixture.tpl
│ │ layout.tpl
│ │ model.tpl
│ │ model_fixture.tpl
│ │ model_unit_test.tpl
│ │ style.css
│ │ view_add.tpl
│ │ view_destroy.tpl
│ │ view_edit.tpl
│ │ view_listing.tpl
│ │ view_show.tpl
│ │
│ └───service
│ │ service_generator.php
│ │ USAGE
│ │
│ └───templates
│ service.tpl
│
└───test
│ .htaccess
│ app.php
│ unit.php
│
├───fixtures
│ ├───app
│ │ │ application_controller.php
│ │ │ shared_model.php
│ │ │
│ │ ├───apis
│ │ │ todo_api.php
│ │ │
│ │ ├───controllers
│ │ │ advertiser_controller.php
│ │ │ locale_detection_controller.php
│ │ │ page_controller.php
│ │ │ render_tests_controller.php
│ │ │
│ │ ├───installers
│ │ │ account_installer.php
│ │ │ article_installer.php
│ │ │ concert_installer.php
│ │ │ event_installer.php
│ │ │ file_installer.php
│ │ │ framework_installer.php
│ │ │ landlord_installer.php
│ │ │ location_installer.php
│ │ │ open_house_meeting_installer.php
│ │ │ panorama_installer.php
│ │ │ person_installer.php
│ │ │ picture_installer.php
│ │ │ property_installer.php
│ │ │ property_type_installer.php
│ │ │ protected_person_installer.php
│ │ │ tagging_installer.php
│ │ │ tag_installer.php
│ │ │ thumbnail_installer.php
│ │ │
│ │ ├───models
│ │ │ account.php
│ │ │ article.php
│ │ │ concert.php
│ │ │ event.php
│ │ │ file.php
│ │ │ import_test_model_a.php
│ │ │ import_test_model_b.php
│ │ │ import_test_model_c.php
│ │ │ landlord.php
│ │ │ location.php
│ │ │ open_house_meeting.php
│ │ │ panorama.php
│ │ │ person.php
│ │ │ picture.php
│ │ │ property.php
│ │ │ property_type.php
│ │ │ protected_person.php
│ │ │ tag.php
│ │ │ tagging.php
│ │ │ thumbnail.php
│ │ │
│ │ └───views
│ │ ├───advertiser
│ │ │ all.tpl
│ │ │ buy.tpl
│ │ │ partial_in_template.tpl
│ │ │ _account.tpl
│ │ │ _ad.tpl
│ │ │
│ │ ├───page
│ │ │ index.tpl
│ │ │ setup.tpl
│ │ │
│ │ └───render_tests
│ │ ad.tpl
│ │ _hello_world.tpl
│ │
│ ├───config
│ │ config.php
│ │
│ ├───data
│ │ │ accounts.yaml
│ │ │ sintags_helpers_data.txt
│ │ │ sintags_test_data.txt
│ │ │
│ │ └───helpers
│ │ active_record_errors.txt
│ │ active_record_errors_2.txt
│ │ active_record_form.txt
│ │ active_record_input_date.txt
│ │ active_record_textarea_should_escape_characters_correctly.txt
│ │ date_helper_date_select_1.txt
│ │ date_helper_date_select_2.txt
│ │ date_helper_date_select_3.txt
│ │ date_helper_select_date.txt
│ │ date_helper_select_datetime.txt
│ │ date_helper_select_datetime_seconds.txt
│ │ date_helper_select_day.txt
│ │ date_helper_select_hour.txt
│ │ date_helper_select_minute.txt
│ │ date_helper_select_month.txt
│ │ date_helper_select_month_add_numbers.txt
│ │ date_helper_select_month_add_numbers_short_month.txt
│ │ date_helper_select_month_numbers.txt
│ │ date_helper_select_month_short_month.txt
│ │ date_helper_select_second.txt
│ │ date_helper_select_time.txt
│ │ date_helper_select_time_seconds.txt
│ │ date_helper_select_year.txt
│ │ date_helper_select_year_options.txt
│ │ date_helper_select_year_options_out_of_range.txt
│ │ date_helper_select_year_options_reverse.txt
│ │ form_helper_to_datetime_select_tag.txt
│ │ form_helper_to_date_select_tag.txt
│ │ form_helper_to_date_tag.txt
│ │ form_options_helper_to_select_include_blank.txt
│ │ form_options_helper_to_select_include_blank_prompt.txt
│ │ form_options_helper_to_select_prompt.txt
│ │ javascript_macros_helper_code.txt
│ │ javascript_macros_helper_style.txt
│ │ menu_helper_all.txt
│ │ menu_helper_limit.txt
│ │ menu_helper_limit_current.txt
│ │ menu_helper_limit_current_not_default.txt
│ │ menu_helper_limit_current_not_default_no_title.txt
│ │ menu_helper_limit_no_title_tag.txt
│ │ menu_helper_limit_title_tag_p.txt
│ │
│ └───public
│ │ .htaccess
│ │ index.php
│ │ mod_rewrite_test_file.txt
│ │
│ ├───images
│ │ akelos_framework_logo.png
│ │
│ ├───javascripts
│ │ valid_controller.js
│ │
│ └───stylesheets
│ valid_controller.css
│
├───functional
├───mocks
│ test_script_AkDbSession.php
│
├───tmp
└───unit
└───lib
│ AkActionController.php
│ AkActiveRecord.php
│ AkCache.php
│ AkDbSession.php
│ AkImage.php
│ AkInflector.php
│ AkInstaller.php
│ AkLocaleManager.php
│ AkRequest.php
│ AkRouter.php
│ utils.php
│
├───AkActionController
│ _AkActionController_filters.php
│ _AkActionController_locale_detection.php
│ _AkActionController_partials.php
│
├───AkActionView
│ │ AkActionViewHelper.php
│ │
│ ├───helpers
│ │ active_record_helper.php
│ │ asset_tag_helper.php
│ │ capture_helper.php
│ │ date_helper.php
│ │ file_upload_helper.php
│ │ form_helper.php
│ │ form_options_helper.php
│ │ form_tag_helper.php
│ │ javascript_helper.php
│ │ javascript_macros_helper.php
│ │ menu_helper.php
│ │ number_helper.php
│ │ pagination_helper.php
│ │ prototype_helper.php
│ │ scriptaculous_helper.php
│ │ tag_helper.php
│ │ text_helper.php
│ │ url_helper.php
│ │ _HelpersUnitTester.php
│ │
│ └───TemplateEngines
│ AkSintags.php
│
├───AkActionWebService
│ AkActionWebServiceApi.php
│
├───AkActiveRecord
│ AkActsAsList.php
│ AkActsAsNestedSet.php
│ AkActsAsTree.php
│ AkBelongsTo.php
│ AkHasAndBelongsToMany.php
│ AkHasMany.php
│ AkHasOne.php
│ AkObserver.php
│ AkValidation.php
│ _AkActiveRecord_1.php
│ _AkActiveRecord_2.php
│ _AkActiveRecord_3.php
│ _AkActiveRecord_accessible_attributes.php
│ _AkActiveRecord_associated_inclusion.php
│ _AkActiveRecord_calculations.php
│ _AkActiveRecord_findOrCreateBy.php
│ _AkActiveRecord_i18n.php
│ _AkActiveRecord_locking.php
│ _AkActiveRecord_multiple_inclussion.php
│ _AkActiveRecord_table_inheritance.php
│
└───utils
_Ak_convert.php
_Ak_file_functions.php
_Ak_file_functions_over_ftp.php
_Ak_object_inspection.php
_Ak_support_functions.php
_Ak_var_manipulation.php
Do I just skip ahead to the next step and manually edit the configuration files or am I going to need that web installer to do something for me? Seems as if I am going to need the index file since you reference it later on in the tutorial
Okay I have the web interface showing up now. I figured that I could just use a .htaccess file for my Alias directive but could not. However, it worked when I added it to the httpd.conf file Alias /booklink_tut "C:/Server/Apache2/booklink/public"
<Directory "C:/Server/Apache2/booklink/public">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
In case anyone is interested....I still have to figure out the install part tho...
Hi, this is the way i have done it, akelos framework is in a directory c:\dev\akelos_framework and the booklink application will be created in the directory c:\dev\booklink
disclaimer: english is not my native language :)
go in your akelos framework folder
cd C:\dev\akelos_framework
and then create the booklink application
c:\php\php.exe script/setup -d C:\dev\booklink
the "-p /some/folder" is just a helper for people on unix/linux/bsd system, you don't need that (won't work) on a Windows OS
now in your apache folder, edit the file conf/httpd.conf
and add these lines:
Alias /booklink "C:/dev/booklink/public"
<Directory "C:/dev/booklink/public">
Options Indexes
# AllowOverride controls what directives may be placed in .htaccess files.
AllowOverride All
Order allow,deny
Allow from all
</Directory>
restart apache
this will tell apache: "if you got a request for http://localhost/booklink, use the content of the directory c:/dev/booklink/public
important: in the line begining with "Alias" and the one begining with "<Directory", the path should be written the exact same ways
You can now go to http://localhost/booklink and you will be able to do the setup and continue the tutorial
Hope this help -Eric
oops, forget about the double backslash in the instruction, the markdown preview tricked me, only use a single backslash ie:
go in your akelos framework folder
cd C:\dev\akelos_framework
and then create the booklink application
c:\php\php.exe script/setup -d C:\dev\booklink
Thanks Eric!!! :)
I've actually already managed to get that far as indicated in the post just above yours. But thank you for clarifying the -p is just for *nix, BSD, etc. users and NOT for Windows users. However, I am still stuck on the configuaration wizard page.
These are the different ways I have set up my php.ini
If I have
cgi.force_redirect = 1
Then I end up with
Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS
CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this
distribution, or visit the manual page.
If I have
doc_root = "C:\Server\Apache2\htdocs" ;same as it is in my httpd.conf
user_dir = "C:\Server\Apache2\booklink\"
cgi.force_redirect = 0
I get
No input file specified
Finally, if I have
doc_root = ""
user_dir = ""
cgi.force_redirect = 0
I end up with
URI: index.html.ca Content-language: ca Content-type: text/html URI: index.html.cz.iso8859-2 Content-language: cs Content-type:
text/html;charset=ISO-8859-2 URI: index.html.de Content-language: de Content-type: text/html URI: index.html.dk Content-language: da
Content-type: text/html URI: index.html.ee Content-language: ee Content-type: text/html URI: index.html.el Content-language: el
Content-type: text/html URI: index.html.en Content-language: en Content-type: text/html URI: index.html.es Content-language: es
Content-type: text/html URI: index.html.et Content-language: et Content-type: text/html URI: index.html.fr Content-language: fr
Content-type: text/html URI: index.html.he.iso8859-8 Content-language: he Content-type: text/html;charset=ISO-8859-8 URI:
index.html.hr.iso8859-2 Content-language: hr Content-type: text/html;charset=ISO-8859-2 URI: index.html.it Content-language: it
Content-type: text/html URI: index.html.ja.iso2022-jp Content-language: ja Content-type: text/html;charset=ISO-2022-JP URI:
index.html.ko.euc-kr Content-language: ko Content-type: text/html;charset=EUC-KR URI: index.html.ltz.utf8 Content-language: ltz
Content-type: text/html;charset=UTF-8 URI: index.html.lu.utf8 Content-language: lu Content-type: text/html;charset=UTF-8 URI:
index.html.nl Content-language: nl Content-type: text/html URI: index.html.nn Content-language: nn Content-Type: text/html URI:
index.html.no Content-language: no Content-type: text/html URI: index.html.po.iso8859-2 Content-language: pl Content-type:
text/html;charset=ISO-8859-2 URI: index.html.pt Content-language: pt Content-type: text/html URI: index.html.pt-br Content-language:
pt-br Content-type: text/html URI: index.html.ru.cp-1251 Content-language: ru Content-type: text/html;charset=WINDOWS-1251 URI:
index.html.ru.cp866 Content-language: ru Content-type: text/html;charset=CP866 URI: index.html.ru.iso-ru Content-language: ru
Content-type: text/html;charset=ISO-8859-5 URI: index.html.ru.koi8-r Content-language: ru Content-type: text/html;charset=KOI8-r URI:
index.html.ru.utf8 Content-language: ru Content-type: text/html;charset=UTF-8 URI: index.html.sv Content-language: sv Content-type:
text/html URI: index.html.zh-cn.gb2312 Content-language: zh-CN Content-type: text/html;charset=GB2312 URI: index.html.zh-tw.big5
Content-language: tw, zh-TW Content-type: text/html;charset=Big5
How do you have yours set up?
Hi!, in my php.ini I have (which is the default with xampp install)
doc_root = ""
user_dir = ""
cgi.force_redirect = 0
but I forgot some directive in the apache config, on the 'Options' line (you know, working on two computer... :)
Alias /booklink "C:/dev/booklink/public"
<Directory "C:/dev/booklink/public">
Options Indexes FollowSymLinks ExecCGI
# AllowOverride controls what directives may be placed in .htaccess files.
AllowOverride All
Order allow,deny
Allow from all
</Directory>
let me know if it works
@Eric,
Welcome and thanks for the tip. I've edited your first message to remove the backslashes and avoid confusion.
@Eric and studiralph,
If you both got this working OK, could you send a patch with the changes made to the file /docs/tutorial.markdown?. The booklink web tutorial is generated directly from that markdown file.
If you are using Tortoise svn, here are the details on how to create a patch
Thanks again for helping on making it easier for windows users.
Hi, I can't find nothing wrong in the booklink tutorial that needs to be updated, there's just a lot of special case on windows that can happens :)
but in my opinion, the booklink should really be more of a 'quickstart' and the low level details should go in the 'manual' instead. Would be better of just putting (in the booklink tutorial) the bare minimum to get running in 2 minutes, to have the people to try the framework.
Let me show an example, instead of explaining how to do 'which php' and then update the path for every script (that sound scary for a newbie with 15minutes left to try the framework), the tutorial should just say:
php script/setup -d /var/www/booklink
*if the php executable is not on your path, you may have to give the full path
that way, it is cross-platform, and the poweruser already know that he don't need to type 'php' (and it will be explained in the full manual)
and on the section about 'setting up a new akelos application: Now you can follow two paths:...' I know that the second path is not good for production environnment, but it's easier and cross platform, so i thinks it's ok for developpment and to attract new user (rails tutorial use webrick, that i believe is not to be used as a production server.. but it's easier to use while learning)... so the quickstart booklink tutorial should propose only the second option
This is just my opinion, the purpose of this post is not to offend the developer(s), it's just to bring my thought as 'how to attract new user by showing them how easy it is to start playing with akelos'. it think it goes in the same direction that the screen cast "Creating a weblog using the Akelos PHP Framework"... it seem so easy with that screencast and the booklink tutorial seems to be harder
regards,
-Eric
PS. I'm more than ready to help Akelos, just keep in mind that English is not so easy for me (I'm French). But I can transate the documention in french anytime
Eric,
Thanks for your insight, it is really valuable and I couldn't agree more with you.
I'm non English speaker as well, but we need to move forward doing our best and accepting corrections contributed by native speakers.
If you want to start contributing by making the "bookling" less scary, I'll be happy to update current versions. But IMHO, existing "additions details" should move to an external wiki page.
Can you help with that?
HI, I have added a wiki page with instruction to work with Akelos on Windows OS
Booklink Quickstart On Windows
If there's somebody out there with better english skills, don't hesitate to improve the document ;)
Hello,
Try adding this line to your ./config/config.php
define('AK_URL_REWRITE_ENABLED', false);
It disables the mod_rewrite and makes the URIs look like this: booklink/?ak=/books but I guess it doesn't matter on development environment. Instead of ./config/config.php you could use ./config/environments/development.php for that line.
-jyrki
thats for the tip - but doesn't seem to work, as far as I can tell akelos code doesn't get run with the url "http://localhost/booklink/books"
That's true, the code doesn't get run with "http://localhost/booklink/books" but with "http://localhost/booklink/?ak=/books"
-jyrki
The line in config.php makes links (the ones that Akelos generates) act like this: "http://localhost/booklink//?ak=/book", but it doesn't convert the URLs if you give them to the browser in the form of: "http://localhost/booklink/foo"
-jyrki
Congrats on completing the tutorial :)
You're right. If the tutorial has the URLs in the form of: "http://localhost/booklink/foo" you have to "convert" them yourself to the form of: "http://localhost/booklink//?ak=/foo" Btw. I wonder why the latter has the double slashes there. Bermin or Salavert, do you have any ideas?
I've got problems with dates, too. The "created_at" dates are saved correctly, but when trying to save "last_login" (should get updated every time user logs in) for my user, it doesn't get saved. Strange. I'll try to figure out something...
-jyrki
I think the problem is in validations. Check if it works without them.. I opened anoher thread related to this problem.
-jyrki
1 to 22 of 22