无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

@

目录


前言

这篇博客里面所使用到的电脑配置如下

/*------------------------------------------------------
服务器型号:DELL R710
CPU:E5530 * 2
RAM:16GB DDR3 1333 Mhz ECC
硬盘:320GB SATA *4 (组RAID 10)
阵列卡:H700
SystemOS:Windows Server Datacenter 2019 with GUI
-------------------------------------------------------*/

通过本篇博客你可以完成 MySQL 8.0.23 、Apache 2.4以及PHP 8.0.3的安装。

并能够完成这些组件之间的基本配置,可以让你的网站/服务完成数据库的访问,通过其他计算机访问你的网站,可以解决跨域问题。


MySQL 8.0.23 安装

下载

到官方网站下载:https://dev.mysql.com/downloads/mysql/

目前的最新版本是MySQL 8.0.23

在Windows上有两种安装方式,一个是zip压缩文件解压然后配置,另一个是图像化界面安装。

这里选择第一种方法安装:

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
下载完成之后,通过FTP服务传送到服务器上。

安装

解压到Program Files/MySQL里面
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

添加一个叫做 mysql.ini的文件,并在该文件里添加如下内容

[mysql]
 
# 设置mysql客户端默认字符集
default-character-set=utf8 
 
[mysqld]
 
#设置3306端口
port = 3306 
 
# 设置mysql的安装目录
basedir=path
 
# 设置mysql数据库的数据的存放目录
datadir=path\data
 
# 允许最大连接数
max_connections=200
 
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

其中的path要对应你的实际的安装路径

配置环境变量

在Windows Server DC版本里面(我估计Windows 10里面也是一样的)

我的电脑 --》右键属性 --》高级系统设置 --》环境变量

在系统环境变量里面添加一条新的记录,内容如下(最后一条,一定是你的安装路径里面的 bin 目录):
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

初始化MySQL

之后,初始化MySQL

在安装路径用管理员身份打开 CMD

mysqld --initialize --console

注意,这里会生成一个临时的密码,拷贝出来

找一个参考图(我这里没有截屏)
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
这个localhost 冒号后面的就是临时密码

紧接着,安装MySQL

mysqld --install mysql

无报错后启动MySQL

net start mysql

这里第一安装完成之后需要修改密码

mysql -u root -p

这个时候用你的初始密码登录

用如下的指令修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你要设置的新的密码';
 
flush privileges;

退出,用新密码登录就OK了。

到此为止,MySQL就安装完了


PHP8.0.3 安装

下载

去官网下载 https://windows.php.net/download

切记要下载Thread Safe版本,不然后面不能够连接Apache服务

下载完成后通过FTP服务上传至服务器无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

这里我比较推荐直接将文件解压到Program File里面(这里的文件夹名称并不是这次解压后的名字,因为原先安装的是none Thread Safe版本,所以在我配置Apache服务器的时候发现缺少必要的组件,网上找了好久都没有说是这个版本的问题,直到在Stack Overflow上看到了一篇帖子讲的是如何配置PHP和Apache服务器,这才知道是版本的问题)

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

安装

php.ini.development文件的文件名改为php.ini(这里推荐先复制备份一下php.ini.development文件)无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
之后在解压路径里面打开CMD,并运行如下的命令

php.exe -v

这里会输出版本号,标明可以运行
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

配置环境变量

将解压路径添加到环境变量当中无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
重启电脑,在随机的一个路径下启动CMD窗口,运行如下命令

php -v

输出版本号,到这标明了PHP已经正确安装无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0


Apache 2.4 安装

下载

去官网下载:https://www.apachelounge.com/download/

这里选择64位进行安装(不会还真的有人的服务器运行着32位系统吧...)
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

就是Apache 2.4.46 Win64这个选项

安装

下载完成之后,解压文件

注意啊,这里有两种解压方法,一个是随意找一个地方解压,另外一个是直接解压到C盘的根目录。

这里我推荐直接解压到C盘的根目录,最简单,不需要修改配置文件就可以运行Apache服务器,非常适合新手来操作,至于占用C盘空间这个问题...我的服务器只有一个分区所以不用考虑这个问题。

解压完成的目录内容如下所示(对不起我忘记截图了。。。)

/*-------------------------------
 * Apache24				文件夹
 * -- Win64 VS16 --		其他文件
 * ReadMe.txt			txt文件
-------------------------------*/

这里的ReadMe.txt里面有步骤来指引我们安装、配置Apache服务器。

这里直接将Apache24这个文件夹复制到C盘的根目录。

如果你不想将该文件夹复制到C盘根目录,也没有关系。

我们用文本编辑器打开 Apache24\conf\httpd.conf文件

搜索 Define SRVROOT ,然后把地址改为你的安装目录。这里需要注意一点!!!一定要把你的安装路径中的""换为"/",不然无效的!!!

启动

进入你的安装目录,== 用管理员身份 ==启动CMD,输入如下命令

httpd.exe -k install

这里成功设置了开机自动运行

这个时候用快捷键 Win + R 输入 service.msc 打开服务

若看到Apache2.4且启动类型为自动,说明开机自动运行设置已经完成了。

我们可以在任务栏里面看到一个羽毛的图标
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
双击图标,就可以打开Apache监视器,这里可以控制Apache服务器的开启、停止和重启。

界面如下图所示:

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

测试

在浏览器的地址输入 localhost 并回车,即可显示 It Works!,说明安装成功!
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

放入我们自己的网页

我们可以将安装目录下的htdocs里面的index.html替换成为我们自己的网页内容,即可利用浏览器访问了。


配置Apache、PHP、MySQL

<OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试

我在安装开机自启动服务的时候出现了这个报错,提示内容是

make_sock: could not bind to address 0.0.0.0:80

因为我服务器上安装了IIS,80端口已经被占用掉了。

这里我们需要打开Apache的配置文件。

配置文件在安装目录下 conf/httpd.conf

打开之后找到 Listen 80,这里将80改为88或者是其他的未被占用的端口,我这里配置改为了88端口

保存,然后再安装开机自动运行服务。

之后,在Apache监视器里面重启Apache服务,在浏览器里面访问 localhost:88 ,发现可以运行,问题解决!

Apache不能被除本机外的其他计算机访问

这里得有两步操作,第一个,打开Apache配置文件,找到如下内容:

<Directory>

Require local

</Directory>

将 Require local 改为Require all granted。
如果你的配置文件里面不是这个内容,而是deny什么什么的,就把那一行改为Require all granted。

第二步,防火墙设置

控制面板 --》Windows 防火墙 --》高级设置

点击入站规则,然后新建规则
选择 端口,下一步,选择TCP,在特定本地端口后填写你设置的Apache服务的端口(Apache配置文件的 Listen 处),然后下一步、完成就可以了。重启电脑,问题解决。

让 Apache 支持 PHP

第一步,修改 php.ini 文件
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
extension_dir后面改为你的安装路径并加上"/ext"

还有,可以根据自己的需要来进行一些模块的添加(这个是我的添加的模块,就是前面去掉";"的那些)

extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd
extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
extension=odbc
extension=openssl
extension=pdo_firebird
extension=pdo_mysql
extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

这里需要注意!!!
如果你的网站涉及到了MySQL的操作又不想出现下面的画面
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
请一定要将extension=opensslextension=mysqli前面的分号去除掉!!!

第二步,修改Apache配置文件

<IfModule dir_module>
		DirectoryIndex index.html
</IfModule>

更改为

<IfModule dir_module>
		DirectoryIndex index.html index.php
</IfModule>

在你认为的合适的位置插入下面的这段内容(在所有的LoadModule的后面一行插入)

#php support
LoadModule php_module "PATH/php8apache2_4.dll"
<IfModule dir_module>
	PHPIniDir "PATH/"
	AddType application/x-httpd-php .php
	AddType application/x-httpd-source .phps
</IfModule>

注意,这里是空格后加上.php,PATH 是你的安装路径

还要解锁几个Module

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0
图片来源:

https://blog.csdn.net/qq_41189458/article/details/113624155?utm_term=apache24配置php8&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-0-113624155&spm=3001.4430

添加跨域(不添加这个会影响访问数据库的)
无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

这些都配置完成之后,保存,重启服务器。


总结

我这次安装Apache服务器经历了一整周,从Mac到Windows,踩了不少的坑,但也没有踩完坑。当你按照步骤配置到了这一步,你就可以愉快的将你的网站挂到刚刚配置好的这台电脑里了。

技术是没有尽头的,愿你在今后迎难而上,解决各种难题,这篇只是一个开头,愿你再接再厉。加油!!!技术人!!!

希望各路大神能在评论区指正!!!

上一篇:字节跳动+阿里+华为+腾讯等大厂Java面试题


下一篇:Linux同步IO :sync,fsync,fdatasync