Internal Server Error – PHP Error Log Shows Mismatch between target UID (1223) and GID (99)
When visiting your websites you might be presented with an Internal Server Error. You should check the error log to find out what the exact issue is that is causing this problem. You can search the Apache log for the user in question which will show you the precise error. To search the Apache error log you can use the “grep” feature.
>> Automated way of checking files and folders have the correct user and permissions
We’re going to search for the user First2Host and display the latest log entries for this user
grep "First2Host" /usr/local/apache/logs/error_log | less
This brings back a list of errors We’re just going to focus on the Mismatch between target UID (1223) and GID (99) error and resolve the problem.
[Wed Oct 25 20:37:44.683243 2017] [:error] [pid 31549] [client 192.168.0.44:5225 9] SoftException in Application.cpp:462: Mismatch between target UID (1223) and GID (99) of file "/home/First2Host/public_html/index.php"
As the error log shows, the ownership of the file index.php located in the public_html folder is wrong. The file has a UID of 1223 which is the user First2Host but has a GID of 99 which is nobody. The server was expecting a UID of 1223 and a GID of 1223 and this is causing an Internal Server Error 500.
You can also check the ownership and permissions on a file or folder by using the stat command;
stat /home/First2Host/public_html/index.php File: '/home/First2Host/public_html/index.php' Size: 418 Blocks: 8 IO Block: 4096 regular file Device: 22h/34d Inode: 45635011 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1223/First2Host) Gid: ( 99/nobody) Access: 2017-10-25 22:18:33.662462339 +0100 Modify: 2017-10-08 22:36:15.000000000 +0100 Change: 2017-10-25 22:05:55.163463029 +0100 Birth: -
Change File Ownership
To change the ownership of files and folders you can use the crown command
chown First2Host. /home/First2Host/public_html/index.php
This will change the ownership / GID of the file to the user First2Host and should correct the problem being seen in the error log. It’s likely other files will also have the wrong ownership settings so let’s see if we can find other files and folders with the ownership of nobody
find /home/First2Host/ -type f -ls | egrep -v 'First2Host (First2Host|mail)' | grep 'nobody nobody' | wc -l 4444
The user First2Host has 4444 files set to the ownership of nobody, all these will need to be changed. We can run a reclusive command to change the ownership of these files;
chown -R First2Host. /home/First2Host/public_html/*
This will change the ownership of all files and folders within /home/First2Host/public_html/ to the Uid and Gid “First2Host”.
Performing some functions like changing the PHP handler will mean some files have the wrong permission. There is an automated way to check all files and folder permissions. You can read our blog post on this if you have a lot of files or indeed a whole server that needs to be checked for he correct permissons.
How was this article? – Internal Server Error – PHP Error Log Shows Mismatch between target UID (1223) and GID (99)
You might also like
More from cPanel
How To Install A Cloudflare Origin SSL Certificate In cPanel
Free SSL Certificates from places like cPanel or Let's Encrypt are great. When Let's Encrypt first introduces free SSL Certificates …
Create a SWAP partition on CentOS, RHEL and AlmaLinux without a reboot
SWAP is a memory type that Linux NVMe VPS Servers use to process requests. Memory will be held in SWAP …
Help fixing Error: last request failed: [AUTH] Authentication failed.
The Error: last request failed: [AUTH] Authentication failed error can be caused by a range of things. It could be …