ubuntu中开启apache的rewrite模块

正确配置了site和.htaccess的情况下, 一旦启用Rewrite Engine, 系统就报500错误.
一开始百思不得其解, 到处改配置, 最后才发现, 原来是rewrite 的mod没开啊`~
一句话解决:
$sudo a2enmod rewrite
然后重启apache2
解决了.

Posted by yoily

2008/08/23 02:30 2008/08/23 02:30
, ,
Response
No Trackback , No Comment
RSS :
http://thisisblog.com/rss/response/22

Leave a comment
[登录][OpenID是?]
本文系原创.
在Ubuntu中搭建一般的LAMP环境实在是太简单的一件事, 只需要
$sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5
就好了(差不多, 如果没记错的话).

然而, 这样搭建出来的LAMP环境, PHP是通过Apache2的mod执行的, 这也就是软件包libapache2-mod-php5的作用. 通过mod执行的PHP有速度快, 方便等诸多优势. 不过现在我就是想要它通过Fastcgi执行. 别问为什麽.
找了好多资料, 奇怪怎麽就没人能说清楚, 真是..... 只好自己总结了
----------------------cut here----------
首先, 删除libapache2-mod-php5, 因为没用了.
$sudo a2dismod php5
$sudo apt-get remove libapache2-mod-php5
安装cgi版的php(自己会支持fcgi的)和apache2的action模块
$sudo apt-get install php5-cgi
$sudo a2enmod actions
新建目录, 把安装的php5-cgi扔过去
$sudo mkdir /usr/local/php5-fcgi
$sudo mkdir /usr/local/php5-fcgi/bin
$sudo cp /usr/bin/php5-cgi /usr/local/php5-fcgi/bin/
下面关键了, 总是出错的就是这了
在你的虚拟主机配置(sites-enabled那里)文件,
<VirtualHost > 之内, 其他标签之外添加这些内容:
ScriptAlias /fcgi-bin/ "/usr/local/php5-fcgi/bin/"
Action php-fastcgi /fcgi-bin/php5-cgi
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
<Location /fcgi-bin>
Options FollowSymLinks ExecCGI
</Location>
然后重启apache2, 完事.
若有问题, 欢迎反馈~

Posted by yoily

2008/08/18 07:38 2008/08/18 07:38
, ,
Response
No Trackback , 2 Comments
RSS :
http://thisisblog.com/rss/response/21

Comments List

  1. 有问题 2008/08/22 14:06 # M/D Reply Permalink

    有问题 ...看不懂~~~

    1. admin@thisisblog.com 2008/08/23 13:36 # M/D Permalink

      这才正常

Leave a comment
[登录][OpenID是?]

只需6步, 在apache2中使用ssl

当处在比较复杂的网络环境时, 传输敏感数据的时候就要考虑是否有被截获的可能了.
为Apache2 添加https支持可以简单的解决这个问题.
本文系原创, 然而有些代码取自网络(现在每网络不知道还能干啥了), 向那些代码的提供者表示感谢:)

实践环境: ubuntu8.04
1. 首先确认以下包有被安装:
$sudo apt-get install apache2 openssl
(apache2的mod_ssl似乎是默认安装的)
2.打开SSL端口的支持
ssl的默认端口是443, 很好记, 就是444-1 ;)
打开apache2的端口配置文件:
$sudo gedit /etc/apache2/ports.conf
看一下是否有443端口的定义. 如果是这样:
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

那就不用改了. 这段设置的含义是, 监听80端口, 并且在有mod_ssl的时候监听443端口.
3.开启apache2的ssl支持
其实就是从可用的mod目录中拷贝一个mod到正在使用的mod目录, 使用以下命令:
$sudo a2enmod ssl

4.生成证书.
使用openssl请求证书. 运行了之后填写向导中的每个问题, 其实都可以随便填啦:p, 然后会生成一个apache.pem文件, 这就是传说中的证书吧?
$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 9999

更改权限
$sudo chmod 700 apache.pem; sudo chown www-data apache.pem
好像可以不用~ 不过我的习惯啦~~
5.建立www-root用来放网页
建在哪里个人爱好了. 比如
$mkdir ~/www-secure

6.配置虚拟目录了
可以拷贝一份现在http服务的站点配置文件, 不过经常会装满东西. 还不如新建一个....
$sudo gedit /etc/apache2/sites-enabled/001-securesite

内容如下(建议简单了解一下这些都是干什麽的, 很通俗的英文):
NameVirtualHost *:443 #说明虚拟主机使用的端口. 这里不用虚拟主机所以前面是星号
<VirtualHost *:443> #同上
    ServerSignature Off #猜这是干什麽的, 不告诉你~ on/off都可以
    SSLEngine On #开ssl
    SSLCertificateFile /home/你的用户名/apache.pem

    ServerAdmin webmaster@localhost
    
    DocumentRoot /home/你的用户名/www-secure/ #最后的/好像一定要的
    <Directory /home/你的用户名/www-secure/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
        Allow from all #允许所有ip访问
    </Directory>
</VirtualHost>

然后修改原来的站点配置文件, 指明使用的端口:
$sudo gedit /etc/apache2/sites-enabled/000-default

前两行改成这样(就是添加80端口啦):
NameVirtualHost *:80
<VirtualHost *:80>
然后...然后...重载apache的配置, 或者重启apache吧
$sudo /etc/init.d/apache2 restart
用浏览器打开
https://127.0.0.1
如图, 如果配置成功, 肯定会收到证书错误提示, 选择能继续下去的那个选项.
现在, 基本上你已经在用ssl加密连接访问web服务器了.
安全警告

PS:注意目录权限问题, 否则很可能看到Forbidden的..... 具体就是www-root能不能被www-data用户访问到.

Posted by yoily

2008/07/23 13:47 2008/07/23 13:47
, , , , ,
Response
No Trackback , No Comment
RSS :
http://thisisblog.com/rss/response/2

Leave a comment
[登录][OpenID是?]