背景:
经过漫长的源代码下载及编译,终于把apache2.4成功地安装在了Freebsd之上。
# 编辑 httpd.conf
vim /usr/local/etc/apache24/httpd.conf
# 启动 apache
service apache24 start;
# 访问自建网站
http://192.168.137.103
# 显示 “It works”,成功了,基本配置没有问题。
# 不过隐借用 www.freebsd.org 下载的 html 版的 handbook 包试试。
cd /usr/local/www/apache24/data;
tar -xvf book-html.tar -c ./;
# 访问主页
http://192.168.137.103
一个熟悉的页面出现,只是点几个页面发现图片是 X ,不科学!难道apache支持图片还要加配置选项?
# 搜索一番加入以下配置
AddType image/png .png
service apache24 reload; -- 依然如此。
# 查看网友源代码发现:
/local0/docbuild/build/doc/en_US.ISO8859-1/books/handbook/../../../share/images/books/handbook/bsdinstall/bsdinstall-newboot-loader-menu.png" alt="FreeBSD Boot Loader Menu" />
这路径显然不能正常显示路径。接下来的工作就是把所有 html 文件中的相关内容改成跟我本地路径吻合的内容。
批量修改:
这种工作使用 vim 问题不大:
:%s/\/local0\/docbuild\/build\/doc\/en_US.ISO8859-1\/books\/handbook\/\.\.\/\.\.\/\.\.\/share\/images\/books\/handbook/\./g
使用以上这行古怪的东西就可以达到目的了。可问题是如果文件不只一个,那一个个改太没有黑客精神了。
这回我们不用 sed(vi 其实也是可以的), 这回改用 perl:
cd /usr/local/www/apache24/data;
find ./ -name "*.htlm" -type f -print | xargs perl -pi -e \
's|/local0/docbuild/build/doc/en_US.ISO8859-1/books/handbook/../../../share/images/books/handbook|.|g';
这里与上面的 VI 略用不同使用的是 '|' 而不是 '/', 其实是一样的,只是此时使用 '|' 避免了与路径中的 '/' 冲突,从而避免了使用 \/ 来转义。
service apache24 reload
为何是 reload?restart 也可以只是 restart 是杀死进程再启动进程,reload 只是优雅地重新加载配置文件。
这是个理念问题,好比配置 IP , 可能有人告诉你,在 /etc/rc.config 中加入
ifconfig_em1= "inet 192.168.137.103 netmask 255.255.255.0", 然后重启 ip 就配置上了。
而我会这么做:
1. 改配置。
2. 不重启,而是执行 ifconfig em1 192.168.137.103 netmask 255.255.255.0 up。一样的效果何必重启,它是服务器不是pc !
3. 如果只是单纯想确定自己的配置有没有问题,执行 service netif start em1 即可。
4. 当然,如果你愿意等待这个漫长的开机时间,似乎也没有什么大不了。
经过漫长的源代码下载及编译,终于把apache2.4成功地安装在了Freebsd之上。
# 编辑 httpd.conf
vim /usr/local/etc/apache24/httpd.conf
# 启动 apache
service apache24 start;
# 访问自建网站
http://192.168.137.103
# 显示 “It works”,成功了,基本配置没有问题。
# 不过隐借用 www.freebsd.org 下载的 html 版的 handbook 包试试。
cd /usr/local/www/apache24/data;
tar -xvf book-html.tar -c ./;
# 访问主页
http://192.168.137.103
一个熟悉的页面出现,只是点几个页面发现图片是 X ,不科学!难道apache支持图片还要加配置选项?
# 搜索一番加入以下配置
AddType image/png .png
service apache24 reload; -- 依然如此。
# 查看网友源代码发现:
/local0/docbuild/build/doc/en_US.ISO8859-1/books/handbook/../../../share/images/books/handbook/bsdinstall/bsdinstall-newboot-loader-menu.png" alt="FreeBSD Boot Loader Menu" />
这路径显然不能正常显示路径。接下来的工作就是把所有 html 文件中的相关内容改成跟我本地路径吻合的内容。
批量修改:
这种工作使用 vim 问题不大:
:%s/\/local0\/docbuild\/build\/doc\/en_US.ISO8859-1\/books\/handbook\/\.\.\/\.\.\/\.\.\/share\/images\/books\/handbook/\./g
使用以上这行古怪的东西就可以达到目的了。可问题是如果文件不只一个,那一个个改太没有黑客精神了。
这回我们不用 sed(vi 其实也是可以的), 这回改用 perl:
cd /usr/local/www/apache24/data;
find ./ -name "*.htlm" -type f -print | xargs perl -pi -e \
's|/local0/docbuild/build/doc/en_US.ISO8859-1/books/handbook/../../../share/images/books/handbook|.|g';
这里与上面的 VI 略用不同使用的是 '|' 而不是 '/', 其实是一样的,只是此时使用 '|' 避免了与路径中的 '/' 冲突,从而避免了使用 \/ 来转义。
service apache24 reload
为何是 reload?restart 也可以只是 restart 是杀死进程再启动进程,reload 只是优雅地重新加载配置文件。
这是个理念问题,好比配置 IP , 可能有人告诉你,在 /etc/rc.config 中加入
ifconfig_em1= "inet 192.168.137.103 netmask 255.255.255.0", 然后重启 ip 就配置上了。
而我会这么做:
1. 改配置。
2. 不重启,而是执行 ifconfig em1 192.168.137.103 netmask 255.255.255.0 up。一样的效果何必重启,它是服务器不是pc !
3. 如果只是单纯想确定自己的配置有没有问题,执行 service netif start em1 即可。
4. 当然,如果你愿意等待这个漫长的开机时间,似乎也没有什么大不了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25521690/viewspace-2123827/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25521690/viewspace-2123827/