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文件中配置即可。
vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/19
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册