Jump to content
Larry Ullman's Book Forums


  • Posts

  • Joined

  • Last visited

  • Days Won


andybendyman last won the day on March 15 2014

andybendyman had the most liked content!

andybendyman's Achievements


Newbie (1/14)



  1. Hi Larry, i first came across your books when i was going through Modern JavaScript. At that time I had already been through loads of beginner to intermediate books on php and was having trouble to find a book that really took my knowledge to the next level. I dove into Advanced PHP Advanced & OOP and thoroughly enjoyed it. I have just purchased Effortless E-Commerce and this also seems to be extremely well written (although i have become a fan of OOP so chapter 16 would have been a nice addition). Extremely satisfied reader, it has been a pleasure to work through your books.
  2. Hello there again!! I have now solved my problem and seem to have gotten my .htaccess file to work now. I continued to do some reading on the internet. I discovered that it seemed that my apache2 installation had done something strange with the file settings. I don't know whether this is a result of this being installed via Zend Server or whether it is a windows installation problem (or both). Here are a few examples of the problems i found with some of the configurations: ServerRoot "C:\Program Files (x86)\Zend\Apache2" DocumentRoot "C:\Program Files (x86)\Zend\Apache2/htdocs" In several places there had been a either a full use of backslashes or a mixed use of backslashes and forward slashes. I found the following link to adjust my settings which basically used all forward slashes http://www.uow.edu.au/~nabg/WebServer/Chapter3/WindowsConf.html I am now able to access the settings i do in the .htaccess file. Another little thing that is discovered was the importance of disabling the caching feature in the browser that i was using. Without this, it seems i was not able to see any changes i had made (even after closing and opening the browser -- i had of course restarted my apache each time i changed any configurations). I am not sure whether i needed to modify all of the slashes in my httpd.conf file. But after changing all the backslashes to forward slashes for the important files and folders, it seems that everything was sorted. I hope that this might help anyone else who has similar problems. Also, if anyone could explain to me whether or why my understanding is correct, that would be really cool!! Cheers !!!
  3. Thank you for all your help. I am pretty sure that i have tried the things that you have suggested. I have also just tried again anyway. Still no success!! I will move on for the moment, and see what comes down the road. At the moment as i am developing on 'localhost', I will continue to modify the httpd.conf file and pretend that i am in fact modifying the .htacess file. From our conversation, i think i am now able to confirm that my understanding would be mostly correct (even though something silly is going on somewhere).
  4. Thank you very much for the time that you have given for helping me work on this problem. I'll walk through the results that i came up with. <Directory "C:\Program Files (x86)\Zend\Apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride All # ***ANDY*** added below (not in original config) Require all granted # ***ANDY*** commented out below two lines (original config was not commented out) #Order allow,deny #Allow from all </Directory> At this point i got the following error message: ---403 Forbidden--- You don't have permission to access /PHPadvanced/project_1/a.html on this server. Please note that my .htaccess file now sits in the following folder C:\Program Files (x86)\Zend\Apache2\htdocs\phpadvanced\project_1 My .htacess file is as follows <IfModule mod_rewrite.c> RewriteEngine on RewriteRule a.html b.html </IfModule> If i include RewriteBase this does not help either. If it then change my httpd.conf file to the following <Directory "C:\Program Files (x86)\Zend\Apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride All # ***ANDY*** added below (not in original config) Require all granted Order allow,deny Allow from all </Directory> I now get a 500 internal Server Error message. If i look at my error.log i see the following error. [crit] [client] configuration error: couldn't perform authentication. AuthType not set!: /PHPadvanced/project_1/a.html If i then comment out the Require all granted line from my httpd.conf file i am then once again able to access http://localhost/PHPadvanced/project_1/a.html But it would seem that the .htaccess file is not doing anything as it is still showing my content from a.html instead of b.html. Once again thanks for trying to help me get to the bottom of this. If nothing appears obviosuly wrong in what i am doing, then I am sure i will stumble across something in the future. Thank you for your detailed explanation, it has helped me expand my understanding of the things involved.
  5. I am still having problems with this. Are there any simple checks that i can do to find more information about where the problem might be?
  6. I have just added the following line to my code and something has changed, but there is still a problem somewhere!! <Directory "C:/Program Files (x86)/Zend/Apache2/htdocs/PHPadvanced/project_1"> AllowOverride All Require all granted </Directory> I have left the two directories that are shown in blue and red above as 'AllowOverride None' . It didn't change anything when i set them to All. However, now when i go to my error_log, i am now seeing the following: crit] [client] configuration error: couldn't perform authentication. AuthType not set!: /PHPadvanced/project_1/about This is a very different problem to the one that i was encountering before where it previously simply stated that '/about' did not exist.
  7. I have changed the Directory for htdocs to AllowOverride All as shown in my below httpd.conf file and restarted my apache server. I have also shown the configuration of my LoadModule settings. # LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule cache_module modules/mod_cache.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_lock_module modules/mod_dav_lock.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule dumpio_module modules/mod_dumpio.so LoadModule env_module modules/mod_env.so #LoadModule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so LoadModule filter_module modules/mod_filter.so LoadModule headers_module modules/mod_headers.so #LoadModule ident_module modules/mod_ident.so LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_forensic_module modules/mod_log_forensic.so #LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule mime_module modules/mod_mime.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule negotiation_module modules/mod_negotiation.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so #LoadModule reqtimeout_module modules/mod_reqtimeout.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule speling_module modules/mod_speling.so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule userdir_module modules/mod_userdir.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User daemon Group daemon </IfModule> </IfModule> # 'Main' server configuration # # The directives in this section set up the values used by the 'main' # server, which responds to any requests that aren't handled by a # <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file. # # All of these directives may appear inside <VirtualHost> containers, # in which case these default settings will be overridden for the # virtual host being defined. # # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents. e.g. admin@your-domain.com # ServerAdmin admin@example.com # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn't have a registered DNS name, enter its IP address here. # #ServerName www.example.com: 80 # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:\Program Files (x86)\Zend\Apache2/htdocs" # # Each directory to which Apache has access can be configured with respect # to which services and features are allowed and/or disabled in that # directory (and its subdirectories). # # First, we configure the "default" to be a very restrictive set of # features. # <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> # # Note that from this point forward you must specifically allow # particular features to be enabled - so if something's not working as # you might expect, make sure that you have specifically enabled it # below. # # # This should be changed to whatever you set DocumentRoot to. # <Directory "C:\Program Files (x86)\Zend\Apache2/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> # I have tried changing both the Directory in blue and the Directory in red to AllowOverride All. However, neither of these is in fact helping with the situation. Can you please confirm that my understanding of these is correct: as the Directory in blue appears earlier in the script, this first creates very tight controls over what can Override its settings. As the red occurs later in the script this is able to create a narrow scope for allowing the override of settings. If at the end of the script or at some point after the Directory in red, i were to add the following code and leave the previous two Directories (red and blue) set to AllowOverride None, then this should also work?? <Directory "C:/Program Files (x86)/Zend/Apache2/htdocs/PHPadvanced/project_1"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> I have placed the .htaccess file in my project_1 folder. Here is a copy of my .htaccess file. # project_1 .htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /PHPadvanced/project_1/ RewriteRule ^(about|contact|this|that|search)/?$ index.php?p=$1 </IfModule> I have been looking at various different forums, but I am still not able to find where i am creating a problem. Thank you for everyone's help. Can you let me know if my understanding is correct and what other information i need to provide to try and help diagnosis. Cheers
  8. I have deleted the spare version of the .htaccess file. However, i am still not having any better results. My understanding was that if AllowOverride was set to None in the httpd.conf file, then this would not allow access to the .htaccess file. I have tried playing around by using AllowOverride All in different directories in the httpd.conf file including the .htdocs directory, but still not luck. I am still baffled at how to get .htaccess to work.
  9. I have now had a small breakthrough, but not totally solved the problem. When i paste the following code directly into httpd.conf file, replacing the original code that i originally placed in the file. I am now able to view the content of b.html whilst showing a.html in the browser address bar. This suggests that there is something that i am not quite doing right with the .htaccess file. I have also tried pasting the following code into my httpd.conf file and it is working as it is supposed to. <Directory "C:/Program Files (x86)/Zend/Apache2/htdocs/PHPadvanced/project_1"> RewriteEngine on RewriteBase /PHPadvanced/project_1/ RewriteRule ^(about|contact|this|that|search)/?$ index.php?p=$1 </Directory> So it would seem that this part of the code is not having too much trouble. The big problem would be how i am getting apache to access my .htaccess file. I hope this narrows down my problems a little!!
  10. Thanks for the suggestion. I have tried this in my ht.access file and it still does not work. If i understand correctly, when i type http://localhost/PHPadvanced/project_1/a.html into my browser, my address bar will remain unchanged, but in actual fact the content should be that of b.html. I have created a .htaccess file and put it both in my project_1 folder and also in my htdocs folder. I don't think that it is supposed to be in both of these. My understanding is that because i placed the following code at the bottom of my httpd.conf file, then i have only allowed apache to accept override from the project_1 folder. Is it correct that i therefore only need to create a .htaccess file in project_1?? <Directory "C:/Program Files (x86)/Zend/Apache2/htdocs/PHPadvanced/project_1"> AllowOverride All </Directory>
  11. I have been working on the project in Chapter 2. So far everything is running well. I am currently trying to get the mod_rewrite capability in .htaccess working. But seem to be having problems. Let me explain my setup: My root_document folder is as follows: C:\Program Files (x86)\Zend\Apache2\htdocs\PHPadvanced\project_1 The changes that i have made to the httpd.conf is as follows: <Directory "C:/Program Files (x86)/Zend/Apache2/htdocs/PHPadvanced/project_1"> AllowOverride All </Directory> I have placed this at the bottom of my httpd.conf file. I have not changed the settings that are earlier in this file: <Directory "C:\Program Files (x86)\Zend\Apache2/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> I looked at several forums and there were many suggestions to change this part of the .conf file. However, I understood that by adding the code that i did add to the end of the file, i have basically just controlled the amount of space that i have opened up to being controlled from the .htaccess file. I have placed my .htaccess file in both the main htdocs root folder, but also in the project_1 root_folder. This is also where my index.php file is. My contents of the .htaccess file are as follows: # project_1 .htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /PHPadvanced/project_1/ RewriteRule ^(about|contact|this|that|search)/?$ index.php?p=$1 </IfModule> I am now trying to go to my browser and type in http://localhost/PHPadvanced/project_1/about But this is just bringing up the following message. Not Found The requested URL /PHPadvanced/project_1/about was not found on this server. I am struggling as i am not quite sure where i am having problems. PLEASE HELP!!!
  • Create New...