尝试寻找这个,但我的谷歌福今天缺乏.
所以我有两个版本的网站,在
/var/www/vhosts/testa.mydomain.com/httpdocs and
/var/www/vhosts/testb.mydomain.com/httpdocs
Run Code Online (Sandbox Code Playgroud)
每个文档都是一个完整的站点大修,我想进行A/B(多变量)测试,看看哪个站点表现更好.
谷歌搜索上周我看到了基于这个时间(甚至是奇数秒)的建议,但由于该网站是一个篮子网站(或者甚至可能是一个篮子的情况!),我不想在两个不同的处理场景之间徘徊-交易.
所以我认为如果客户端IP地址的最后一个八位位数是偶数,那么从testa服务是好的,而如果最后一个八位位数是奇数,则从testb服务.然后,我们至少可以获得一些指标,说明有多少人放弃了这个篮子,因为在不同版本的网站上太过笨重.
我很确定基于%{REMOTE_ADDR}的一堆RewriteCond行会做到这一点,但我在mod_rewrite上很无聊.
用户将访问test.mydomain.com,并且应该从一个或另一个DocumentRoot均匀地提供服务,而不是在他们的URL中看到testa或testb,但我们可以记录每个变体的性能.
任何善良的大师都能提供建议吗?
TIA大卫
更新:我可以通过虚拟主机将testa.mydomain和testb.mydomain设置为子域,如果有帮助的话.
我尝试了以下代码来检查根目录中文件的存在。
if($res['profile_picture']!="" && file_exists("images/".$res['users_id']."/thumnails/".$res['profile_picture'])){
$photo_p="images/".$res['users_id']."/thumnails/".$res['profile_picture'];
}
Run Code Online (Sandbox Code Playgroud)
它仅适用于根目录,不适用于子目录。
我不确定函数file_exist是否同时检查绝对路径和相对路径,所以我尝试添加ROOT和$_SERVER['DOCUMENT_ROOT']。但是仍然没有解决。
有帮助吗?
这已经困扰了我很长时间,所以我需要问这个问题.
有什么区别/和./,它只是到服务器设置?
例如,如果我们在根目录中查找images文件夹,我们会写:
<img src="/images">
但是,另一台服务器只接受如下:
<img src="./images">
这不是一个大问题,但在一个理想的世界里,我想我可以相对轻松地将我的网站转移到另一台服务器,而无需更新这些细节.
当然,我可以在PHP中声明它并在配置文件中设置一次,但它确实让我烦恼.为什么有两种声明根的方法?
我收到此错误“没有 /Root 对象!- 这真的是 PDF 吗?” 使用我的 MAC 计算机和 Python 2.7 和PDFMiner版本 20110515。pdf 文件没有损坏,因为具有相同文件的相同程序可以在我的 PC 计算机上运行!我也尝试了很多 pdf,并且所有这些都存在此错误。关于我应该在我的 MAC 中更改什么以避免出现此错误的任何想法?
我的电脑是Windows 8.1和Linux模拟16双启动电脑.我在Linux Mint上创建了本地网络服务器.它的文件根目录是"/var/www".But我的所有项目都位于NTFS分区,我挂载到linux并使用(/media/randika/HardDisk/Works/Lab).我需要创建一个指向项目文件夹的符号链接或更改Apache服务器的文档根目录.我该怎么做?
我的000-default.conf文件位于sites-available文件夹中
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host …Run Code Online (Sandbox Code Playgroud) 基本上,我正在编写一个框架,作为其功能的一部分,它应该为最终开发人员提供一组完善的URI /路径.
这些路径中的两个使用$_SERVER['DOCUMENT_ROOT']:
/**
* Absolute filesystem path to web root install (aka docroot).
* @example "C:/wamp/www" OR "/home/visitgoz/public_html/"
*/
CFG::set('ABS_WWW',
str_replace(
$tmpseps,
DIRECTORY_SEPARATOR,
truepath($_SERVER['DOCUMENT_ROOT']).'/'
)
);
/**
* K2F path relative to web root.
* @example /K2F/
*/
CFG::set('REL_K2F',
str_replace(
array('//','\\'),
'/',
str_replace(CFG::get('ABS_WWW'),'/',CFG::get('ABS_K2F'))
)
);
Run Code Online (Sandbox Code Playgroud)
该代码已经过微调,可以在Linux和Windows上运行.显然,它大部分时间都在Linux上运行,实际上在VPS上非常无缝.
但是,最近,我在HG转销商帐户(共享托管)上试了一下,这一切都破了.我在有问题的机器上打印出$ _SERVER中的数据:
Array
(
** [DOCUMENT_ROOT] => /usr/local/apache/htdocs
[GATEWAY_INTERFACE] => CGI/1.1
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_LANGUAGE] => en-gb,en;q=0.5
[HTTP_CONNECTION] => keep-alive
[HTTP_COOKIE] …Run Code Online (Sandbox Code Playgroud) 一切都在我的Windows 7中完美运行.
问题是当我将domain1.com添加为VirtualHost时,localhost的DocumentRoot更改为VirtualHost的DocumentRoot.
例如:当我访问http:// localhost时,我打开了为domain1.com指定的DocumentRoot,而不是httpd.conf中指定的那个.
我的httpd-vhosts.conf文件是:
NameVirtualHost 127.0.0.1:80
NameVirtualHost domain1.com:80
<VirtualHost domain1.com:80>
<Directory "e:/program files/apache/htdocs/domain1.com">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName domain1.com
ServerAlias domain1.com
ScriptAlias /cgi-bin/ "e:/program files/apache/htdocs/domain1.com/cgi-bin/"
DocumentRoot "e:/program files/apache/htdocs/domain1.com"
ErrorLog "E:/Program Files/apache/logs/domain1.com.err"
CustomLog "E:/Program Files/apache/logs/domain1.com.log" combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我的主机文件:
127.0.0.1 domain1.com
Run Code Online (Sandbox Code Playgroud)
我的httpd.conf文件:
DocumentRoot "e:/program files/apache/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "e:/program files/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from …Run Code Online (Sandbox Code Playgroud) 有没有办法获得安装WordPress的路径?
我使用以下内容:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
Run Code Online (Sandbox Code Playgroud)
它适用于www.example.com - >/usr/local/pem/vhosts/165312/webspace/httpdocs
这对www.example.com/blog来说并不合适,因为我需要对文件夹名称进行硬编码(博客).
后来我用这个找到了一种方法:
$iroot = getcwd();
$folder = explode("/", $iroot);
$dir = $folder[8]; // I know is 8
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require "$root/$dir/wp-blog-header.php";
Run Code Online (Sandbox Code Playgroud)
但它仍然是很复杂的东西.是否有一种简单的方法可以在没有硬编码的情况下安装WordPress(路径)?
注意:1个 WordPress函数将无法工作,因为这是以某种方式在WordPress之外.如上一个例子所述,确定WordPress安装路径的重点是require "wp-blog-header.php";多个WordPress安装,其中每个安装使用不同的文件夹(example.com/blog-one和example.com/blog-two),而不是WordPress MU或多站点.
注意:2如果不是require "$root/$dir/wp-blog-header.php";我使用require "wp-blog-header.php";它,只要文件在同一文件夹中就可以工作,但在我的情况下,文件有时会在不同的文件夹中.
我有一个javascript,需要PHP提供的根目录路径来调用JSON文件.
我不确定这段代码是在public/js还是在我的template.blade.php中?
如果它在public/js中,那么我必须指定一个如下所示的绝对路径,因此每次我想要更改我的目录名或域时,我都必须更改路径.
url:"/ myBookStore/public/api/book-type /"
<script>
$().ready(function(){
$("#book_type").keyup(function(){
$.ajax({
type: "GET",
url: "/myBookStore/public/api/book-types/" + $("input[name=book_type]").val(),
dataType: "json",
success: function(json){
//do stuff
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果我把它放在template.blade.php中,我可以URL::to('/')用来指定基本URL.但是它必须是公共文件夹的外部,我不确定这是不是很好的做法?
template.blade.php
<script>
$().ready(function(){
$("#book_type").keyup(function(){
$.ajax({
type: "GET",
url: {{ URL::to('/') }} + "/api/book-types/" + $("input[name=book_type]").val(),
dataType: "json",
success: function(json){
//do stuff
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我寻求帮助,找出为什么MAMP无法改变Apache'文档根',并解决这个问题.对原始文件的第二次编辑包括可能有助于识别解决方案的大量附加信息.
Apache最近停止响应Apache httpd.conf的'main'服务器配置部分中'DocumentRoot'指令的更改.Apache继续运行良好,但它仍然停留在'DocumentRoot'之前的一个设置上.我很乐意帮助你找到这个问题的来源并修复它.
我使用Lion在2011年初的MacBookPro上运行Apache 2.0.64.为方便起见,我在MAMP 2.0.5中工作,其中包括Apache 2.0.64.我一直在开发多个网站,位于不同路径下的不同目录中.要切换这些路径和目录之间本地主机,我经常使用的甲基苯丙胺(不MAMP Pro)的行动的GUI程序
"首选项...">"阿帕奇">"文档根">"选择..."
两个路径之间切换.
一个多星期前,这个GUI开关背后的一些设置或过程卡在其中一个路径上("路径p",为简单起见).GUI本身没有卡住; 它显示"文档根",好像它在路径p和路径q之间来回切换.但是,只有路径p下的站点才能在localhost/path上运行.如果我将"文档根目录"的MAMP设置切换到路径q,然后尝试运行localhost站点q,q将无法运行,即使它在问题首次出现之前运行正常; 但是任何可通过路径p访问的站点仍将运行.
查看MAMP GUI后面的'phpinfo'报告'DOCUMENT_ROOT'在phpinfo的'Apache Environment'部分中更改为'path q',并在'PHP Variables'部分中更改为'_SERVER("DOCUMENT_ROOT")'.当我更改MAMP的'Document_Root'设置时,我可以使用TextWrangler实时观察设置是否在'httpd.conf'中更新.
Mac'活动监视器'显示七个'httpd'进程正在运行.使用'Inspect'显示所有这些都在MAMP中运行.Mac'Spotlight'搜索httpd.conf只显示上面讨论的'httpd.conf'文件.
通过MAMP/logs/apache_error.log访问的相关错误消息始终是(时间戳除外):
- 恢复正常操作[太阳04月22日12时34分22秒2012] [声明]抓住SIGTERM,关停[太阳04月22日12时34分24秒2012] [声明]摘要:生成秘密摘要认证... [太阳2012年4月22日12:34:24] [通知]摘要:完成[Sun Apr 22 12:34:24 2012] [notice] Apache/2.2.21(Unix)mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2配置PHP/5.3.6 - 恢复正常操作
如果我理解正确此,阿帕奇的运行版本2.2.21是,而比Apache 2.0.64,其中甲基苯丙胺的FAQ页面(显示为一个选项卡访问从GUI的"打开起始页面"按钮打开的网页画面)说的是安装版.
控制台常规错误日志中的相应错误消息是:
4/21/12 9:40:27.746 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:27来自pid文件的mysqld_safe mysqld /Applications/MAMP/tmp/mysql/mysql.pid已于4月21日结束/ 12 9:40:28.653 PM [0x0-0xcd0cd] .de.appsolute.MAMP:警告:DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com]不存在4/21/12 9 :40:28.721 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:28 mysqld_safe记录到'/Applications/MAMP/logs/mysql_error_log.err'.4/21/12 9:40:28.871 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:28 mysqld_safe使用/ Applications/MAMP/db/mysql中的数据库启动mysqld守护程序4/21/12 9 :40:29.799 PM [0x0-0xcd0cd] .de.appsolute.MAMP:警告:DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com]不存在
除日期和时间外,对于通过MAMP到"DocumentRoot"的任何更改,这些消息保持不变.我无法识别这些消息中的任何有用信息.
在此问题发生前不久,我重新安装了MAMP以解决MySQL服务器的问题.在尝试调试MAMP中的MySQL服务器时,我和一位技术更熟练的计算机科学家也安装了MacPorts.
看来有可能是甲基苯丙胺实际上是打开一个Apache版本,2.2.21的,可能已经安装了MacPorts的,而不是版本2.0.64,这大概与MAMP 2.0.5来了; 但是MAMP的那部分仍然就像Apache 2.0.64是操作版本一样.如果这是真的,它可能会迅速找到一个解决方案,虽然我不太了解MAMP或Apache如何在这方面做到这一点.
我广泛搜索了在线建议,测试了为多个用户格式化WordPress的建议,并玩弄了更改'etc/hosts',现在恢复到默认值.大多数相关网站都是用XHTML,PHP和CSS进行硬编码的; …
document-root ×10
apache ×4
php ×3
file-exists ×1
hosts-file ×1
html ×1
jquery ×1
k2f ×1
laravel ×1
linux ×1
localhost ×1
macos ×1
mamp ×1
mod-rewrite ×1
pdf ×1
pdf-parsing ×1
phpinfo ×1
python ×1
realpath ×1
root ×1
virtualhost ×1
wordpress ×1