一、适用场景:
1、使用开源的免费数据库Mysql;
2、自己建网站的发布;
3、使用php代码建网站;
4、使用windows server作为服务器;
5、使用apache作为网站服务器。
二、win server 中apache网站服务器搭建
(一)下载win版apache
apache下载地址一:Apache VS17 binaries and modules download
apache下载地址二:Apche下载
1、https://httpd.apache.org
2、点Files for Microsoft Windows
3、点Apache Lounge
4、点httpd-2.4.58-240131-win64-VS17.zip 下载
(二)windows版apache网站服务器的配置过程
1、打开Apache解压目录下的conf目录中的httpd.conf文件
2、把Define SRVROOT和ServerROOT的目录换成自己的解压目录。
3、配置Apache端口(在本服务器上若端口不冲突,可以不修改端口号),Apache默认端口80,本例避免端口冲突改成8888,修改httpd.conf中的监听端口,如下图:
4、以管理员身份打开cmd,在Apache24\bin目录下执行安装命令httpd -k install
提示:The ‘Apache2.4’ service is successfully installed.即安装完成。
从上图中可以看出,在安装apache的过程中,提示设置服务名称,ServerName,所以,执行下一步配置服务器的名称
5、配置打开服务器时的名称和端口号,如下图:
6、再次执行安装程序,就正常结果,没有Errors报错,如下图:
7、查看已安装的apache版本号,如下图:
8、启动Apache服务,打开Apache bin目录下的ApacheMonitor.exe,点击“Start”,如下图:
9、启动成功后,灯由红变亮,service has started,服务中的apache服务也显示为已启动,如下图:
10、启动后在浏览器输入localhost:+你刚才设置的端口,显示下图代表安装成功
11、apache的默认站点根目录为htdocs,这个目录就是php文件运行的根目录,所有的php文件都要放到htdocs目录下运行,也可以自己更改工作目录,查找DocumentRoot和Directory字段自己定义的工作路径即可,如下图:。
三、apache网站服务器对php代码类型的网站支持配置:
(一)php版本下载地址:
Php下载地址一:php-8.2.5-Win32-vs16-x64.zip
Php下载地址二:php多版本
(二)php下载后的配置
1、把下载的php安装包解压,放到准备安装php的位置,本例放在服务器的D:\wwwroot\php82下,如下图:
2、在PHP的解压目录中找到php.ini-development直接复制一份然后改名为php.ini
3、然后我们打开名为名为php.ini的配置文件,进行修改,里面的extension,这是PHP的调用模块,只要把字段前分号;去掉,就可以打开此模块的功能,这一步要按照具体环境的部署需求操作,本例要使用mysql,所以开启mysql,如下图:
extension=mysqli
extension=php_mysqli.dll
这两行是打通Mysql时用的可在这一步先配置上
4、在php.ini的配置文件中再修改如下2行:
Extension=fileinfo 启用php中的fileinfo扩展
Extension=gd 启用gd扩展
5、设置电脑环境变量,编辑系统变量,在path中新增ext文件夹的路径
4、配置PHP模块到Apache服务器上
配置Apache24/conf/目录下的httpd.conf文件
在 LoadModule 结尾处补加以下代码(以下是PHP8配置):
LoadModule php_module “d:/wwwroot/php82/php8apache2_4.dll”
PHPIniDir “d:/wwwroot/php82/php.ini”
AddType application/x-httpd-php .php .phtml
5、在设置的工作目录下建立index.php文件,文件内容就是输出PHP信息
<?php phpinfo() ?>6、重启Apache服务器(每次修改配置文件后,必须重启Apache服务器修改才能生效)
(1)启动失败,如下图:
(2)换一种方式,在服务器中启动,如下图:
(3)通过事件查看器,根据事件中的提示,第187行语法错误,查看httpd.conf的第187行后,结果多了个””,如下图:
(4)根据配置文件对应行,修改配置文件删掉多的”双引号后,再次启动,正常,如下图:
7、打开网页(192.168.0.56:8888/index.php),如下图:
此时PHP已经部署到Apache服务器啦!
四、mysql数据库的配置
(一)Mysql下载地址:MySQL Shell 8.3.0 Innovation
(二)配置PHP连接上Mysql
1、打开php.ini文件,查找extension_dir,去掉前面的注释并将ext文件路径改成我们自己的ext路径(记得重启Apache)
2、在php.ini中继续查找mysqli,下面两句前面的;分号注释删掉(然后重启Apache)
3、安装mysql,如下图:
(1)执行安装程序,本例安装mysql5.55,如下图:
(2)勾选接受协议,next下一步,如图:
(3)选择典型安装,如下图:
(4)点install,开始安装,如下图:
(5)点finish完成安装,如下图:
(6)配置Mysql,选择详细配置,如下图:
Standard Configuration(标准配置)设置选项可能与正准备运行MySQL的应用平台某些选项或参数不兼容。
Detailed Configuration(详细配置)如果系统上已经安装了MySQL和你想要配置的安装,可以更好的完成个性化定制
(7)本机作为mysql的服务器运行,此处选择server machine,如下图:
Developer Machine:主要为了个人使用,占用系统最少的资源。
Server Machine:主要用于像FTP,email,web服务器等等,耗用系统较多的资源。
Dedicated MySQL Server Machine:只用作MySQL服务器,不运行其他程序。耗用系统所有可用的资源。
(8)现在不配置数据库,选择Non-transaction Database Only,如下图:
Multifunctional Database(多功能数据库):该选项同时使用InnoDB和MyISAM储存引擎,并在两个引擎之间平均分配资源。建议经常使用两个储存引擎的用户选择该选项。
Transactional Database Only(事务处理数据库):该选项同时使用InnoDB和MyISAM储存引擎,但是将大多数服务器资源指派给InnoDB储存引擎。建议主要使用InnoDB只偶尔使用MyISAM的用户选择该选项。
Non-Transactional DatabaseOnly(非事务处理数据库):该选项完全禁用InnoDB储存引擎,将所有服务器资源指派给MyISAM储存引擎。建议不使用InnoDB的用户选择该选项。
(9)选择你网站的一般mysql 访问量,同时连接的数目,“Decision Support(DSS)/OLAP()”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,按“Next”继续,如下图:
(10)指定mysql的访问端口号,默认指定为3306,如下图:
(11)指定mysql的编码字符类型,本例选择标准,如下图:
标准字符集(Standard Character Set):支持西欧语言
支持多语言(Best Support For Multilingualism):UTF-8字符集
人工选择(Manual Selected Default Character Set/Collection):自己选择,GBK;GB2312;UTF-8
(12)选中launch the mysql server automatically 复选框,让mysql随windows的启动而自动启动。选中include bin directory in windows path 复选框,将mysql的bin目录添加到环境变量path中,这样在CMD命令行窗口的任何目录下,可以直接使用bin目录下的可执行文件,如下图:
(13)设置mysql的密码,网站使用该mysql数据时,需要用到密码,选中enable root access from remote machines 复选框,允许通过root用户远程登录。如下图:
(14)点击Excute执行配置过程。4步全部执行完成,即配置成功。
4、修改index.php中的内容
5、重新打开网页测试:
(1)在服务器本机测试,如下图:
(2)在服务器的浏览器上测试,如下图:
(2)在局域网浏览器上测试,如下图:
出现“Mysql连接成功”,那么Apache+PHP+Mysql环境已经搭建好啦!
五、调用电子阅览室网站测试效果
1、复制电子阅览室的源码到apache+php的网站服务器,如下图::
2、打开测试,OK
3、后续代码问题:
(1)锁定加密提示,如下图:
(2)文件所在的路径,说明文件存在,如下图:
(3)提示第36行问题,如下图:
本文至此结束,还剩加密问题需要解决,不足之处敬请批评指正。