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官网

本文标签: 环境PHP