PHP 8.0 是 PHP 语言的一个主版本更新。
它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、JIT,并改进了类型系统、错误处理、语法一致性。相比较PHP7平均性能提升10%。
安装PHP8:
Windows版PHP8下载地址:https://windows.php.net/download/
本次示例使用的是VS16 x64 Thread Safe的zip(PHP 8.0 (8.0.0版))压缩包。
注意,php的安装包有Thread Safe和Non Thread Safe。
这里需要Thread Safe版。由于PHP要求使用VS16及以上版本。所以要确保系统中已安装了VS16,如果未安装请到微软Visual C++ downloads页面下载。通常我们会下载64位版本的vc_redist.x64.exe。
我把php解压在了G:\server\php。下面确认下php是否好用。
查看PHP版本的方法:
快捷键WIN+R,运行“CMD”,进入命令行。
到php的安装目录(上述解压的位置)下,使用php -v指令查看版本。
为了使用PHP更加方便,可以将PHP目录加入到系统路径中。
添加系统变量方法:
弹出开始菜单(按win键),键入env。 从显示结果中单击“编辑系统环境变量”,将出现“系统属性”对话框。 单击“环境变量…”,从“系统变量”块中选择“路径”或“Path”。 将新的PHP文件夹添加到列表中。(因为我的是英文系统,所以截图如下)
配置PHP
PHP文件夹下有开两个文件
- php.ini-production
- php.ini-development
随便取一个改名为php.ini。然后开始编辑该文件。
找到extension_dir项目,去掉前面的井号注释。路径设置为您当前配置的路径。以本例为例:
extension_dir = "G:\server\php\ext"
可按照自己所需开启一些扩展。默认这些扩展是被注释的。
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
至此,PHP安装初步完成。
Apache的安装
下载地址:https://www.apachelounge.com/download/
我下载的是OpenSSL版的Apache2.4.46 x64。下载好后解压到:G:\server\Apache。
解压好后进入到G:\server\Apache\conf文件夹。配置httpd.conf文件。
找到SRVROOT参数,定义Apache的路径。如下:
Define SRVROOT "G:\server\Apache"
ServerRoot "${SRVROOT}"
我们常用到URL重写等模块,所以我们需要开启它。
方法是取消下面模块的注释即可:
LoadModule rewrite_module modules/mod_rewrite.so
另外,调整缓存时间,处理http响应头也需要headers模块的支持:
LoadModule headers_module modules/mod_headers.so
将Apache注册到系统服务中:
以管理员身份进入CMD命令行。
在G:\server\Apache\bin路径下输入:
httpd -k install
在通过下面的命令启动apache。
httpd -k start
如果启动成功,我们可以通过http://localhost测试一下Apache是否安装成功。
设置虚拟主机
默认的文档路径为:apache\htdocs。但是,这不是最佳的,我们通常会把站点配置到其他的位置(其他的盘符下)。 如果您是开发人员,则可能需要处理多个Web项目。 因此,对每个项目都有一个专用的文件夹和URL会很好。
例如,如果website1.com和website2.com是生产站点,则您可能需要具有开发专用目标文件夹的website1.local和website2.local这样的URL。这时需要配置虚拟主机并启用它。
首先,打开httpd.conf文件,取消httpd-vhosts.conf行注释。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
打开conf/extra/httpd-vhosts.conf。
为您想要的每个项目添加一个条目。
ServerName,DocumentRoot和ErrorLog是重要的参数。其他参数可跳过。
假设我们的项目要存放在w:/Websites。
除此之外,您还必须允许访问这些文件夹。
<Directory "w:/Websites" >
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:80>
ServerName weisite1.local
DocumentRoot "w:/Websites/weisite1.local"
</VirtualHost>
<VirtualHost *:80>
ServerName weisite2.local
DocumentRoot "w:/Websites/weisite2.local"
</VirtualHost>
为了能在浏览器中访问weisite1.local和weisite2.local域名。我们需要配置c:\Windows\System32\drivers\etc\hosts文件。把这两个域名指向127.0.0.1
大概如下:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 weisite1.local
127.0.0.1 weisite2.local
记得配置完后,重启一下Apache看看会不会有报错。
PHP8和Apache的关联
设置已基本完成,但我们尚未将PHP和Apache配置为可以协同工作的好伙伴。 首先,我们必须将php扩展名添加到已知的mime类型。 为此,httpd.conf末尾添加以下行:application / x-httpd-php php。最重要的步骤是加载php模块。 为此,在httpd.conf文件中指定PHP安装目录和相应的模块。httpd.conf末尾添加如下:
AddHandler application/x-httpd-php php
PHPIniDir "G:/server/php"
LoadModule php_module "G:/server/php/php8apache2_4.dll"
AddType application/x-httpd-php html htm
重启apache,看看能否正常启动,安装是否顺利。
按照php7的安装习惯,我们会加载php8_module。但是实际上并不是那样。
注意:
通常也需要设置默认文档的优先级。httpd.conf中搜索如下代码。如果没有你想要的默认文档。按需添加。
下面代码的优先级为: index.php > index.html
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
其他:
“Can’t locate API module structure ‘php8_module’ in file …” 遇到这种错误提示:我们只要LoadModule php_module …就可以了。 没有什么php8_module。
MariaDB/Mysql的快速安装
下载地址:
按照自己的需求下载安装包并安装即可。安装步骤就不描述了。过于简单。很傻瓜。
为不同的虚拟机使用不同的PHP版本
下载php并配置
当然首先要下载php,这里下载的是php7.4.x。放到F:/Server/php74下。
下载mod_fcgid并引入
从下面的页面中找到mod_fcgid并下载:
https://www.apachelounge.com/download/
将mod_fcgid.so文件放入apache\modules文件夹
在httpd.conf添加:
LoadModule fcgid_module modules/mod_fcgid.so
设置配置代码
虚拟机配置文件中添加如下代码,代码的作用是访问my.site时,使用php7.4解析该站点的php文件。
<VirtualHost *:80>
ServerName my.site
DocumentRoot "F:/www/site/"
//开始
FcgidInitialEnv PHPRC "F:/Server/php74/php.ini"
<Directory "F:/www/my.site">
<Files ~ "\.php$">
AddHandler fcgid-script .php
FcgidWrapper "F:/Server/php74/php-cgi.exe" .php
Options +ExecCGI
</Files>
</Directory>
//结束
</VirtualHost>
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。