是否有可能有一个单独的php.ini文件覆盖每个虚拟主机的默认php.ini文件? 我正在运行Apache / 2.2.14,PHP 5.3.2-1。 例如,我有几个虚拟主机指向我的/var/www/目录中的域: /var/www/website1.com /var/www/website2.com 我想要的是能够在每个目录中放置一个自定义的php.ini文件,只会覆盖该虚拟主机的默认值,但如果未指定该值,请保留原始默认值: /var/www/website1.com/htdocs/ /var/www/website1.com/php.ini 编辑 对于那些感兴趣的,我发现更多的信息关于如何设置每个站点php.ini文件在LAMP服务器上使用NameVirtualHosts的主题? 。
为什么PHP / Apache组合会执行如此多的gettimeofday系统调用? 尽pipe每个电话都很快就是一个应该考虑的电话。 只需一个快速strace -c -p [apache2 process id] ,就可以得到以下结果: Process 22294 detached % time seconds usecs/call calls errors syscall —— ———– ———– ——— ——— —————- 98.52 0.010000 51 196 poll 1.48 0.000150 0 20752 gettimeofday 0.00 0.000000 0 94 7 read 0.00 0.000000 0 48 write 0.00 0.000000 0 96 32 open 0.00 […]
我试图build立一个Apache的Ubuntu的PHP的Web服务器。 我的networking服务器将托pipe多个SSL站点,每个SSL站点将拥有自己的IP地址(除非有更好的方法来做到这一点)。 所以我想第一步是让Apache能够识别至less两个不同的IP地址。 现在,我有一个网站的SSL和非SSL版本,这是http://mysite.com和https://mysite.com 。 虽然两者都在我的服务器上运行,但我不能同时使用不同的IP地址。 目前,两者都使用IP 1.1.1.1。 我购买了第二个IP地址2.2.2.2,但是https://mysite.com不会接受它,而且firefox抱怨错误“ssl_error_rx_record_too_long”。 这里看看我的2个虚拟主机文件 / 000-缺省的/ etc / apache2的/启用站点 #NameVirtualHost 1.1.1.1:80 #<VirtualHost 1.1.1.1:80> <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI […]
我使用prefork在Apache 2.2服务器(Ubuntu Server 10.04,8x2GHz,12Gb RAM)上运行PHP Web应用程序。 Apache每天获得大约100k-200k的请求,其中大约100-200个点击超时限制(大约每1000个点击一次),几乎所有其他的请求都在超时时间之外服务。 我能做些什么来找出为什么发生这种情况? 或者所有请求中的一小部分超时是否正常? 这是我迄今为止所做的: 可以看出,在超时限制和更合理的请求之间的请求很less。 目前超时限制被设置为50秒,之前被设置为300,并且在一些超时之后仍然是相同的情况,然后与其他请求相距甚远。 所有超时的请求都是AJAX请求,但其中绝大多数都是,所以也许更是巧合。 Apache的返回码是200 ,但超时限制显然已经达到了。 他们来自各种不同的知识产权。 我已经看过了那些超时的要求,如果我做了相同的要求,他们的要求也不会超过一秒钟。 我试图看看不同的资源,看看我能find原因,但没有运气。 总是有足够的可用内存(最less约3GB空闲),负载有时高达1.4,CPU利用率达到40%,但是当负载和CPU利用率很低时,很多超时会发生。 磁盘写入/读取在一天中几乎是不变的。 MySQL慢速查询日志中没有条目(设置为logging大于1秒的任何内容),没有请求使用这么多的数据库写入/读取。 蓝色是CPU使用率,最高峰值为40%,栗色负载峰值为1.4。 所以我们可以看到,即使在CPU利用率/负载较低的情况下,我们也会得到超时(十秒钟的峰值与CPU利用率相当,但这是另一个问题,我有更高的期望找出可能造成这种情况的原因)。 Apache错误日志中没有错误,我没有看到它达到200多个活动的Apache进程。 服务器设置: Timeout 50 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 2 <IfModule mpm_prefork_module> ServerLimit 350 StartServers 20 MinSpareServers 75 MaxSpareServers 150 MaxClients 320 MaxRequestsPerChild 5000 </IfModule> 更新: 我更新到Ubuntu 12.04.1,以防万一,没有改变。 我添加了mod_reqtimeout的设置: RequestReadTimeout header=20-40,minrate=500 RequestReadTimeout […]
我有一个虚拟主机设置为redirectntung-gitblit.localhost – > myserver:1279 。 但是,它不能使用正向编码的斜线( %2f )。 我试图访问的URL是, http://ntung-gitblit.localhost/ABC%2fXYZ 如果没有AllowEncodedSlashes ,它会失败/error/HTTP_NOT_FOUND.html.var尝试访问服务器上的/error/HTTP_NOT_FOUND.html.var 。 将AllowEncodedSlashes设置为On导致以下内部URL匹配, http://myserver:1279/ABC/XYZ 并将AllowEncodedSlashes设置为NoDecode结果在下面的URL被击中, http://myserver:1279/ABC%252fXYZ 换句话说,它是过度逃避或逃避。 问题 :如何使它命中myserver:1279/ABC%2fXYZ ?
我的apache DocumentRoot / var / www是另一个path的符号链接。 目标具有适当的文件上下文标签(httpd_sys_content_t),以便Apache可以在启用SELinux的情况下读取它。 但是,符号链接本身被标记为var_t。 [root@localhost var]# ls -lZ lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www 我需要用httpd_sys_content_t重新标记符号链接。 最初用-h选项运行chcon似乎工作: [root@localhost var]# chcon -h -t httpd_sys_content_t /var/www [root@localhost var]# ls -lZ lrwxrwxrwx. root root unconfined_u:object_r:httpd_sys_content_t:s0 www -> /srv/www 然而,这不能在重新贴上标签: [root@localhost var]# restorecon -Rv . restorecon reset /var/www context system_u:object_r:httpd_sys_content_t:s0->syst em_u:object_r:var_t:s0 使用semanage不会重新链接链接本身; 只是目标: [root@localhost var]# […]
我只是设置PHP和Apache,并希望find错误发生的地方。 PHP的错误日志的默认path是什么?
这与这个堆栈溢出post有关: glob()在Windows上无法find具有多字节字符的文件名? 我遇到了PHP和Windows上有多字节字符的文件的问题。 这是我的testing用例: print_r(scandir('./uploads/')); print_r(glob('./uploads/*')); 在远程UNIX服务器上正确输出: Array ( [0] => . [1] => .. [2] => filename-äöü.jpg [3] => filename.jpg [4] => test이test.jpg [5] => имя файла.jpg [6] => פילענאַמע.jpg [7] => 文件名.jpg ) Array ( [0] => ./uploads/filename-äöü.jpg [1] => ./uploads/filename.jpg [2] => ./uploads/test이test.jpg [3] => ./uploads/имя файла.jpg [4] => ./uploads/פילענאַמע.jpg [5] => […]
我刚刚买了一个SSL证书,这里是我得到的所有证书文件: Root CA Certificate – xxCARoot.crt Intermediate CA Certificate – x1.crt Intermediate CA Certificate – x2.crt Intermediate CA Certificate – x3.crt Your EssentialSSL Wildcard Certificate – mydomain.crt 现在在apache上安装我的证书: 我需要公开根CA证书吗? 由于Apache只允许1 SSLCertificateChainFile指令,我应该创build中间CA的捆绑文件? 如果是这样。 将包文件中的证书顺序颠倒如下: 猫x3.crt x2.crt x1.crt> myca.bunndle 如果必须添加根证书,它是否进入最后(在z1之后)或者第一个(在x3之前)包中(假设顺序是正确的)?
我公司的网站已被污损,只要我有apache原始访问日志,有什么我可以做什么来分析什么时候出了什么问题? 我的意思是在成千上万的日志中注意什么? 谢谢您的帮助