Today I am going to run a php demo under IIS. The configuration of the website under IIS is as follows of:
The application pool is .net framework 2.0 in integrated mode (it doesn’t matter if it’s 2.0 or 4.0, because PHP runs in fastCGI mode). The application pool identity is configured as the NETWORKSERVICE built into IIS, and the authentication method used is anonymous identity. verify.
When I opened the local website and accessed the php page, a 500 error occurred.
Okay, it’s a permissions issue. The simplest solution is to set the permissions of C:UsersAdministratorPhpstormProjectsphpDemo to Everyone, and allow full control:
Revisited the php page and succeeded:
The above method is simple enough, but it is also too unsafe. It is usually no problem to set up a local demo to do this, but when it is actually online, it will cause problems sooner or later.
So I reset it and gave the read-only permissions in the directory to the NETWRORKSERVICE account and tried again
However, the problem is still not solved. When accessing, a 401 error occurred
The error message includes that the logged-in user is anonymous. Check the authentication under the website (then click Anonymous Authentication->Edit). It turns out that by default, the website uses the default login user when the login method is anonymous. For IUSR (the anonymous login user we see)
Then the solution is:
1. Set IUSR to the read permission of C:UsersAdministratorPhpstormProjectsphpDemo, similar to the previous setting of NETWORKSERVICE.
2. Or choose to use the application pool identity.
After testing, both methods 1 and 2 were successful.
Note: NETWORKSERVICE belongs to the iis_iusers user group in IIS7. The previous settings for NETWORKSERVICE can also be changed to the settings for iis_iusers, which can also solve the problem, but the permissions are further relaxed.
The above is the entire content of this article, I hope you all like it.