Windows下搭建Laravel+PHP+Nginx+SQLServer环境

2019-02-14 12:04:14   Windows

搭建这个一个奇葩的环境、完全是被逼的

安装PHP

这是一个坑,官方提供4个win版本的PHP(横向版本),分别是32位非线程安全、32位线程安全、64位非线程安全和64位线程安全。其实这本身不太坑,但是加上SQLServer就是大坑了:(危险动作,请勿模仿)我是64位服务器,所以安装了64位线程安全版本,然后连接SQLServer需要给PHP添加几个依赖,也就是.dll文件,然后还要装驱动。坑爹的事情发生了,php.ini我都把这个dll写全路径,依然告诉我找不到,后来我发现这个dll也是有版本的,有nts和ts版本,仔细一想,这不就是no thread safe 和thread safe的缩写么 ,这个要对应版本安装。而且最好对应PHP的版本,像我用的PHP7.1,对应的dll也要是71。本以为我太特么机智了,那我只用线程安全的dll对应我下载的线程安全的PHP就好了,结果还是找不到。最终,神农尝遍百草,发现PHP7.1非线程安全版本配合对应版本的非线程安全的dll文件才可以。所以,这里我们就按照没毒的姿势走吧。

下载PHP7.1非线程安全版本

地址:http://windows.php.net/download/ 我选择的是VC14 x64 Non Thread Safe (2017-Aug-02 00:22:57),这里下载zip包就可以。

安装PHP并配置环境变量

  • 安装其实很简单,就是把这个zip包解压一下就好了。我解压在了C盘根目录下,但是你解压在哪要记得,下一步配置环境变量需要。
  • 右键我的电脑-》属性-》高级系统设置-》高级-》环境变量,中文应该是这样的,英文版是右键This PC-》properties-》advanced-》environment variables
  • 然后选择下面的System variables系统变量中的Path,点new,把你php的目录添加进去,像我的就是 C:\php(解压完后,我把目录名称改为php了,这样简单一点) path
  • 测试:windows键加上R键,输入cmd打开命令提示符,输入php -v 显示PHP版本信息,就是安装成功了。

安装SQL Server,安装驱动,下载dll,添加PHP扩展

安装SQL Server和驱动,dll文件下载

  • SQL Server这个东西,微软官网下载就行,一抓一大把,我这下载的是2016版,顺便再下载一个管理工具SMSS,谷歌一下就出来了。
  • dll文件下载地址:https://github.com/Shavien/PHP-SQLServer-ext-dll。驱动下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=36434,选择64位版本下载安装

    PHP扩展安装配置

  • 安装其实谈不上,就是把刚刚下载的dll文件放到PHP文件夹中的etx文件中即可。
  • 主要是配置,这里在PHP文件夹中复制php.ini-development到当前文件夹,也就是PHP文件夹内,修改名字为php.ini修改后可能默认会隐藏ini后缀名,这个不必care,然后我们来修改这个新创建的配置文件,搜索Windows Extensions,仿照下面的扩展配置把刚刚下载的dll文件名字配置进去,其实只需要那两个非线程安全的即可,其他的扩展文件根据你自己的需求放开注释,也就是去掉分号,可以看到extension=php_pdo_sqlsrv_71_nts.dll,extension=php_sqlsrv_71_nts.dll就是我需要用的扩展:
    
    ...
    ; Windows Extensions
    ; Note that ODBC support is built in, so no dll is needed for it.
    ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
    ; extension folders as well as the separate PECL DLL download (PHP 5+).
    ; Be sure to appropriately set the extension_dir directive.
    ;

extension=php_pdo_sqlsrv_71_nts.dll extension=php_sqlsrv_71_nts.dll ;extension=php_pdo_sqlsrv_71_ts.dll ;extension=php_sqlsrv_71_ts.dll

extension=php_bz2.dll extension=php_curl.dll extension=php_fileinfo.dll extension=php_ftp.dll extension=php_gd2.dll extension=php_gettext.dll extension=php_gmp.dll extension=php_intl.dll extension=php_imap.dll ;extension=php_interbase.dll extension=php_ldap.dll extension=php_mbstring.dll extension=php_exif.dll ; Must be after mbstring as it depends on it extension=php_mysqli.dll ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client extension=php_openssl.dll ;extension=php_pdo_firebird.dll extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll extension=php_pgsql.dll extension=php_shmop.dll

...


## 安装Composer,添加Laravel
### 下载安装
下载地址:https://getcomposer.org/Composer-Setup.exe 下载后双击安装即可
安装完成后在命令提示符中输入`composer -V`看到版本信息即安装成功
### 添加laravel依赖
```composer global require "laravel/installer"```
### 创建新的laravel项目
```laravel new blog```

## 安装Nginx
### 下载安装
下载地址:http://nginx.org/
下载解压后,找个地方屯起来,我又放C盘根目录了,可以跟配置PHP一样配置环境变量,这样在哪里都可以使用相关指令,不然就先进入到Nginx目录下,当然同样是在命令提示符下进入目录,然后`start nginx` 是开启Nginx服务,`nginx -s reload` 是重新加载Nginx的配置。
### 配置Nginx
在Nginx的目录下有个nginx.conf的文件,编辑此文件,找到server{...}的位置,并按照以下内容在相应位置添加或修改,其中root 后对应的是你laravel项目的路径加上\public,因为框架的启动入口是在项目public目录下的index.php。配置完成后保存然后在命令提示符下执行`nginx -s reload` 即可。

server { listen 80; server_name localhost; root C:\Users\vien\blog\public;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}



## 启动php-cgi并测试
启动脚本:```php-cgi.exe -b 127.0.0.1:9000 -c C:/php/php.ini``` ,其中最后是配置文件的路径,这里换成你的。
那么问题来了,你只要关了这个黑窗口(命令提示符cmd),那就结束了,如何让他开机启动,并且能一直挂在后台运行呢。这里提供一种解决方案,写一个开启Nginx和php-cgi的bat文件,写一个关闭二者的bat文件,并且创建快捷方式,放在系统启动目录中就可以了。
参考:http://blog.csdn.net/qq_32457355/article/details/77480018

## 连接SQL Server
### 创建新的Login并给予权限,开放TCP/IP连接通道。
参考:http://blog.csdn.net/qq_32457355/article/details/77480623

### 连接配置
使用刚才的用户名和密码,以及默认1433端口连接,连接信息在laravel的配置文件.env文件中配置即可。
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/19
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

标签

AdSense Anaconda Android apache API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina certbot Charles cloudcone Composer conda CoreML CPU crontab CSS csv Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose Eloquent Excel export Flask FTP GET Git GitHub GitLab Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ios iou iPhone ISO8601 iTerm2 Java JavaScript JPG JS Keras Laravel Laravel-Admin lazyload Linux list Livewire lnmp load logs Lravel Mac Markdown matplotlib md5 mix MobileNet Mojave mongo MongoDB MySQL Namesilo Nginx Node npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose openpyxl oss Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests RGB Sanctum save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH ssl SSL证书 SSR str Sublime sudo swap Swift Tensorflow TensorflowLite Terminal Terminator timestamp Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode xlsx yaml YAPI YUV zip zmq zsh 上网 下载图片 主从同步 云主机 云存储 云开发 云服务器 人工智能 代码管理 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 双击事件 后台运行 后端 命令 国内镜像源 图标 图片操作 图片转换 域名 多身份认证 大小写转换 姿态检测 安卓模拟器 安装 定时任务 定时执行 密码 密钥 导出导入 小程序码 延迟加载 异常 微信 微信小程序 快捷方式 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 数据重复 文件上传 无法登录 日志 日期 时区 时间 时间戳 服务器 机器学习 权限 梯子 模拟浏览器 港版支付宝 漏洞 爬虫 生活服务 用户管理 病毒 登录 目标检测 科学上网 系统升级 索引 组件 组件开发 编辑器 自动付款 自定义组件 英文伪原创 计划任务 计算机视觉 订阅通知 认证 语法 读写分离 远程仓库 远程连接 配置文件 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接