3

I have been spending the past while trying to install Joomla on a server running Windows Server 2008. I have successfully installed PHP (using Microsoft's web tool for installing PHP with IIS) and MySQL and am now trying to run the browser-based installation.

Everything comes up green, I fill in the appropriate information regarding the site name, MySQL information, etc. and no errors are thrown. However, when I get to the step that asks me to remove the installation directory, I am unable to do so as Windows states it is in use by another program (I cannot fathom how this is true). Also, there is no configuration.php file that is created so if I were to manage to delete this folder I have a feeling that there would be problems.

I was thinking there was some kind of a permissions issue and have set the permissions for IIS_IUSRS to have read, write, and execute permissions for the entire folder that Joomla resides in but this has not helped.

Any help in this matter is greatly appreciated. ;)

Greg

EDIT: I decided to try and manually install Joomla by manually editing the configuration.php file. This has worked great and now I am certain there is some kind of a permissions issue going on because I am able to do everything that involves the MySQL database (create an article, edit menu items, etc.), but anything that involves making changes to Joomla installation's directory does not work (install plugins, edit configuration settings using the Global Configuration menu within Joomla, etc.) I have granted IIS_IUSRS every permission except Full Control (reading on the Joomla! forums shows that this should be enough for everything to work). This is confusing to me and I am quite stuck on this problem.

EDIT 2: The bizarre thing is that in the System Info under Directory Permissions, everything turns up as Writable but then whenever I try to actually use Joomla to, for example, edit the configuration.php file using the interface, it says it is unable to edit the file.

3 Answers3

1

The user it is running as is probably the default user for annomous access. To find out which one this is in IIS7 do the following:

  1. Select the Site or Virtual Directory Joomla is in.
  2. Open Authentication icon (Under the IIS section).
  3. Select Annonomous Access, this should be the only one enabled.
  4. Select Edit from the right hand side.

The dialog that appears gives two options: to use a specified user account or to use the Application Pool identity.

By default it is set to use the IUSR account as such I just give access to that account. Note this account is not part of the IIS_IUSER Group.

If it is set to use the Application Pool Identity, then you will need to give the IIS_IUSER Group access to the files. The Application Pool Identity is added to the IIS_IUSER group at run time. As such don't expect to find your Application Pool listed in IIS_IUSER's members.

A full explanation is given in "Understanding Built-In User and Group Accounts in IIS 7" on the IIS site.

Martin Brown
  • 434
  • 8
  • 25
0

In IIS7 on Windows Server 2008 the account the website runs under is 'Network Service' by default. Users it WAY too broad and just happened to work because 'Network Service' is a member of the 'Users' group you edited permissions for.

When you couldn't rename your installation directory it was because your application pool that runs the website was holding the files open from when you tried accessing them in your browser. Go to Start > Run > 'inetmgr' to open IIS' management tool. Find your 'Application Pools' section and by default one will have been created with your website name. Right-click on it, choose stop, rename your directory, then right-click and choose start to re-enable your site.

  • I think you will find the web site runs either under the ApplicationPoolIdentity or under IUSR. Network Service was the default in IIS6/Windows 2003 and earlier. – Martin Brown Feb 02 '11 at 17:36
0

Someone mentioned you need to grant both IUSR_ and IWAM_ read and write permissions to those folders in need. Not sure what context PHP executes in but IIS may not use the account you think it does for certain operations. IWAM_ is used to run scripts like CGI as far as I recall.

administrator/backups,
administrator/components,
administrator/modules,
administrator/templates,
cache,
components,
configuration.php,
images,
images/stories,
language,
mambots,
media,
modules,
plugins,
plugins/content,
plugins/editors,
plugins/editors-xtd,
plugins/search,
templates  

Are you using FastCGI or ISAPI for PHP?

Oskar Duveborn
  • 10,740
  • 3
  • 32
  • 48
  • I am using FastCGI. I had no part in the installation of the Windows Server, nor do I really understand much about it, but I can say that there is no IWAM_ account in the list. Is there a way to create this? –  Nov 05 '09 at 15:51
  • Following your train of thought, I gave Users the permissions and everything works! I'm guessing I should downgrade these permissions once I'm finished setting things up? –  Nov 05 '09 at 16:09
  • Yes you should remove the permissions after setup - with the exception of the listed folders in my answer. Preferably you'd remove Users and add read+write for IWAM (and IUSR) instead - as long as it was the missing IWAM permissions that was the problem here ^^ – Oskar Duveborn Nov 05 '09 at 16:34
  • Some other account is used for executing php then... let's dig around... – Oskar Duveborn Nov 06 '09 at 08:01
  • This answer is only correct for IIS6 Microsoft changed things in IIS7. See my answer for details. – Martin Brown Feb 02 '11 at 17:38