admin管理员组文章数量:1530085
目录
序言
使用
前提条件
软件版本
安装MySQL
安装php
安装nginx
安装phpmyadmin
整合
php测试环境
结语
鸣谢
序言
如果问服务器选择什么操作系统,那毋庸置疑肯定是linux,但飞在天上的火箭是天上造的吗?
曾还有诸多做windows下php集成开发的环境,而如今,在这个数据爆炸流量为王的年代,很多已经叫不出名字,还能点开官网的或许版本低或许有BUG,为了快速奔走于多地区多设备于是有了此篇博客,但鉴于能力所限不足之处还望诸位看官指正为谢!
使用
如您并不关心如何搭建,请看此处链接,但还需看清软件版本跟前提条件
注意:请不要在已安装mysql服务的设备上安装,此环境只适合学习请不要上线
下载压缩包:
https://phpla.oss-cn-shenzhen.aliyuncs/windows10_nginx1.24.0_mysql8.2.0_php8.3.3.7z
【上次密码_打错成.了】
解压密码:etafort_cn
下载完后解压把两个目录放入D盘根目录
确保设备环境已满足下一个步骤中的 前提条件
将php及mysql添加进环境变量,添加完成后如下图:
然后cmd管理员身份添加mysql服务
mysqld --install mysql
然后从任务管理器进入到服务管理里面把mysql服务启动方式设置为手动
一切就绪后进入D:/server文件夹点bat启动开关即可完成使用
php_fpm_start.bat这个的黑窗口不要关,算是个BUG,不过网上有很多隐藏此黑窗口的方法,还请自行查询。
编辑器:推荐phpstorm 虽然付费但可以无限试用
感谢您下载 PhpStorm!
压缩包内包含server及www两个文件夹,内容皆来源于官网,截图如下
前提条件
- 操作系统:建议win10以上,最低windows vista
- 以下地址从PHP For Windows: Binaries and sources Releases摘抄
-
VC++运行库64位:https://aka.ms/vs/16/release/VC_redist.x86.exe
- VC++运行库64位:https://aka.ms/vs/16/release/VC_redist.x64.exe
软件版本
- win10
- php8.3.3 x64线程安全
- nginx1.24.0
- mysql8.2.0
- phpMyAdmin-5.2.1-all-languages
安装MySQL
- 解压
- 将bin目录添加进系统环境变量
- 进目录建配置文件my.ini,注意最好安装个sublimetext编辑配置文件Sublime Text - Text Editing, Done Right
参考配置如下具体根据实际需求
D:/server/mysql-8.2.0/my.ini
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ----------是你的文件路径-------------
basedir=D:/server/mysql-8.2.0
# 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建
datadir=D:/server/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
配置来源:MySql-8.2.0安装详细教程_mysql8.2.0安装教程-CSDN博客
- 管理员身份启动CMD黑窗口
- D:切换至D盘
- cd命令切换至mysql目录下的bin目录
- 初始化 mysqld --initialize --console
此步会生成一个随机密码,注意保存,后面用得到,我的初始化后如下图
- 添加进系统服务 mysqld --install mysql
- 设置开机不启动
- 修改root密码
cmd
mysql -u root -p
输入刚才初始化生成的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'OkPlus123456';
FLUSH PRIVILEGES;
效果如上图,到此mysql就不用管了
安装php
- 解压
- 将php目录及ext目录添加进系统环境变量 CMD运行php -V看到版本成功
- 重命名php.ini
- 修改配置 ext取消注释 开启扩展,注意看ext目录下.dll文件名,改完后CMD运行下php -m看配置对不对
安装nginx
- 解压
安装phpmyadmin
- 解压
整合
- php跟nginx整合
修改nginx配置,取消php注释,删除多余注释,定义web根目录,我的如下
D:/server/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name ok;
set $root D:/www/ok/;
location / {
root $root;
autoindex on;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root $root;
}
location ~ \.php$ {
root $root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
#phpmyadmin
server {
listen 80;
server_name localhost;
set $roott D:/www/localhost/;
location / {
root $roott;
index index.php index.html index.htm;
}
location ~ \.php$ {
root $roott;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
启动 CMD以php-cgi模式运行php,端口自选,我的9000
cmd切换到php目录然后php-cgi -b 127.0.0.1:9000 -c D:/server/php-8.3.3/php.ini
好像也可以指定php.ini配置文件路径不用切换目录
如果窗口全黑代表成功,如有报错自行查询,一般都是路径跟配置的问题
然后启动nginx,先进入nginx运行下nginx -t看配置文件有没有报错
CMD
start nginx
然后浏览器输入配置文件中的域名验证下成功与否
关闭:
php-cgi: 杀进程 taskkill /f /t /im php-cgi.exe
nginx:taskkill /f /t /im nginx.exe 也可以 nginx -s stop
mysql:从任务管理器进入服务手动关闭也可以以管理员身份运行 net stop mysql
windows:自行查询
php测试环境
- 安装composer
- 配置根目录
- 配置自动加载
- 类里面加命名空间
我的如下
根目录配置文件D:/www/conf.php
<?php
header('Content-type: text/html; charset=utf-8');
strpos(php_sapi_name(), 'cli') !== false?define('app',str_replace('\\','/',__DIR__)): define('app',$_SERVER['DOCUMENT_ROOT']);
自动加载类及composer类D:/www/autoload.php
<?php
require_once app.'/vendor/autoload.php';
spl_autoload_register(function ($class) {
$class = str_replace('app',app,$class);
$class = str_replace(['\\',],'/',$class);
$class .= '.php';
if(file_exists(!$class))
die('no faile'.$class);
include $class;
});
运行时如下D:/www/test/link.php
<?php
include '../conf.php';
use app\php\Link;
require_once app.'/autoload.php';
$url = "http://as1sfsdf.2adwed/asdsdf/sdf/sdfsd/ok.php";
$status = Link::checkUrl($url);
$domain_ext = Link::getDomainExt($url);
$main_domain = Link::getMainDomain($url);
echo '链接';
var_dump($url);
echo '<hr>';
echo '链接状态';
var_dump($status);
echo '<hr>';
echo '链接域名后缀';
var_dump($domain_ext);
echo '<hr>';
echo '链接主域名';
var_dump($main_domain);
echo '<hr>';
-
结语
- 有没有那样一种人,习android连不上google官网,习php没有学校无此课,习三维动画电脑卡死,查询连不上世界上最大的搜索引擎,这一切都解决了之后却发现没有人关心这些,他们只关心流量,只关心钱,然我又没有,但是那有怎么样呢?他们与我无关!
-
鸣谢
- php官网
- mysql开源
- 阿里云OSS
- nginx官网
版权声明:本文标题:win10下搭建php开发环境 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726777071a1084059.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论