情况如下。 我有FreeBSD用户M ,它是root的别名,即它的UID等于0。 我有一个以M开头的守护进程(作为自动login控制台的shell,如果它很重要)。 守护进程应该以非交互方式启动screen 。 它实际上是这样,但这里的怪癖: screen也开始作为M ,因此它的套接字文件被放置到/tmp/screens/M ,而不是/tmp/screens/root我实际上需要它能够作为根连接仍然以单用户模式离开screen )。 我已经尝试了以下没有成功: USER=root /usr/local/bin/screen … 和 sudo /usr/local/bin/screen … 它如何检测实际的用户名? 我怎么能强迫它认为它是真正的root而不是M ?
在我们的应用程序中,我们使用名为SERVER_ENV的环境variables来设置我们是否处于生产环境或开发环境中。 这是通过Apache的httpd.conf文件设置的。 我们遇到的问题是使用下面通过Pleskpipe理界面设置的计划任务命令,当然没有与Apache交互,所以环境variables没有设置。 使用的命令如下: /usr/bin/php -d safe_mode=Off /var/www/vhosts/example.com/httpdocs/index.php cron file-cleanup 花了一些时间研究它会出现,我可以设置variables使用: SERVER_ENV="production" 但我已经尝试了各种方法,这似乎并没有拿起。 任何人都可以阐明我可以在命令string中包含的地方吗?
最适合用于Linux(Ubuntu,CentOS,Fedora等)的最佳位置在哪里存储系统范围的environmental variables ? 看起来像所有这三个位置将工作。 哪个最好? /etc/environment /etc/profile /etc/bash.bashrc 谢谢。
我从HTML5 Boilerplate中借用了一些mod_expires代码,它为资产到期添加了一些合理的默认值(我使用htaccessconfiguration了文件名版本转换,所以我可以在资源扩展之前添加m次,如script.123456789.js ): ExpiresActive on ExpiresDefault "access plus 1 month" # CSS ExpiresByType text/css "access plus 1 year" # Data interchange ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" # … etc … 但是,我想在我的开发服务器(设置一个DEVELOPMENT=1环境variables)禁用这些。 如果设置了环境variables( Allow from env=DEVELOPMENT ),是否可以在2.4.4中有条件地禁用mod_expires (也许是ExpiresActive On ),就像使用mod_access一样?
我正在编辑组策略计划任务。 一般情况下,安全选项“运行任务时,请使用以下用户帐户:”我有以下 – %USERDOMAIN%\%USERNAME% 更新gpo,并检查工作站上的结果,我看到UserDomain设置正确,除了用户名设置不正确。 它实际上把电脑的主机名,而不是…示例结果: CorrectDomain\PRMRH$ 没有错误,事件日志中没有任何内容。 它只是不会运行。 我删除了%USERDOMAIN%,只剩下%USERNAME%,它将在计划任务中显示“PRMRH $”。 我应该使用%USERNAME%以外的东西吗? 编辑: MS帮助文件状态: 安全选项configuration运行任务的安全上下文。 •如果首选项是“计算机configuration”的一部分,则缺省情况下该任务将在SYSTEM帐户的安全上下文中运行。 •如果首选项是“用户configuration”的一部分,则默认情况下该任务将在login用户的安全上下文中运行。 除非您提供凭据,否则仅在用户login到计算机时才运行该任务,但在用户注销后可以继续。 •要在指定帐户的安全上下文下运行任务(不pipe该帐户是否已login),请单击更改用户或组,input该帐户的凭据,然后单击运行用户是否已login。
我想了解如何设置和重置(重写)环境variables。 我在Mac上运行Apache / 2.2.24(Unix)PHP / 5.4.14。 我的理论是这样的: 环境variables可以在bash中设置,然后可以用php.ini之前的一个VirtualHost指令之前的httpd.conf覆盖,然后可以用.htaccess(如果允许)覆盖,最后用PHP 我尝试了以下内容: 在bash中设置环境variables:我将export ENVIRONMENT='local'到我的〜/ .bashrc文件中,重新启动apache,并且没有从print_r($_ENV);得到任何输出print_r($_ENV); (在我的web服务器根目录下的一个简单的index.php文件中)。 我也尝试把ENVIRONMENT='local'放到/ etc / environment中 ,然后重新启动apache,没有任何东西,还有/ etc / bashrc ,重新启动apache。 依然没有。 在httpd.conf中设置环境variables:我将SetEnv ENVIRONMENT 'local-httpd到我的/etc/apache2/httpd.conf文件的末尾(但在加载其他conf文件之前,比如虚拟主机[ Include /private/etc/apache2/other/*.conf ])。 我现在看到数组print_r($_SERVER);的variablesprint_r($_SERVER); 但不是print_r($_ENV); 。 在httpd-vhosts.conf中设置环境variables:我在我的通用指令中添加了SetEnv SetEnv ENVIRONMENT 'local-vhost到我的/etc/apache2/extra/httpd-vhosts.conf文件,该指令指向了我的默认文档根目录。 我现在看到variables已被覆盖(local-vhost从local-httpd,所以我知道variables正在设置)。 在php.ini中设置环境variables:当search一个合适的位置来放置我的环境variables时,我注意到variables_order = "GPCS"被设置为生产值而不是EGPCS 。 我改变了它,重新启动我的服务器,发现我现在得到了print_r($_ENV);输出print_r($_ENV); 但不是我预期的自定义variables。 它也似乎我无法在此文件中设置自定义variables。 请告诉我,如果我错了 在.htaccess中设置环境variables:我添加了SetEnv ENVIRONMENT 'local-htaccess' 。 这按预期工作,覆盖设置的所有其他值。 在PHP中设置/覆盖环境variables: 如果(…){ 运行putenv( '环境=本地'); } […]
使用像srvany或nssm这样的服务pipe理器将普通程序作为服务运行时,可以使用registry来设置程序的环境: http : //support.microsoft.com/kb/197178 。 当你这样做的时候,你需要设置所有的环境variables,而不仅仅是你想改变的环境variables。 微软的文章说:“确保包含所有核心条目,如PATH,TEMP,OS等。” 什么是包含在“等等”,是否有一个明确的参考资料?
虽然有关于Apache环境variables的文档,但我无法find一个重要问题的答案。 想象一下,我使用重写规则来设置环境variables RewriteRule … … [E=something:1] 什么是“东西”的范围 – 全球的Apache服务器(这意味着“东西”将可用于其他请求交易),这个请求(意味着“东西”只适用于这个HTTP请求(及其相关的处理 – 但什么关于内部redirect和其他内部的东西 – 他们认为是这个请求,或另一个?),并可能在另一个(并发)请求中设置不同?
我想在CentOS 7上用Systemd设置一个Tomcat服务。 我已经将Oracle Java 1.8u74安装到/usr/java/jdk1.8.0_74并在启动时设置了环境variables$ JAVA_HOME,如下所示: # echo "export JAVA_HOME=/usr/java/jdk1.8.0_74" > /etc/profile.d/setenv.sh 当我login到系统时,我可以运行echo $JAVA_HOME并查看正确的path。 我已经安装了Tomcat,并且tomcat.service文件具有以下内容: # Systemd unit file for Tomcat [Unit] Description=Apache Tomcat After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/java/jdk1.8.0_74 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=www [Install] WantedBy=multi-user.target 问题是,如果我省略了Environment=JAVA_HOME=/usr/java/jdk1.8.0_74 ,Tomcat并没有find$ JAVA_HOME,但我期望它find$ JAVA_HOME,因为它在/etc/profile.d/setenv.sh 。 是否由于启动顺序(即setenv.sh在Systemd启动后运行)未find? 我把setenv.sh放在错误的地方了吗? 处理这个问题的最好方法是什么?
我正在运行的Centos 7.2,默认情况下有Perl 5.16。 我的一个用户请求的软件至less需要Perl 5.18,首选5.22。 我在/opt/perl/5.24安装了5.24,使用: ./Configure -des -Dprefix=/opt/perl/5.24 -Dotherlibdirs=/opt/perl/5.24/lib/perl5 -Uuseperlio 我们使用环境模块,我只希望这一个软件能够使用这个Perl版本 – 否则会用行话来说 – “不支持”。 现在需要设置哪些环境variables来使用该软件? 很明显,我会将/opt/perl/5.24/bin追加到$PATH ,但是perl需要/需要什么其他variables – 用于安装模块等? (使用cpanimus) 我可以看到有一个$PERL5LIB和一个$PERL_PATH在各种职位 – 但是这些规范的Perl或只是有关的post有问题?