月度归档:2017年06月

PHP7.0.19 连接SQL Server2005

  1. php.ini 需要开启扩展,但php自带扩展库中没有该数据库的扩展,就需要在微软下载,

下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载SQLSRV40.EXE

2. 解压得到php7各版本的dll动态扩展库,选择适合自己版本的放在php安装目录下的ext目录下

3. 修改php.ini 文件我这里是php7非线程安全的 :

extension=php_sqlsrv_7_nts_x64.dll

extension=php_pdo_sqlsrv_7_nts_x64.dll

4 .安装ODBC Driver 11 For SQL (msodbcsql.msi),安装时选中 ODBC Driver for SQL Server SDK安装,

下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=36434

5. 重启服务器或fastcgi

6. 打印phpinfo页面,查看pdo/pdo_sqlsrv/扩展是否开启

7. 如果开启了,使用pdo连接下数据库,如果还显示驱动不存在,再去配置数据库

数据库连接实例请参照php官网

8. SQL Server配置:在开始菜单或我的电脑管理中查找SQL Server 配置管理工具—

网络配置中启动Named Pipes协议和TCP/IP协议,重启数据库服务即可。

windows下编译php7 memcache.dll扩展

最近在配置windows云服务器,安装了最新的php7.0.20,想装个memcache发现官网的memcahce.dll扩展没有支持到php7,

查看了相关的文档决定自己在windows下编译memcache.dll扩展。

由于php_memcache.dll的官方编译出来的版本支持到PHP 5.6就断了,幸运的是,虽然放出的已编译版本停了,但是源码还在更新,

并且支持了7.1。所以,我就只好操起不熟练的VS 2015命令行进行编译适合自己的php_memcache.dll。

1. 下载安装VS 2015,安装是选择全部安装,但占用空间比较大,如果是固态硬盘建议安装可以选择vc++功能。剩下的就等待安装完成了。

2. 编译环境有了,还需要有PHP的sdk,不然还是编译不了,下载地址如下: http://windows.php.net/downloads/php-sdk/

下载划线的两个压缩文件到本地

3.下载memcache源码包,下载地址:https://github.com/websupport-sk/pecl-memcache

4.下载php7.0.20源码 下载地址: http://windows.php.net/downloads/releases/ 下载对应的php源码,我这里是 php-7.0.20-Win32-VC14-x64.zip

5. 编译前的准备,创建一个编译目录 E:\compile,解压php-sdk-binary-tools-20110915.zip里面的文件到compile目录下,

编辑 E:\compile\bin\phpsdk_buildtree.bat,在 GOTO EXIT 前增加代码:
           MD %_%\vc14\x86\deps\bin
           MD %_%\vc14\x86\deps\lib 
           MD %_%\vc14\x86\deps\include
           MD %_%\vc14\x64\deps\bin 
           MD %_%\vc14\x64\deps\lib 
           MD %_%\vc14\x64\deps\include
 注:这是因为phpsdk_buildtree.bat比较旧(毕竟2011年的古董),还不支持VC14,因此需要添加代码让其支持 VC14
6.在开始菜单找到并打开 VS2015 x64 本机工具命令提示符(注:如果要编译32位的,则需进入VS2015 x86 本机工具命令提示符),
 用cd 命令进入 E:\compile,执行如下两条命令: 
bin\phpsdk_setvars.bat 
bin\phpsdk_buildtree.bat phpdev 

7.执行无误后,目录下会生成phpdev文件夹,cd 到 phpdev/vc14/x64目录下,
把deps-7.0-vc14-x64.7z解压到该目录下,覆盖deps文件夹,并把php源代码也解压到x64目录下,将解压后的目录名改为PHP7
   8.在x64目录下创建pecl文件夹,,将下载的memcache代码全部解压到这个目录下改名为memcache,目录结构如下,  再在x64目录下创建obj文件,用来存放编译后的文件
  
















 9. 准备编译;
在刚才的 VS2015 x64 本机工具命令提示符依次执行以下命令,用于创建php编译配置:
cd phpdev\vc14\x64\php7
buildconf 
configure --help >..\configure_help.txt 
configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd 
--with-bz2 --enable-memcache=shared --enable-object-out-dir=..\obj
注:以上参数为编译线程安全版本的php_memcache.dll,如果需要编译非线程安全版本的,需要加入参数 --disable-zts
/确认下安装的php是线程安全还是非线程安全,确认完根据需要选择参数,不然也用不了。
10.如果不出意外,此时就可以使用如下命令来进行编译工作了: nmake 注:这里经常会出问题,具体问题需要大家根据错误原因自行百度解决方法, 
当问题都解决了之后, 就可以在E:\PHPCompile\phpdev\vc14\x64\obj\Release_TS\下找到php_memcache.dll了。 

11.安装,将编译的php_memcache.dll复制到ext目录下,修改php.ini扩展: extension=php_memcache.dll  

12.打印phpinfo,如果存在memcache则表示安装成功,反之检查php_error_log文件. 

13.其他配置按需。在此不在赘述。需要文件可以联系我的邮箱:461488042@qq.com

 

window 安装 nginx-1.8.3+php7.0+mysql5.7

1.下载nginx1.8 + php7.0 + mysql5.7.16

nginx 下载地址: http://nginx.org/en/download.html

php7.0 下载地址:http://windows.php.net/download#php-7.0   vc-x64 非线程安全

mysql5.7.16 下载地址: https://dev.mysql.com/downloads/mysql/  下载社区版zip包

2. 安装和配置 nginx1.8

解压nginx1.8的zip包到安装目录,配置conf/nginx.conf

 新增 .php文件为默认文件   

       location / {
            root   html;
            index  index.html index.htm inde.php;
        }
    开启文件gzip压缩
      gzip on;  #开启gzip压缩
      gzip_min_length 1k;  #设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大
      gzip_buffers 16 16k; #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。16 16k代表以16k为单位,安装原始数据大小以16k为单位的16倍申请内存。
      gzip_http_version 1.1; #识别http协议版本号
      gzip_comp_level 9; #文件压缩比  1-9 1 压缩比最小,处理速度最快  9压缩比最高处理速度慢,响应最快
      gzip_types  text/plain application/x-javascript text/css application/xml; #/匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。
      gzip_vary on; #和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
   设置fast-cgi 和 支持phpinfo
       location ~ \.php {
             set $path_info "";
             #定义变量 $real_script_name,用于存放真实地址
             set $real_script_name $fastcgi_script_name;
             #如果地址与引号内的正则表达式匹配
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
               #将文件地址赋值给变量 $real_script_name
                set $real_script_name $1;
               #将文件地址后的参数赋值给变量 $path_info
              set $path_info $2;
                 }
             root D:\www\safe;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_index index.php
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             fastcgi_param PATH_INFO $path_info;
             fastcgi_param SCRIPT_NAME $real_script_name;
            include fastcgi_params;
        }
    备注:其他配置根据实际需要更改

3. php.ini 配置文件修改

修改php.ini-development文件,将文件名修改为php.ini,打开php配置文件php.ini,保存即可。

搜索“extension_dir”,找到: e;xtension_dir = “ext” 先去前面的分号再改为 extension_dir = “.\ext”

搜索“date.timezone”,找到:;date.timezone = 先去前面的分号再改为 date.timezone = PRC

搜索“enable_dl”,找到:enable_dl = Off 改为 enable_dl = On

搜索“cgi.force_redirect” ;cgi.force_redirect = 1 先去前面的分号再改为 cgi.force_redirect = 0

搜索“fastcgi.impersonate”,找到: ;fastcgi.impersonate = 1 去掉前面的分号

搜索“cgi.rfc2616_headers”,找到:;cgi.rfc2616_headers = 0 先去前面的分号再改为 cgi.rfc2616_headers = 1

   备注:其他配置项按需配置。

4. 使用其他工具启动php-cgi和nginx

 下载一个RunHiddenConsole.exe,开启php-cgi和nginx.exe,保存为run.bat     

RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。简单来说就是黑窗体(CMD命令窗体)不会显示,但CMD命令窗体中运行的程序不会被关闭。

          @echo off
          echo Starting PHP FastCGI...
          C:\php+nginx+mysql\RunHiddenConsole.exe C:\php+nginx+mysql\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\php+nginx+mysql\php\php.ini
          echo Starting nginx...
          c\nginx\RunHiddenConsole.exe C:\php+nginx+mysql\nginx\nginx.exe -p C:\php+nginx+mysql\nginx

    关闭php-cgi和nginx.exe,保存为stop.bat   
         @echo off
         echo Stopping nginx...
         taskkill /F /IM nginx.exe > nul
         echo Stopping PHP FastCGI...
         taskkill /F /IM php-cgi.exe > nul
         exit

 

4. 安装mysql

解压mysql.zip包到安装目录

1. 设置环境变量path 的值   把mysql bin目录追加到path变量中

2.cmd以超级管理员运行,切换到mysql/bin目录,执行 mysqld –initialize-insecure 初始化无密码安装,执行完成生产data目录,运行错误需要安装vc++和 Microsoft DirectX 9 和 Microsoft DirectX 修复工具 修复

3.运行 mysqld –install 安装服务

4.配置my.ini文件(需先初始化安装在配置文件,且文件需要ansi格式编码,不能是utf-8或gbk

5. 启动 net start mysql

6 停止 net stop mysql

7.修改用户密码请参照: http://www.wenjunting.com/?p=68