解惑

解己之惑,解人之惑

标签:apache

总算搞定URL问题了

在解决中文URL的问题中发现更严重的问题,就是permalinks根本就不好使了,除了http://www.jiehoo.com/?p=123的格式外其它的都不好使,google了一圈发现问题出在apache2的目录权限上,默认的应该是:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

这里要让WordPress的permalinks起作用,必须修改AllowOverride None变成AllowOverride FileInfo,这下看起来爽快多了。

Windows+Apache+PHP5+MYSQL5

打算玩玩Drupal,就搭了个环境,不是很难,但是还是遇到不少问题。
先安装Apache,直接下载Installer安装就行了,没有啥特殊的。
安装MYSQL5,也没有啥特殊的,不过有一点,在Windows下,貌似和Linux下不同,我记得原来linux下mysql的admin用户的用户名是sa,但是在windows下变成root了?还是我记性出错?版本更新?
最后讲PHP,因为问题都是它惹的。
第一,不要下载PHP5.3,因为貌似里面不带php5apache2.dll
第二,下载php5.2的zip包,建议不要下installer,因为网上的文章基本上都是基于zip的
第三,解压到例如c:\php目录下
第四,复制php.ini-dist或者php.ini-recommended为php.ini,修改下php.ini文件,把;extension=php_mysql.dll和;extension=php_mysqli.dll这两行前面的分号去掉
第五,修改httpd.conf,添加如下内容:
LoadModule php5_module "C:/PHP/php5apache2_2.dll"
PHPIniDir "C:/PHP"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html

注意上面的php5apache2_2.dll,如果你安装的apache是2.0系列的,就是php5apache2.dll
第六,把c:\php和c:\php\ext加入系统的PATH环境变量里面
第七,重启计算机

好了,这个PHP的环境才算搭建好了。
把drupal解压到apache的htdocs下,访问那个install.php就可以了(记得先在mysql下面建个数据库,不需要建任何表)。

打开SSL后Apache的日志的问题

帮别人做apache+Tomcat的集群,另外只能对外开放SSL端口,所以用OpenSSL做了SSL的配置,然后我想看看他们的Access.log,但是修改配置后无效,后来发现是httpd-ssl.conf中的配置会覆盖httpd.conf中的配置,查了下apache的手册,发现原来虚拟主机的配置会覆盖系统的配置,而SSL的配置就是利用虚拟主机配置的,问题解决。

PS:apache2.2新增了一个很好的特点,就是SetEnvIf,可以设计Access.log中只纪录某些类型的访问,对于我们而言,主要关注的就是动态的内容,静态的内容不仅多,而且我们一般都不太关注,所以这样配置下就可以只纪录.do的请求:

SetEnvIf Request_URI "\.do" is_action
CustomLog logs/access.log common  env=is_action

Apache2.2和tomcat集成更加简单了

Apache2.2新增加了几个module,和tomcat集成更加的简单了:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyRequests Off

ProxyPass / balancer://myCluster/
<Proxy balancer://myCluster/>
       BalancerMember ajp://localhost:10009 route=tomcat1
       BalancerMember ajp://localhost:20009 route=tomcat2
</Proxy>

WordPress的永久链接的问题

WordPress使用htaccess文件完成缺省的链接到自定义链接的转换,但如果是在linux下的apache下建站,而且一般都是有多个虚拟主机的,直接修改整个系统的AllowOverride配置不太好,我们可以只修改你的虚拟主机的AllowOverride配置,如下:
<Directory /www/jiehoo>
   AllowOverride All
</Directory>

<VirtualHost *:80>
    ServerAdmin cherami.lm@gmail.com
    DocumentRoot /www/jiehoo
    DirectoryIndex index.php
    ServerName www.jiehoo.com
    ServerAlias jiehoo.com
    ErrorLog logs/jiehoo-error_log
    CustomLog logs/jiehoo-access_log common
</VirtualHost>

httpd优化

前段时间服务器经常崩溃,查看日志发现httpd的错误日志建议加大maxclients的值,上网查找了一些资料,发现这个是一个非常关键的参数,对于我们1G内存而言将那个值设置为50或者100有点太小了,在更详细的查找资料后,我把那个值设置为1500。maxclients是并发的访问数,严格而言我们的网站的并发能够达到100已经不容易了,但是在比较特殊的情况下可能会很容易超过并导致服务器长时间无法响应甚至死掉。另外几个应该调整的参数是Timeout,建议值是60,因为在一分钟内服务器还不能响应很可能是有问题了;MaxRequestsPerChild,这个值设置在2000左右比较合适,而且可以防止内存泄漏。

© 2019 解惑

本主题由Anders Noren提供向上 ↑