我正在尝试使用以下命令从PHP运行Python脚本:
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
但是,PHP根本不会产生任何输出.错误报告设置为E_ALL并且display_errors已启用.
这是我尝试过的:
python2,/usr/bin/python2而python2.7不是/usr/bin/python2.7exec,shell_exec,system.但是,如果我跑
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
Run Code Online (Sandbox Code Playgroud)
它完美无缺,shutdown now而且什么都不做.
PHP具有访问和执行文件的权限.
编辑:感谢亚历杭德罗,我能够解决问题.如果您遇到同样的问题,请不要忘记您的网络服务器可能/希望不会以root用户身份运行.尝试以您的网络服务器用户或具有类似权限的用户身份登录,并尝试自行运行命令.
TL; DR:当尝试在PHP include命令包含的页面上使用相对链接时,此页面上的最后一个代码示例有哪些替代方案?
我正在尝试include()链接到.css文档的文件,问题是我需要从多个(不同的)目录中包含此文件.我的目录结构看起来有点像这样:
www
??? (getpath.php)
?
??? css
? ??? style.css
??? php
? ??? header.php
??? content
??? index.php
??? posts
??? index.php
Run Code Online (Sandbox Code Playgroud)
(我header.php在两个index.php文件中都包含.header.php是引用的文件style.css(浏览器需要找到的文件).例如:使用时../css/style.css,CSS会显示在我的content/index.php但不会显示在我的文件中content/posts/index.php,因为浏览器正在寻找content/css/index.php.)
放置在文档根目录的子目录中时,网站也应该工作,而不是在文档根目录中.出于这个原因,我不能只使用/css/style.css(相对于服务器根目录)链接到我的CSS样式表.
我想(请纠正我,如果我错了!)告诉浏览器在哪里找到CSS文档的最简单方法可能是指定相对于文档根目录的路径.由于我希望我的网站位于文档根目录的子目录中(并且希望避免使用config文件来存储子目录),我需要找出网站所在子目录的相对路径.我的想法是放置getpath.php在我的网站的根目录(不是文档根目录)中调用的文件.在该文件中,我写了以下内容:
<?php
define('PROJECT_SUBDIRECTORY', $_SERVER['PHP_SELF']);
?>
Run Code Online (Sandbox Code Playgroud)
但是,我注意到这给了我用户在浏览器中请求的PHP文件的相对目录(例如content/index.php)而不是包含的文件(getpath.php).我也读过这PHP_SELF是基于REQUEST_URI,这是不安全的.我在这里找到了这个解决方案:
define('PROJECT_DIR', …Run Code Online (Sandbox Code Playgroud) php directory-structure relative-path document-root magic-constants
我试图以"days:hours:minutes:seconds"的格式输出"900,000毫秒",我现在正在使用此代码:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd:HH:mm:ss");
String formatted = simpleDateFormat.format(900000)
Run Code Online (Sandbox Code Playgroud)
900,000毫秒应该是15分钟,所以我希望它返回
00:00:15:00
Run Code Online (Sandbox Code Playgroud)
或类似的东西......
但无论如何它都会回归
01:01:15:00
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么以及如何解决它?
我认为它必须对时区做一些事情,但它也增加了1天的天数......?
提前致谢!