apache服务器配置伪静态
来源:互联网 发布:u盘病毒专杀工具 知乎 编辑:程序博客网 时间:2024/06/10 16:30
伪静态的实现:
(1)apache的rewrite机制
(2)PHP的正则表达式
练习一下apache + php + mysql 的搭建
面试的时候:
机试:
作为一个合格的php工程师
www.baidu.com
开始搭建环境:
安装的版本:
apache 2.2.22
mysql 5.5.24
php 5.3.13
(1)卸载之前的软件
一定要停止服务
(2)卸载
删除一下环境变量:
(3)安装
测试是否安装成功:
(2)安装php
因为php是作为apache的一个模块存在的
所以通过apache的配置文件将php加载过来
加载php模块
(2)告诉apache哪些文件需要使用php这门语言来解析
(3)安装mysql
编码
密码
安装过程中,出现的问题:
(1)
把之前的数据库导入到我们的新的环境下
将之前的mysql中的data目录中的数据库文件夹,(需要哪个数据库复制哪个,不要都复制)
(2)mysql已经存在
如何删除之前的服务
sc delete 服务名
(3)apache服务器)(web服务器)------apache服务器
mysql (应用服务器)---- mysql的服务器
卸载软件之后,有的系统会自动的将服务给卸载掉,但是有的系统不会自动卸载服务
如果提示mysql服务已经存在了
(1)win7系统,系统管理员的身份打开 cmd,sc delete 服务名称
(2)如果这时还不能将服务卸载,通过修改系统的注册表,在注册表中删除这个服务
运行------regedit ----HKEY_LOCAL_MACHINE -----SYSTEM-----CurrentControlSet-----Services
虚拟目录的配置:
实现访问 www.baidu.com 的时候显示我们的项目
(1)浏览器的配置
修改hosts文件,域名解析的原理:
思考:
为什么访问 www.yibei.com 能够显示的是 项目的目录里面的文件
(1)先去你当地的hosts,查看有没有当前域名指向的ip地址,如果有,直接访问
(2)如果没有直接去外网(DNS服务商),找,如果还没有提示错误,
Bluehost Godaddy
国内:
万网
注册域名:taobao
1,先修改hosts文件
ip地址:服务器ip地址 127.0.0.1 和网络的ip地址 192.168.2.1
127.0.0.1 localhost
127.0.0.1 www.php.com
127.0.0.1 www.sina.com
(2)服务器的配置
每一个网站可以作为一个模块,分而治之
修改apache的配置文件
httpd.conf
定位到
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
去掉注释
然后找到conf/extra/httpd-vhosts.conf 文件
每一个网站对应一个 模块
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.somenet.com
DocumentRoot "D:/myenv/apache/docs/dummy-host2.somenet.com"
ServerName dummy-host2.somenet.com
ErrorLog "logs/dummy-host2.somenet.com-error.log"
CustomLog "logs/dummy-host2.somenet.com-access.log" common
</VirtualHost>
自己配置一个:
一个模块至少有两项:
1,我的域名是谁
2,我的网站的根目录在哪里?
<VirtualHost *:80>
DocumentRoot "D:/myenv/myweb/sina"
ServerName www.sina.com
</VirtualHost>
访问之后显示Forbbiden,权限
修改权限:
<Directory "D:/myenv/myweb/sina">
Order Deny,Allow
Deny from All
Allow from All
</Directory>
Order 访问的顺序,先Deny,,后Allow
Deny 和 Allow还可以设置
允许 127.0.0.1 这个ip地址的用户访问,其他用户不能访问
Allow from 127.0.0.1
5,配置php.ini文件,让他可以操作mysql
为什么修改php的配置文件后,要重启apache?
因为 php5apache2_2.dll 这个模块是链接apache和php的桥梁
同时,php作为apache的模块存在
mysql_connect() 这些函数属于谁?
为什么调用这个函数后,能够获得数据库的数据?
因为mysql是作为php的一个扩展存在
默认情况下,没有php.ini 配置文件,但是提供
php.ini-development 开发模式
php.ini-production 生产环境
修改php.ini之后,因为apache会读取php的配置文件,需要告诉apache php配置文件位置
PHPIniDir D:/myenv/php
接下来,修改php.ini,让他开启mysql的扩展,这样就能操作mysql数据库了
extension=php_mysql.dll
最后再告诉php ,它的扩展目录在哪里?
到目前为止,三大巨头安装成功
6,如何通过apache的重写机制实现 伪静态?
回顾一些虚拟主机
(1)在httpd.conf 开启虚拟主机
(2)虚拟主机的具体配置,每一个网站对应一个模块
我们对网站们分而治之,对每个网站做不同的访问权限设置
开启虚拟主机之后,服务器读取的是虚拟主机对应的目录
设置网站的欢迎页面(首页面):
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
按照先后顺序显示
设置网站的访问权限:
防盗链:
防止别人盗取我们的资源
配置继承:
先看 你当前的虚拟主机的配置
如果虚拟主机没有配置这一项,他会去
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
(2)伪静态
apache的rewrite.so 模块实现的
实现:
访问: http://www.sina.com/news-id3.html
其实访问的是:
http://www.sina.com/news.php?id=3
正则实现的:
(1)修改虚拟主机的配置
1, 需要开启重启模块 httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
<Directory "D:/myenv/myweb/sina">
Order Deny,Allow
Deny from All
Allow from All
#开启重写引擎
RewriteEngine On
#告诉服务器允许url地址的重写
Allowoverride all
#告诉服务器重写的规则
#将正则表达式匹配的结果 如果在后面想使用匹配的结果,$1 代表第一个子表示,$2,代表第二个子表达式
RewriteRule ([a-z]+)-id(\d+).html $1.php?id=$2&type=$1
</Directory>
(2)增加 .htaccess 文件
topdvdreview.com
www.topdvdreview.com
查找
正则表达式:
补充 PHP中如何使用正则表达式
test.php 代码:
<?php
$str="ajfalkkjflakjf888-999-387 lkjaflsajf777-333-123";
//取出四个连续的数字.
$reg="/(\d)\d\d(\d)/";
//取出888-999-387
$reg='/(\d)\1{2}-(\d)\2{2}-\d{3}/';
//$reg表示正则规范!, $str表示在哪个字符去找,$result匹配的结果放入该数组
//说明: 该函数找到一个就停止匹配
//匹配的结果放入到$result数组: $result[0] 放入的是找到的字符串 $result[1] 放入第一个子表达式的内容 $result[2] ...$result[n]
//preg_match($reg,$str,$result);
//$reg表示正则规范!, $str表示在哪个字符去找,$result匹配的结果放入该数组
//说明: 该函数匹配所有的结果
//匹配的结果放入到$result二维数组: $result[0] 放入的是找到的所有字符串
//$result[1] 放入各个结果的 比如 $result[1][0] 放入的是第一个匹配结果的第一个子表达式内容
//其它依次类推
//preg_match_all($reg,$str,$result);
echo "<pre>";
print_r($result);
echo "</pre>";
?>
思考题:
http://localhost/content.php/news-sport-id1.html
在content.php中取出
news sport 1取出
- apache服务器配置伪静态
- Apache服务器配置网站伪静态
- Apache配置伪静态
- apache 伪静态配置
- apache配置伪静态
- apache伪静态配置
- Apache-伪静态配置
- Apache + Tomcat 配置伪静态
- php apache伪静态配置
- Apache Rewrite 伪静态配置
- wamp apache配置伪静态
- apache静态服务器配置
- apache 服务器设置伪静态 配置文件php
- Apache URL Rewrite配置(php 伪静态)
- Apache Url Rewrite 配置(php伪静态)
- php 伪静态(url rewrite)apache配置!
- apache中伪静态配置和使用
- apache中伪静态配置和使用
- 电商大战硝烟再起
- Object-C 中实现 Singleton (单例) 模式
- IO模型
- 开发习惯和PHP代码
- Python标准库11 多进程探索 (multiprocessing包)
- apache服务器配置伪静态
- 活动安排问题(贪心算法)
- eclipse中log4j无法输出到控制台
- 使用配置文件保存数据库连接字符串
- C语言中#和##
- I/O模型 与 select, iocp, epoll,kqueue
- hdu4417Super Mario(线段树+离线处理)
- WordPress3.4简单移植至SAE
- UVa 10405 - Longest Common Subsequence