Answers.Body: <p>Thank you Aidan, your assistance enabled me to solve this mystery. Unbeknownst to me, this installation from long ago had 2 civicrm.settings files. I won't share the ridiculous location of the one that was being used. Gotta' love this business.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-17T08:13:40.077Z
Answers.Text: Ah - that would cause confusion!
Answers.UserDisplayName: Aidan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-16T14:29:22.670Z
Answers.LastActivityDate: 2024-10-16T14:29:22.670Z
Answers.UserDisplayName: Eric Swanzey
Answers.Body: <p><code>CIVICRM_SMARTY_AUTOLOAD_PATH</code> lets you use the newer, preferred version of Smarty.  <code>CIVICRM_EXCLUDE_DIRS_PATTERN</code> and <code>CIVICRM_TEMPLATE_COMPILE_CHECK</code> both improve performance on live sites.</p>
  <p>These are fairly new settings and your system will run ok without them.  The system checks should include links to documentation telling you how to update your <code>civicrm.settings.php</code> file.</p>
  <p>It's not clear to me from your question whether you actually have those values set or not.  If not, then just follow the documentation and add them.  If they are set and the System Status check is giving wrong results then we need to know more about your chroot setup.</p>
  <p>==Update==</p>
  <p>The ISP's response describes the purpose of chroot (standard stuff), but not how it is implemented, particularly as regards the webserver.</p>
  <p>If you look at the checks <a href="https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Env.php#L1142-L1154" rel="nofollow noreferrer"><code>CIVICRM_EXCLUDE_DIRS_PATTERN</code></a> <a href="https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Env.php#L1161-L1174" rel="nofollow noreferrer"><code>CIVICRM_TEMPLATE_COMPILE_CHECK</code></a> <a href="https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Smarty.php#L26-L46" rel="nofollow noreferrer"><code>CIVICRM_SMARTY_AUTOLOAD_PATH</code></a> the code does not directly look for <code>civicrm.settings.php</code> but checks for PHP constants that should have been set earlier.  I'm not sure how chroot would affect that.</p>
  <p>You may need to put in some additional logging to figure out what is going on.  You could start by editing one of those checks and adding something like
  <code>\Civi::log()-&gt;debug(print_r(get_defined_constants(), true));</code> to see what constants it does have at that point. (Don't post the output - it includes security info.)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-15T12:04:11.657Z
Answers.Text: They are set and the System Status check is giving wrong results. The ISP's response describing the chroot setup is too long for this comment so I will try and add the content of it to this thread some other way.
Answers.UserDisplayName: Eric Swanzey
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-15T21:20:57.373Z
Answers.Text: Ok, see updates to my answer.
Answers.UserDisplayName: Aidan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-14T08:36:30.597Z
Answers.LastActivityDate: 2024-10-15T21:20:24.980Z
Answers.LastEditDate: 2024-10-15T21:20:24.980Z
Answers.UserDisplayName: Aidan
Body: <p>Everything was working fine, and then we migrated our Civi installation to a new server. It still works fine, except that now, System Status insists that I haven't declared the following variables in the civicrm settings file:</p>
  <ul>
  <li>CIVICRM_SMARTY_AUTOLOAD_PATH</li>
  <li>CIVICRM_EXCLUDE_DIRS_PATTERN</li>
  <li>CIVICRM_TEMPLATE_COMPILE_CHECK</li>
  </ul>
  <p>Again, the site operates as expected, it's just the incessant nags that I can't make go away. In the server migration, the only thing that changed was that the files were put in a /chroot directory. It's as if when System Status goes looking, it's not finding the settings file, but otherwise, Civi is finding the settings file because the site runs as expected.</p>
  <p>The network folks can't see anything wrong, neither can I. Except for this issue, the installation has been running just fine. Any advice would be appreciated.</p>
  <p>SUMMARY: The variables are set and the System Status check is giving wrong results. Here's ISP response describing the chroot setup:</p>
  <p>&quot;The primary purpose of a chroot environment in InterWorx is to isolate each user’s environment from others on the same server. This prevents a user or process from accessing files or directories outside their assigned environment. By limiting access to certain parts of the file system, InterWorx can improve the security of shared hosting environments. Even if a user's account or process is compromised, the attacker is contained within the chrooted environment and cannot reach system-wide resources. The chroot directory effectively becomes the root (/) for that user or process. For example, a user may have access to /home/username, but they can't see or access directories like /etc or /var.&quot;</p>
  
Tags: <wordpress><civicrm.settings.php>
Title: System Status false flag warnings after a successful server migration
ThreadText: # System Status false flag warnings after a successful server migration
  
  (Asked by: username_0 on 2024-10-13)
  
  Everything was working fine, and then we migrated our Civi installation to a new server. It still works fine, except that now, System Status insists that I haven't declared the following variables in the civicrm settings file:
  
  * CIVICRM\_SMARTY\_AUTOLOAD\_PATH
  * CIVICRM\_EXCLUDE\_DIRS\_PATTERN
  * CIVICRM\_TEMPLATE\_COMPILE\_CHECK
  
  Again, the site operates as expected, it's just the incessant nags that I can't make go away. In the server migration, the only thing that changed was that the files were put in a /chroot directory. It's as if when System Status goes looking, it's not finding the settings file, but otherwise, Civi is finding the settings file because the site runs as expected.
  
  The network folks can't see anything wrong, neither can I. Except for this issue, the installation has been running just fine. Any advice would be appreciated.
  
  SUMMARY: The variables are set and the System Status check is giving wrong results. Here's ISP response describing the chroot setup:
  
  "The primary purpose of a chroot environment in InterWorx is to isolate each user’s environment from others on the same server. This prevents a user or process from accessing files or directories outside their assigned environment. By limiting access to certain parts of the file system, InterWorx can improve the security of shared hosting environments. Even if a user's account or process is compromised, the attacker is contained within the chrooted environment and cannot reach system-wide resources. The chroot directory effectively becomes the root (/) for that user or process. For example, a user may have access to /home/username, but they can't see or access directories like /etc or /var."
  
  **Tags:** wordpress, civicrm.settings.php
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_0 on 2024-10-16. Score: 1
  
  Thank you username_1, your assistance enabled me to solve this mystery. Unbeknownst to me, this installation from long ago had 2 civicrm.settings files. I won't share the ridiculous location of the one that was being used. Gotta' love this business.
  
  > **Comments:**
  > **username_1**: Ah - that would cause confusion!  
  
  ---
  
  ### Answer by username_1 on 2024-10-14. Score: 1
  
  `CIVICRM_SMARTY_AUTOLOAD_PATH` lets you use the newer, preferred version of Smarty. `CIVICRM_EXCLUDE_DIRS_PATTERN` and `CIVICRM_TEMPLATE_COMPILE_CHECK` both improve performance on live sites.
  
  These are fairly new settings and your system will run ok without them. The system checks should include links to documentation telling you how to update your `civicrm.settings.php` file.
  
  It's not clear to me from your question whether you actually have those values set or not. If not, then just follow the documentation and add them. If they are set and the System Status check is giving wrong results then we need to know more about your chroot setup.
  
  ==Update==
  
  The ISP's response describes the purpose of chroot (standard stuff), but not how it is implemented, particularly as regards the webserver.
  
  If you look at the checks [`CIVICRM_EXCLUDE_DIRS_PATTERN`](https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Env.php#L1142-L1154) [`CIVICRM_TEMPLATE_COMPILE_CHECK`](https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Env.php#L1161-L1174) [`CIVICRM_SMARTY_AUTOLOAD_PATH`](https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Check/Component/Smarty.php#L26-L46) the code does not directly look for `civicrm.settings.php` but checks for PHP constants that should have been set earlier. I'm not sure how chroot would affect that.
  
  You may need to put in some additional logging to figure out what is going on. You could start by editing one of those checks and adding something like
  `\Civi::log()->debug(print_r(get_defined_constants(), true));` to see what constants it does have at that point. (Don't post the output - it includes security info.)
  
  > **Comments:**
  > **username_0**: They are set and the System Status check is giving wrong results. The ISP's response describing the chroot setup is too long for this comment so I will try and add the content of it to this thread some other way.  
  > **username_1**: Ok, see updates to my answer.  
  
  ---
  
  