Jump to content
View in the app

A better way to browse. Learn more.

The Uniform Server Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

${US_ROOTF} wrong value when using php-cli.ini from CLI

Featured Replies

Hi to everybody,

this is my first post here.

 

I've a problem sending email from php54 CLI.

The .ini file used is php-cli.ini from core\php54 folder.

 

But the ${US_ROOTF} variable in the .ini contain the user home directory in windows (ex. "C:\Users\username\AppData\Roaming\").

 

How about this strange behaviour?

 

TIA,

Carlo

Please supply example code, do not include a real email address.

Explain how you run this code.

 

All the best

Ric

  • Author

Sure!

 

This is the code of test.php file:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

mail("to@email.com", "Subject", "Line 1\nLine 2\nLine 3");
die();

This is the command line to run the code:

F:\UniServerZ\core\php54\php -f F:\Home\Dropbox\test.php

This is the error message:

Impossibile trovare il percorso specificato.

that sounds like "unable to find the specified path" or something silimar (I use italian OS).

 

I think that the ${US_ROOTF} variable contains a wrong path value...

 

This is the command line to see the default configuration file loaded:

f:\uniserverz\core\php54\php -r "print (php_ini_loaded_file());"

the output result is:

F:\uniserverz\core\php54\php-cli.ini

php-cli.ini default file contains:

[PHP]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; PHP PHP 5.4.32 CLI  php-cli.ini    ;
; Uniform Server PHP CLI php-cli.ini ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

extension=php_curl.dll
extension=php_mysql.dll
extension=php_openssl.dll
extension=php_gd2.dll
extension=php_pdo_mysql.dll
extension=php_mbstring.dll

extension_dir = "./extensions"
;error_reporting = E_ALL | E_STRICT
error_reporting = E_ALL 
date.timezone = "Europe/Rome"

sendmail_path = "${US_ROOTF}/core/msmtp/msmtp.exe --file=${US_ROOTF}/core/msmtp/msmtprc.ini  -t"

[COM_DOT_NET]
extension=php_com_dotnet.dll

If I try to change sendmail_path configuration with

sendmail_path = "F:/UniServerZ/core/msmtp/msmtp.exe --file=F:/UniServerZ/core/msmtp/msmtprc.ini  -t"
the following error comes out:
F:/UniServerZ/core/msmtp/msmtp.exe: cannot log to C:\Users\utente\AppData\Roaming\core\msmtp\msmtp.log: cannot open: No such file or directory

and the email was correctly send. In the last error message I can see the USER HOME path so I think that ${US_ROOTF} contains it.

 

This solution is not the best...

What can I do?

 

TIA,

C.

I assume you are running the following command line:

 

F:\UniServerZ\core\php54\php -f F:\Home\Dropbox\test.php

 

from a standard command prompt (cmd). What is missing are two environment variables HOME (required by msmtp.exe) and US_ROOTF (required by php-cli.ini)

UniController automatically creates these environment variables. For example run UniController and click "Server Console" button this opens a console window (command prompt). Now enter the command line:

php -f F:\Home\Dropbox\test.php

your script will run correctly. Generally if you are using the command line to run PHP scripts use this command prompt.

All the best
Ric

  • Author

You are right!!!

Thank you very much!!!

 

I never used the server console before...

 

Setting HOME and US_ROOTF variables from the batch before calling php is the right way to solve the problem.

 

Is there a method to force the server console environment to call custom batch?

 

TIA,

C.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.