我看了一遍,真的找不到任何东西.我需要三件基本的东西:
我有模块源代码并且正在经历它 - 但我真的没有太多任何关于它所做的事情的上下文.
有什么建议?
我会重启Apache2但是出现了错误
$ sudo service apache2 start
Starting web server apache2
Action 'start' failed.
The Apache error log may have more information.
Run Code Online (Sandbox Code Playgroud)
但是"/ var/log/apache2 /"中的所有错误日志都是空的.
编辑:文件位于"/ var/log/apache2",并且以前的问题有几个条目,但此任务不会创建任何新的...
问题出在哪儿?
这是SSL证书中的错误,并且在vHost配置中更改了"error.log"的路径.
如果您不需要SSL(我不是因为我正在运行本地系统),只需通过命令行禁用配置中的所有vHost HTTPS/SSL进行线路输出.
我有以下.htaccess行,简单没有根目录索引.
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
我们添加什么,以便传播到任何子目录,而不必为每个子目录创建一个文件?一个.htaccess只在root上.
我在Apache上运行PHP,并对如何实现服务器端缓存感到困惑,以便加快网站加载速度.
是什么之间的区别Expires,Last-Modified以及ETag头,哪一个应该在什么情况下使用?
我在主目录中创建了Django项目,因此它位于主目录中.
建立
Django Verison : 1.5.1
Python Version : 2.7.5
mod_wsgi Version: 3.4
Home Directory : /home/aettool
Run Code Online (Sandbox Code Playgroud)
的内容 /home/aettool/aet/apache/django.wsgi
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'aet.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)
的意见 httpd.conf
WSGIScriptAlias / /home/aettool/aet/apache/django.wsgi
<Directory /home/aettool/aet/apache>
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
错误 error_log
[Sun Jul 21 02:01:30.923364 2013] [authz_core:error] [pid 21540:tid 1193011520] [client 10.20.17.184:51340] AH01630: client denied by server configuration: /home/aettool/aet/apache/django.wsgi
Run Code Online (Sandbox Code Playgroud)
的内容 urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('', …Run Code Online (Sandbox Code Playgroud) 我已经安装了干净的Mac OSX Yosemite,但我无法配置Apache 2.4,就像我一直在较旧的OSX版本上做的那样.
这是我想要做的:将"localhost"目录设置为"/ Users/username/Public /".但是,我尝试的一切都行不通,我总是得到一个"Forbiden,无法访问/"或者我得到默认的"它有效!" 页...
如何简单地重新连接我的本地主机?
谢谢
编辑(感谢Krister Andersson的答案)
适用于Mac OSX 10.10 Yosemite
我还发布了我必须做的改变以保持运行.
在"/ etc/apache2/users /"中,我创建了一个由我的用户名命名的文件,如"myUsername.conf".
您可以在终端输入"id"来获取用户名.您应该在"uid = 501(myUsername)"中找到您的用户名.
在这个新的"myUsername.conf"文件中,只需复制过去:
<Directory "/Users/myUsername/Sites/">
AllowOverride All
Options Indexes MultiViews
Options +FollowSymLinks
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
不要原谅改变myUsername价值.
然后,在"/etc/apache2/httpd.conf"文件中,取消注释所有这两行:
167 #LoadModule userdir_module libexec/apache2/mod_userdir.so
169 #LoadModule php5_module libexec/apache2/libphp5.so
Run Code Online (Sandbox Code Playgroud)
第236行,将"DocumentRoot"的目录更改为您想要的任何内容.第250行,将"选项"设置为"选项"选项索引FollowSymLinks Multiviews".第258行,将"AllowOverride None"设置为"AllowOverride All".第263行,将"Require all denied"设置为"Require all granted"
在终端中,键入"sudo apachectl restart"重新启动apache.
它适用于Mac OS X 10.10优胜美地清洁安装.
我正在使用apache2进行项目,我想知道之间的区别是什么:
service apache2 restart
service apache2 reload
service apache2 graceful
Run Code Online (Sandbox Code Playgroud)
?
谢谢你的回答.
上周我在我的服务器上发现了一个问题,因为磁盘使用率是100%,我发现apache创建了一个60GB的巨大error.log文件.然后我将LogLevel更改为emerg,但是在一周之后它又是1.3GB,这肯定是太多了.此外,我有一个6MB的access.log和167MB的other_vhosts_access.log.所以我发现问题可能是logrotate无法正常工作.实际上,日志的gzip文件有一个非常旧的日期(2月23日).所以我首先尝试更改apache2的logrotate文件的配置,为文件添加最大大小,现在看起来像这样:
/var/log/apache2/*.log {
weekly
size 500M
missingok
rotate 20
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if /etc/init.d/apache2 status > /dev/null ; then \
/etc/init.d/apache2 reload > /dev/null; \
fi;
endscript
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
}
Run Code Online (Sandbox Code Playgroud)
在此之后,我尝试手动强制logrotate运行apache的特定配置
logrotate -f /etc/logrotate.d/apache2
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
error: skipping "/var/log/apache2/access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to …Run Code Online (Sandbox Code Playgroud) 刚发现这个.htaccess重写代码
RewriteEngine on
RewriteCond %{HTTP_HOST} ^my.domain.com$ [NC,OR]
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我想知道"OR"标志的目的是什么.已经检查了文档http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags但是可以找到任何信息.
有任何想法吗?
我隐约意识到,在加入域的计算机上,可以要求IE发送一些额外的标题,我可以用它来自动登录到应用程序.我用mod_php在windows服务器上运行apache.我希望能够避免用户必要时登录.我发现了一些关于Kerberos和Apache模块的链接.
http://www.onlamp.com/pub/a/onlamp/2003/09/11/kerberos.html?page=last https://metacpan.org/pod/Apache2::AuthenNTLM
由于我在Windows上运行,因此证明安装Perl或Apache模块并非易事.但PHP不能访问HTTP标头吗?
我发现了这个但它没有进行任何身份验证,只是表明PHP可以读取NTLM头文件. http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/
我希望能够让我的用户只指向该应用程序并让它们自动进行身份验证.有没有人有这方面的经验或者让它一起工作?
更新 自从最初发布此问题以来,我们已将设置更改为仍在Windows上运行的nginx和php-fcgi.Windows上的Apache2和php-cgi可能是您在Windows上配置的最慢设置之一.它看起来可能仍然需要Apache(它适用于php-fcgi)但我更喜欢nginx解决方案.
我还是不明白(并希望接受教育)为什么HTTP服务器插件是必要的,我们不能拥有PHP,Web服务器无关的解决方案.