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

finnlesueurgmailcom - 4 months 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 - 4 months ago

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

finnlesueurgmailcom - 4 months ago

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

ryanthompson - 4 months 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 - 4 months 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 - 4 months 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

<IfModule mod_php5.c>
    RewriteRule ^(.*)$ index.php/$1 [L]

<IfModule !mod_php5.c>
    RewriteRule ^(.*)$ index.php?/$1 [L]


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