cygwin+php教程(swoole扩展+redis扩展)

cygwin

1.下载cygwin安装程序 :在Windows上获得Linux的感觉

2. 打开安装包:setup-x86_64.exe

3.选择安装类型

从互联网安装首次安装
下载而不安装仅下载软件包不安装
从本地目录安装迁移程序时使用

4.选择安装目录

5.选择本地软件包目录(下载与安装的软件包目录,迁移程序时会用)

6.选择连接类型

7.选择下载站点

8.选择软件包

    //软件包                版本选最高automake1.10gcc-g++gdblibpcre2-devellibzstd-develmysqlmysql-develmysql-servernginxpcrepcre2phpphp-PEARphp-curlphp-develphp-ftpphp-jsonphp-mysqliunzipwget//需要什么安装什么,搜索不到的如 php-swoole扩展 php-redis扩展 则需要下载源码编译

9.审查并确认更改

10.完成安装

11.cygwin64目录结构

12.打开桌面cygwin64

首次打开将会创建启动源文件 位于home文件夹下

swoole扩展

1.查看php版本

2.下载对应版本的swoole扩展源码 

3.将扩展源码放在php扩展目录  地址:C:\cygwin64\usr\include\php\ext

4.cygwin打开swoole-v4.8.13并追加phpize扩展

5.配置构建和安装环境 ./configure

6.make构建

7.make install 安装

8.打开C:/cygwin64/etc/php.ini编辑最下面添加 extension=swoole.so

9.查看php扩展,安装完成

redis扩展

 1.查看php版本

2.下载对应版本的redis扩展源码 

3.将扩展源码放在php扩展目录  地址:C:\cygwin64\usr\include\php\ext

4.cygwin打开redis-4.2.0并追加phpize扩展

5.配置构建和安装环境 ./configure

6.make构建

7.make install 安装

8.打开C:/cygwin64/etc/php.ini编辑最下面添加 extension=redis.so

9.查看php扩展,安装完成

nginx+php-fpm

1.修改cygwin启动源文件C:/cygwin64/home/25848/.bashrc

2.重新打开桌面cygwin64

3.测试

4.niginx配置文件C:/cygwin64/etc/nginx/nginx.conf

# 指定用来运行 Nginx 进程的用户。通常注释掉以使用默认用户。
#user  nobody;# 设置工作进程的数量,通常设置为服务器CPU核心数。
worker_processes  1;# 定义错误日志的位置和日志级别,默认情况下注释掉。
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;# 定义存储 Nginx 进程 ID 的文件位置。
#pid        logs/nginx.pid;# 加载动态模块,这里包含所有在指定目录中的 .conf 文件。
include /usr/share/nginx/modules/*.conf;events {# 设置每个工作进程可以处理的最大连接数。worker_connections  1024;
}http {# 导入 MIME 类型映射文件,文件扩展名映射到 MIME 类型。include       mime.types;# 设置默认的 MIME 类型。default_type  application/octet-stream;# 定义日志格式,默认注释掉。#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';# 指定访问日志的位置和使用的日志格式。#access_log  logs/access.log  main;# 启用高效的文件传输方式。sendfile        on;# 优化 TCP 包的传输,默认注释掉。#tcp_nopush     on;# 设置连接保持的超时时间,单位为秒。#keepalive_timeout  0;keepalive_timeout  65;# 启用 gzip 压缩。#gzip  on;server {# 监听端口号。listen       80;# 定义服务器名。server_name  localhost;# 设置字符集,默认注释掉。#charset koi8-r;# 定义 access log 的位置和格式。#access_log  logs/host.access.log  main;location / {# 定义当前 location 的根目录。root   html;# 定义默认的索引文件。index  index.html index.htm;}# 自定义错误页面。#error_page  404              /404.html;# 将服务器错误页面重定向到静态页面 /50x.htmlerror_page   500 502 503 504  /50x.html;location = /50x.html {# 定义错误页面文件所在的根目录。root   html;}# 将 PHP 脚本代理到监听在 127.0.0.1:80 上的 Apache。#location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# 将 PHP 脚本传递给监听在 127.0.0.1:9000 的 FastCGI 服务器。#location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# 拒绝对 .htaccess 文件的访问,如果 Apache 的根目录与 nginx 的根目录相同时。#location ~ /\.ht {#    deny  all;#}}# 另一个虚拟主机配置示例,基于 IP、名称和端口的配置。#server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS 服务器的配置示例。#server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;  # SSL 证书文件#    ssl_certificate_key  cert.key;  # SSL 证书密钥文件#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}
}

5.nginx前端网页部署C:/cygwin64/usr/share/nginx/html

MariaDB(mysql的一个分支)

1.创建数据库目录 mkdir -p /var/lib/mysql

2.设置权限 chmod 700 /var/lib/mysql

3.修改 C:/cygwin64/etc/my.cnf

[mysqld]
max_connections = 300        # 最大连接数设置为300(默认通常是151)
table_cache= 400             # 表缓存大小设置为400(影响能同时打开的表数量)
lower_case_table_names=1     # 表名不区分大小写(1表示不区分,0表示区分,2表示保留大小写但比较时不区分)
log-error=/var/log/mysql/error.log  # 自定义错误日志路径

4.创建错误日志文件

5.初始化数据库 mysql_install_db --datadir=/var/lib/mysql

6.启动服务前台运行 mysqld_safe &

7.测试(无密码)

8.登录root用户 mysql -u root -p

9.设置密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'wuerluo0';

10.修改cygwin启动源文件C:/cygwin64/home/25848/.bashrc

10.重新打开桌面cygwin64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92052.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ethereum: Uniswap V3核心”Tick”如何引爆DEX的流动性革命?

大家好,今天,我们来聊聊一个在去中心化交易所(DEX)领域,尤其是自Uniswap V3问世以来,变得至关重要的概念——Tick(流动性边界)。 如果大家接触过DeFi,可能听说过Uniswap …

【概念学习】什么是深度学习

人工智能 人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。 因此,人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。 在相当长的时间内,许多专家相信,只…

【MATLAB】(八)矩阵

一.矩阵的定义MATLAB 以矩阵作为数据操作的基本单位,这使得矩阵运算变得非常简捷、方便、高效。矩阵是由m*n个数q(i1,2,…,m;j1,2,…,n),排成的m行n列数表,记成称为 mxn 矩阵,也可以记成aij或Am*n。其中,i表示行数,j表…

python的高校考研交流系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持: 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具:Navicat/SQLyog等都可以 在当今社…

从零开始部署Qwen3-8b大模型到本地

一、方法一(使用docker镜像进行部署) 安装Linux服务器,本机测试系统为Ubuntu系统;(带有2张A100的GPU服务器) 思路为:使用docker部署python环境镜像在此基础上安装vllm拉取Qwen3-8b模型 docker-compose.yml文件部分配…

AI产品经理如何理解和应用Transformer架构,以提升产品的技术能力和用户体验?

​你好,我是 ✨三桥君✨ 助你迈向AGI时代!!! 📌本文介绍📌 >> 一、引言 在当今的AI浪潮中,Transformer架构已不再是一个陌生的技术名词。从OpenAI的GPT系列到Google的BERT,再…

数据结构(四)内核链表、栈与队列

一、内核链表基础1. 什么是 Linux 内核链表?Linux 内核链表是一种高效的 双向循环链表,广泛应用于内核模块开发中,用于管理数据结构。每个节点通过指针连接前一个和后一个元素,实现插入和删除的高性能。2. 链表的定义与初始化在 L…

软考信息安全工程师11月备考

目前是在职备考,主业是移动端开发工程师。第一个月(8.4-9.6),将分享完下面所有章节内容,平均不到两天更新一节1.网络信息安全概述2.网络攻击原理与常用方法3.密码学基本理论4.网络安全体系与网络安全模型5.物理与环境安全技术6.认证技术与原理…

使用DrissionPage实现xhs笔记自动翻页并爬取笔记视频、图片

使用DrissionPage实现xhs笔记自动翻页并爬取笔记视频、图片 声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经…

使用 input 上传文件, 选择文件后再次修改文件再上传失败( <input type=“file“ /> 自定义上传)

业务实际需求:点击【选择】按钮先选择文件,展示文件的详情:类型,大小,日期......点击【上传】按钮这个时候才去上传文件如图:BUG复现:点击上传文件后发现xlsx文件有些数据没填写,然后…

Win11 下解决 VScode/Trae 插件加载慢, 整个 VScode/Trae 很卡

最近在使用 Trae 写代码, 突然变得很卡, 尤其是插件系统, 比如我打开插件的面板, 以及比如我想预览一下写好的 .md 文件 (已安装了 Markdown Preview Enhanced 插件), 这些都要好几分钟才能打开. 最初以为是 Trae 坏掉了, 然后重启 Trae 不管用, 再重启电脑居然也不管用, 接着…

微型导轨:智能家居抽屉的智能化应用

当智能家居从“功能堆砌”转向“体验升级”,微型导轨凭借超薄结构、静音运行与精准定位能力,成为隐藏式设计、自动化交互的核心部件,让家具“动”得优雅且可靠。智能扫地机器人:微型导轨被应用于边刷的伸缩调节机构,能…

百套易语言教程、易语言视频教程【易语言编程入门教程】

百套易语言教程、易语言视频教程【易语言编程入门教程】 易语言辅助教程(爱易编程论坛讲师 24课讲师:远航 9课爱易编程论坛讲师:爱易、小Call 8课).rar 时光论坛易语言全套教程【易语言零基础易语言抓包易语言填表】完整版.rar 易…

nlp-词汇分析

目录 一、语言中的词汇 1、词的形态学 2、词的词性 二、词语规范化 1、词语切分 2、词形还原 3、词干提取 三、中文分词 1、概述 2、基于最大匹配的中文分词 3、基于线性链条件随机场的中文分词 4、基于感知器的中文分词 词序列预测 模型参数学习 特征定义 5、…

Kafka ISR机制和Raft区别:副本数优化的秘密

Kafka的ISR机制和像Raft这样的传统基于Quorum(法定人数)的协议之间的区别确实很微妙,但也非常重要。让我们来分析一下为什么ISR可以减少所需的副本数量。在采用ISR模型和(f1)个副本数的配置下,一个Kafka分区…

新手向:GitCode疑难问题诊疗

Git疑难问题诊疗引言在软件开发过程中,版本控制系统(VCS)是不可或缺的工具,而Git以其分布式架构、强大的分支管理能力和高效的性能成为行业标准。然而,随着项目复杂度的提升,Git的使用也可能遇到各种疑难问…

电子电气架构 ---如何焕新升级为 48V 电气架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

JavaScript判断数字方法

在JavaScript中,判断一个值是否为数字有多种场景,以下是常见方法及适用情况:1. 严格判断数字类型(排除NaN)使用 typeof 结合 !isNaN(),确保值是 number 类型且非 NaN:javascriptfunction isNumb…

C++编程之旅-- -- --始探门庭的求知漫溯(二)

目录引用内联函数(C11)auto关键字基于范围的for循环指针空值---nullptr引用 引用:指将变量以另一个名称来展现的。它并非是一个新变量而是一个别名,它们同指一块内存空间。就如古时那些有字的人,亦或者是周树人,你说鲁迅是不是周树人呢&…

wordpress网站的“管理员邮箱地址”有什么用?

在WordPress网站的“设置”-“常规”中设置的“管理员邮箱地址”有多种用途,以下是详细介绍: 一、用户注册相关 密码找回功能 当网站用户忘记密码时,他们会通过点击登录页面上的“忘记密码”链接来重置密码。WordPress系统会向管理员邮箱地…