php语言运行原理:
实际上,apache可以独立运行,php也是可独立运行的,mysql同样可以。
安装apache:
双击apache-2.2.22-win32-x86-no_ssl.msi文件
进入安装导向:
完成之后:
1、apache安装后的默认主页(站点)的位置为:
apache的安装位置/htdocs/
2、localhost:是一个特殊域名(站点),其本身就代表“本机服务器”
127.0.0.1是一个特殊IP地址,代表“本机服务器”。
3.1、浏览器就会先找该域名对应的IP地址,找到IP之后,再去“请求该IP所代表的服务器”——网络上,只有IP才能真正确定一台电脑(服务器)的准确位置。
3.2、需要将该域名“转换”为IP。这个转换的过程,就称为“域名解析”。
3.3、互联网上,有很多很多的这种专门解析域名的服务器:
DNS服务器(域名解析服务器)
3.4、对于开发环境,我们常常并没有(也不需要)专门的域名解析服务器,而是使用一个简单的文本文件来解析域名:规则非常简单,就是一个域名对应一个IP,如下所示:
...
3.5、该文本文件就是操作系统的hosts文件(也是系统文件),位置在这里:
window操作系统目录/system32/drivers/etc/hosts
注意:
3.5.1、hosts就是文件名,它没有后缀。但它是纯文本文件
3.5.2、它是系统文件,需要管理员身份才能修改(win7,win8)
3.5.2.1:先用管理员身份打开编辑器(记事本,Editplus,.....)
3.5.2.2:在该编辑器中打开hosts文件
3.5.2.3:修改,保存。
PHP的命令行运行模式(独立运行):
1、php语言包,无需安装,可直接copy作为一个文件夹放得合适的位置。
2、php语言模块中有一个可执行文件,为php.exe,它就可以用来“运行php代码”。
3、php.exe所在的位置:就在php的语言包文件夹的根目录。
4、php模块独立运行php代码,有两种方式(注意都是在cmd命令行中):
运行php文件:php.exe -f "php文件路径"
>>以下两种写法不行(无法确定php.exe或php文件的路径):
>>只有确定这两个位置才可以行:
运行php代码:php.exe -r "php脚本代码"
配置apache以运行php网页
初始apache安装完之后,其配置项还不能运行php脚本(代码)。
我们需要对apache进行自定义配置,以完成该目标:运行php脚本。
apache配置文件所在位置:apche安装目录/conf/
主配置文件为:httpd.conf
apache的功能是以“模块化”的方式来运行的,其中有很多默认的功能模块。
那么,php其实也是作为apache的其中一个功能模块而已!
但我们得自己去配置(无默认配置代码)。
代码如下:
配置文件修改后,需要重启apache。
其中第二步,还有另一个方式:
配置php的基本运行环境
php的配置文件是:php语言包/php.ini
实际上,php初始语言包,提供了2个推荐配置文件:
我们只要拿其中一个修改其后缀就可以了。
确定php配置文件(php.ini)的位置:
在apachee的htdocs目录下新建一个简单的php网页(phpinfo.php),其中只有一行代码:
运行后看到:
于是,我们可以在apache的配置文件中,来指定php.ini的位置:
再重启apache,运行phpinfo.php,结果为:
配置时区:
打开php/php.ini文件,根据关键字timezone找到配置行:
初始:
修改为:
设置环境变量
所谓设置环境变量,就是将常用的一些命令的位置,加入到操作系统的path路径设置中去。
我们通常可以加入以下:
apache的bin目录:(假设)D:\PGMSuperman\src\apache\bin
mysql的bin目录:(假设)D:\PGMSuperman\src\mysql\bin
计算机〉属性〉高级系统设置〉高级〉环境变量〉系统变量〉path〉编辑: 添加上述目录,用英文分号分开。
检测apache配置文件语法
使用apache/bin/目录中的httpd.exe命令,可以检测apache的配置文件中的语法问题。
使用形式如下:
httpd.exe -t
配置数据库连接机制
初始执行连接数据库的代码:
执行结果为:
实际上,php虽然本身是作为apache的一个模块,被apache调用,
但是,php作为一个完整的语言包,其内部又是有很多个“子模块”构成。
php中的模块配置如下(在php.ini文件中):
extension:扩展的意思,即扩展模块
这里就可以轻松“打开/关闭”某个模块。
我们现在需要连接mysql数据库的模块,则打开它:
注意:打开php_mysql.dll和php_mysqli.dll需要注意路径是否正确
实际上,还不够!
因为我们要需要具体指出该模块在哪里
对比apache打开php模块的语法:
即同样需要指出模块位置。
在php中,模块位置的设定是一个单独的设置项,而且所有模块都放一起:
改为如下:
重启apache。
领取专属 10元无门槛券
私享最新 技术干货