1

我想将 php 5.6 与 Winginx 一起使用。

我试图创建一个文件夹 php56 并将 php 包放入其中,但是 php-config.exe 不会“看到”这个文件夹。

如何在 Winginx 中配置这个 php 版本?

4

5 回答 5

2
<?php
/*
After applying this patch you can use "php56", "php70" and "php71"
folders in the root directory of winginx.
*/
function patch($file, $offset, $old_data, $new_data) {
    if (!$f = fopen($file, 'r+b')) {
        die("Can not open $file");
    }
    fseek($f, $offset);
    $c = fread($f, strlen($old_data));
    if ($c == $old_data) {
        fseek($f, $offset);
        fwrite($f, $new_data, strlen($new_data));
        echo "$file patched successfully\n";
    } else if ($c != $new_data) {
        die("$file can not be patched\n");
    }
    fclose($f);
}
patch('winginx.exe', 0x0A6254, 2, 6); // 5.2 -> 5.6
patch('winginx.exe', 0x0A6258, 5, 7);  
patch('winginx.exe', 0x0A625C, 3, 0); // 5.3 -> 7.0
patch('winginx.exe', 0x0A6260, 5, 7);
patch('winginx.exe', 0x0A6264, 4, 1); // 5.4 -> 7.1

patch('winginx.exe', 0x0AD2DC, 2, 6); // 5.2 -> 5.6
patch('winginx.exe', 0x0AD2EA, 5, 7);
patch('winginx.exe', 0x0AD2EC, 3, 0); // 5.3 -> 7.0
patch('winginx.exe', 0x0AD2FA, 5, 7);
patch('winginx.exe', 0x0AD2FC, 4, 1); // 5.4 -> 7.1

patch('php-config.exe', 0x014FCE, 2, 6); // 5.2 -> 5.6
patch('php-config.exe', 0x014FDC, 5, 7);
patch('php-config.exe', 0x014FDE, 3, 0); // 5.3 -> 7.0
patch('php-config.exe', 0x014FEC, 5, 7);
patch('php-config.exe', 0x014FEE, 4, 1); // 5.4 -> 7.1

echo "Done\n";

将 mysql 更新到最新的 5.7 版本:

  • 下载最新的 zip 版本
  • 解压mysqld.exe和share文件夹到winginx的mysqll文件夹
  • 使用这个 my.ini

    [mysqld]
    basedir=../mysql
    datadir = data
    bind-address = 127.0.0.1
    socket=mysql.sock
    log_syslog=0
    log_error_verbosity=1 # 1=errors; 2=+warnings; 3=+notices
    
  • 将数据文件夹重命名为其他名称(以备份数据)
  • 从 winginx 的 mysql 文件运行

    ./mysqld.exe --initialize-insecure --console --datadir=data --basedir=../mysql
    

nginx、nodejs 和 redis 可以以同样的方式更新。下载最新版本,替换二进制文件并使用配置

于 2017-02-19T15:15:45.200 回答
2
<?php
/*
After applying this patch you can use "php56" and "php70"
folders in the root directory of winginx.
*/
function patch($file, $offset, $old_data, $new_data) {
    if (!$f = fopen($file, 'r+b')) {
        die("Can not open $file");
    }
    fseek($f, $offset);
    $c = fread($f, strlen($old_data));
    if ($c == $old_data) {
        fseek($f, $offset);
        fwrite($f, $new_data, strlen($new_data));
        echo "$file patched successfully\n";
    } else if ($c != $new_data) {
        die("$file can not be patched\n");
    }
    fclose($f);
}
patch('winginx.exe', 0x0A6254, 2, 6);
patch('winginx.exe', 0x0AD2DC, 2, 6);

patch('winginx.exe', 0x0AD258 5, 7);
patch('winginx.exe', 0x0AD25C 3, 0);
patch('winginx.exe', 0x0AD2EA 5, 7);
patch('winginx.exe', 0x0AD2EC 3, 0);

patch('php-config.exe', 0x014FCE, 2, 6);
patch('php-config.exe', 0x014FDC, 5, 7);
patch('php-config.exe', 0x014FDE, 3, 0);

echo "Done\n";
于 2016-03-29T17:52:44.490 回答
0

你可以这样做,

PHP设置;首先,下载到 php ( http://windows.php.net/download/ ) 并复制到 C:/php。之后,在桌面上创建 php64.bat 并写入C:\php\php-cgi.exe -b 127.0.0.1:5800,运行文件。

Winginx设置;更改为您的“服务器配置”选项卡;寻找:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9054;

代替:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:5800;

之后,保存并重新启动 nginx。

于 2014-11-23T03:04:33.047 回答
0

尝试...

对于 php 5.6.7 - https://github.com/z2z/winginx_php56

对于 mysql 或 mariadb - https://gist.github.com/z2z/eb3d1415c2521da76b20

对于 nGinx - 您直接将 nginx.exe 替换为最新的。

于 2015-04-07T13:05:28.177 回答
-1

你在这里:https : //www.dropbox.com/s/10mkdporeils7ct/winginx_php56_support.exe 我刚刚重新编辑,现在它支持 php 5.6。

只需从 php.net 5.6 php 下载并放置到 winginx_folder/php56 还需要从以前的版本复制配置 php-cgi。

于 2016-02-11T09:14:52.377 回答