403 You don't have permission to access /installer/index.php/installer/step_4

finnlesueurgmailcom - 1 year ago

I'm trying to install PyroCMS v2-1.1.5 on a server with PHP 5.6 and what looks to be a standard setup.

When I click install at the bottom of Step 4 I get a __403 You don't have permission to access /installer/index.php/installer/step_4__ message.

I have run chmod -R 777 on the entire codebase to see if that would help but to no avail.

Here is an Imgur album with some screenshots of the 403, PHP modules installed and the installer/views directory.

ryanthompson - 1 year ago

I think this is probably related to the .htaccess / rewrite setup: http://stackoverflow.com/a/8745971

finnlesueurgmailcom - 1 year ago

Should my new .htaccess file go in the installer folder or the root folder?

ryanthompson - 1 year ago

Put it in the root folder. It really should have this already in the project though: https://github.com/pyrocms/pyrocms/blob/2.2/master/.htaccess

finnlesueurgmailcom - 1 year ago

I added that to the .htaccess file and edited the config.php as suggested. I also applied this fix here for the Only variable references should be returned by reference.. error that was appearing at the top.

The first page of the installer loads nicely now, however on clicking Step #1 it tries to access the URL _http://dev.cashmerehighfoundation.org.nz/installer/installer/step_1_ and throws a 404 as you would expect.

finnlesueurgmailcom - 1 year ago

Scratch that second paragraph above. I still get the same error. Here are my files though:

.htaccess `# Multiple Environment config

Set this to development, staging or production


RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ /index.php/$1 [L]

# Make sure directory listing is disabled Options +FollowSymLinks -Indexes # disable the Apache MultiViews directive if it is enabled on the server. It plays havoc with URL rewriting Options -MultiViews RewriteEngine on # Automatically determine and set the PYRO_ENV variable #RewriteCond %{HTTP_HOST} ^local.domain.com$ #RewriteRule (.*) $1 [E=PYRO_ENV:development] #RewriteCond %{HTTP_HOST} ^stage.domain.com$ #RewriteRule (.*) $1 [E=PYRO_ENV:staging] #RewriteCond %{HTTP_HOST} ^domain.com$ #RewriteRule (.*) $1 [E=PYRO_ENV:production] # NOTICE: If you get a 404 play with combinations of the following commented out lines #AllowOverride All #RewriteBase /wherever/pyro/is # Restrict your site to only one domain # !important USE ONLY ONE OPTION # Option 1: To rewrite "www.domain.com -> domain.com" uncomment the following lines. #RewriteCond %{HTTPS} !=on #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] #RewriteRule ^(.*)$ http://%1/$1 [R=301,L] # Option 2: To rewrite "domain.com -> www.domain.com" uncomment the following lines. #RewriteCond %{HTTPS} !=on #RewriteCond %{HTTP_HOST} !^www\..+$ [NC] #RewriteCond %{HTTP_HOST} (.+)$ [NC] #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] # Keep people out of codeigniter directory and Git/Mercurial data RedirectMatch 403 ^/(system\/cms\/cache|system\/codeigniter|\.git|\.hg).*$ # Send request via index.php (again, not if its a real file or folder) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] RewriteRule ^(.*)$ index.php?/$1 [L]


And in system/cms/config/config.php $config['index_page'] = '';