分类目录服务器&系统

win7+apache2.4+php7.4环境下socket连接失败解决办法

最近在筹划一个使用到局域网web服务的项目,想通过php的socket通信实现不同端数据的实时传递。

服务器采用的是:Win7+Apache2.4+php7.4,apache和php均已成功启动。

在命令行模式运行一个socket服务时遇到提示:Fatal error: Call to undefined function socket_create() in d:\www\www\study\socket\server.php on line 13

百度搜索“Fatal error: Call to undefined function socket_create()”,根据网友反馈修改了php.ini的配置,将“;extension=sockets”这一行的“;”去掉,重启php服务后问题解决。

Win7下Apache服务本机可通过ip访问,局域网其它设备不能访问的解决办法

最近在筹划一个使用到局域网web服务的项目,在搭建开发环境时遇到了一个问题,描述如下:
Win7台式机,通过有线连接到无线路由器;
台式机的ip地址设定为固定ip(192.168.1.100);
台式机安装了Apache2.4服务,并成功启动服务;
在台式机本地浏览器输入192.168.1.100可以访问预设的web页面;
将一部手机的WLAN设置为同一无线网络,打开手机浏览器,输入192.168.1.100,无法访问到台式机上预设的web页面。

解决办法:
为台式机的防火墙,添加一条入站规则,具体操作如下:
点击台式机“开始->控制面板->系统和安全->Windows 防火墙->高级设置->入站规则”,点击新建规则,如下图:

弹出窗口中默认规则类型为“程序”,点击“下一步”:

选“此程序路径”,点“浏览”:

在Appache的安装目录下找到httpd服务程序httpd.exe,点打开:

点“下一步”:

选“允许连接”,点“下一步”:

配置文件选择如下图所示,点“下一步”:

规则名称设置为“Apache HTTP Server”,点“完成”:

试一下手机浏览 http://192.168.1.100/ 页面,可以访问!

问题解决!

Windows10下安装Apache2.4.46 + php8.0.0

一、安装 Apache2.4.46
1. 下载
https://www.apachelounge.com/download/
https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.46-win64-VS16.zip

2. 解压httpd-2.4.46-win64-VS16.zip内的Apache24目录到C:\WebServ下
进入Apache的根目录,找到位于conf目录下的httpd.conf文件,用文本编辑器打开它,进行下面的修改:

37行 Define SRVROOT “c:/Apache24” -> Define SRVROOT “C:/WebServ/Apache24”
227行 #ServerName www.example.com:80 -> ServerName localhost:80
251行 DocumentRoot “${SRVROOT}/htdocs” -> DocumentRoot “D:/www/www”
252行 <Directory “${SRVROOT}/htdocs”> -> <Directory “D:/www/www”>
272行 AllowOverride None -> AllowOverride All
285行 DirectoryIndex index.html -> DirectoryIndex index.html index.php

3. 在D盘创建www\www目录

4. 以管理员身份运行cmd,进入到C:\WebServ\Apache24\bin目录下,执行下面命令
httpd -k install
提示
Installing the ‘Apache2.4’ service
The ‘Apache2.4’ service is successfully installed.

执行下面命令
httpd -k start

在浏览器地址栏输入http://localhost 可以看到apache安装成功

二、安装 PHP8.0.0(VS16 x64 Thread Safe 版)
1. 下载
https://windows.php.net/download
https://windows.php.net/downloads/releases/php-8.0.0-Win32-vs16-x64.zip

2. 解压php-8.0.0-Win32-vs16-x64.zip到C:\WebServ\php8.0.0下,在C:\WebServ\php8.0.0目录下建sessiontmp目录;

3. 将C:\WebServ\php8.0.0\php.ini-development复制一份并命名为php.in,用本编辑软件打开php.ini文件设置如下:
768行,;extension_dir = “ext” -> extension_dir = “C:/WebServ/php8.0.0/ext”
921行,;extension=curl -> extension=curl
925行,;extension=gd -> extension=gd
931行,;extension=mbstring -> extension=mbstring
933行,;extension=mysqli -> extension=mysqli
938行,;extension=pdo_mysql -> extension=pdo_mysql
970行,;date.timezone = -> date.timezone = PRC
1348行,;session.save_path = “/tmp” -> session.save_path = “C:/WebServ/php8.0.0/sessiontmp”
保存php.ini文件后退出

4. 再打开C:\WebServ\Apache24/conf/ 目录下的httpd.conf文件,在最后面加上下面内容:
LoadModule php_module “C:/WebServ/php8.0.0/php8apache2_4.dll”
AddType application/x-httpd-php .php .html .htm
PHPIniDir “C:/WebServ/php8.0.0”
LoadFile C:/WebServ/php8.0.0/php8ts.dll
LoadFile C:/WebServ/php8.0.0/libssh2.dll

5. 然后在命令行进入C:\WebServ\Apache24\bin下输入httpd -k restart重启apache