phpStudy下Apache环境安装SSL证书实现https链接

phpstudy的Apache环境下如何安装SSL证书?网上很多教程,然并卵。本文真实可靠实际操作,为大家教学phpstudy下A环境安装SSL证书的正确方法。不用花钱请大神,希望大家分享该知识为https普及做贡献。

工具/原料

  • 申请并下载好ssl证书(PEM格式)
  • phpstudy集成环境下正常运行的网站
  • 避免意外请先备份(复制)好httpd.conf配置文件。

方法/步骤

  1. 首先,开启apache的编译ssl模块,如图打开phpstudy—其它选项设置—PHP扩张及设置—php扩展—php-openssl前面打勾

  2. 如图点击打开修改httpd.conf配置文件,打开找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的注释符#(保证前面没有#号),使得ssl模块生效。

    增加一条引用语句   Include conf/vhosts_ssl.conf

  3. 依次打开phpstudy安装文件,打开Apache打开conf文件,在conf文件夹中创建一个名为vhosts_ssl.conf的配置文件。编辑vhostsssl.conf文件,增加如下内容:

    Listen 443

    SSLStrictSNIVHostCheck off

    SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL

    SSLProtocol all -SSLv2 -SSLv3

    <VirtualHost *:443>

    DocumentRoot “D:\phpStudy\WWW\bbs”(网站根目录路径)

    ServerName www.yuming.com(更换成自己的域名)

    ServerAlias yuming.com(更换成自己的域名)

    <Directory “D:\phpStudy\WWW\bbs”>(网站根目录路径)

    Options FollowSymLinks ExecCGI

    AllowOverride All

    Order allow,deny

    Allow from all

    Require all granted

    </Directory>

    SSLEngine on

    SSLCertificateFile “D:\phpStudy\Apache\conf\ssl\XXX.cer”(证书路径)

    SSLCertificateKeyFile “D:\phpStudy\Apache\conf\ssl\XXX.key”(证书路径)

    </VirtualHost>

  4. 将下载好的证书放入ssl目录路径D:\phpStudy\Apache\conf\ssl\如图,注意文件格式,.cer和.key只需要这两个证书文件。你可以右键属性查看文件类型确认文件格式正确不。

  5. 防火墙端口入站规则哪里关闭443,绿勾变成灰色就关闭了,关闭后现在重启phpstudy,正常重启后,在浏览器里面输入https://的域名就能看到安全锁出来啦。

    地址栏未能显示绿色锁标是因为网站有http非加密资源,如图片,css,js等,需要全部调整为https开通协议资源才能挂锁成绿色。

    END

注意事项

  • 如果启用了cdn加速或网站卫士需要到cdn将其设置成http是协议,否则有可能乱码或不挂绿锁
  • 有不清楚不明白有疑问的可以联系我尽力帮助。

来源:https://jingyan.baidu.com/article/49ad8bceb4dc735835d8fa6a.html

bat执行php,

A.BAT 文件放www文件夹中,内容如下:

E:\phpStudy\php\php-5.4.45\php -f b.php
pause

================================

b.php也放www中,内容如下:

<?php

echo 666;

?>

 

若需要定时器处理,比如:10s执行一次【经过实测无误。】。

bat文件内容如下:

@echo off
E:\phpStudy\php\php-5.4.45\php -f b.php
:start
ping -n 10 127.1>NUL
E:\phpStudy\php\php-5.4.45\php -f b.php
goto start
pause

 

===========

若要实现每执行一次都换行,可以在bat中这样 echo.  注意:echo后面有一个点。

@echo off
E:\phpStudy\php\php-5.4.45\php -f b.php
echo.
:start
ping -n 3 127.1>NUL
E:\phpStudy\php\php-5.4.45\php -f b.php
echo.
goto start
pause

 

提示:若bat中显示中文乱码,则用:iconv(“utf-8″,”gb2312//IGNORE”,”中文”);处理下,转下编码。因为bat中编码中文是gb2312!若b.php是ansi编码则不需要转码的哦。

echo iconv(“utf-8″,”gb2312//IGNORE”,”中文”);处理下即可,若需要换行则串接一个 “\r\n”

完整b.php代码如下:

echo file_get_contents(‘http://127.0.0.1/oop,180104/tp3/index.php/Admin/index/aaa’);
echo “处理完成\r\n”;

composer如何安装?-基于phpstudy2016

步骤一:下载composer

前往composer官网现在一下composer.phar。

地址:https://getcomposer.org/download/

步骤二:把composer.phar放在php的根目录,然后建立一个composer.bat也放在php目录下。

composer.bat内容如下:

@php “%~dp0composer.phar” %*

步骤三:以管理员身份执行composer.phar

phpstudy2016->其他选项菜单->cmd命令行

提示:注意上图红色方框部分,一定要进入到composer.bat目录下,执行composer.bat后,若看到红色方框下面部分则提示成功啦!

我们也可以使用:composer -V 命令,若能看到:

Composer version 1.5.5 2017-12-01 14:42:57  则说明安装成功的啦。

 

 

 

接下来开始安装 yii框架啦。官方文档参阅:http://www.yiichina.com/download

 

http://www.yiichina.com/doc/guide/2.0/start-installation#installing-via-composer

 

 

yum、rpm以及composer的区别

首先应区别的是包管理器和依赖管理工具:

yum和rpm都是包管理器,可以为系统安装升级软件;

Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

第二,yum和rpm区别(yum比较方便)

rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

第三,什么是composer

Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。一些框架(比如Laravel)就可以用composer部署/

来源:http://blog.csdn.net/h330531987/article/details/76183696

Composer是什么?

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

官方链接:http://www.phpcomposer.com/

简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统。它实际上包含了两个部分:ComposerPackagist。下面我们就简单说一下他们各自的用途。

Composer

Composer 是由 Jordi Boggiano 和 Nils Aderman 创造的一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。Composer 中的很多理念都借鉴自 npmBundler,如果你对这两个工具有所了解的话,就会在 composer 中发现他们的身影。Composer 包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等有趣的东西。

作为一个用户,你所要做的就是在 composer.json 文件中声明当前项目所依赖的开发包,然后运行 composer.phar install 就行了。composer.json 文件定义了当前项目所依赖的开发包和 composer 的配置信息。下面是一个小型实例:

{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

Packagist

Packagist 是 Composer 的默认的开发包仓库。你可以将自己的安装包提交到 packagist,将来你在自己的 VCS (源码管理软件,比如 Github)仓库中新建了 tag 或更新了代码,packagist 都会自动构建一个新的开发包。这就是 packagist 目前的运作方式,将来 packagist 将允许直接上传开发包。

yii框架介绍

Yii 是一个 高性能 的,适用于开发 WEB 2.0 应用的 PHP 框架。

Yii 自带了 丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。

yii框架中文网站:

视频教程:点击打开

中文文档:点击下载

下载框架:点击下载

信息来自:http://www.yiichina.com/

取得文件扩展名方法

取得文件扩展名方法一:
$r=basename(“1/333.jpg.exe.txt”);
$arr=explode(“.”,$r);
echo “.”.$arr[count($arr)-1];

取得文件扩展名方法二:

$r=pathinfo(“1/333.jpg.exe.txt”);
echo $r[‘extension’];

php三种方法解决抓取页面内容乱码问题

<?php
function gzdecode2($data) {
$len = strlen($data);
if ($len < 18 || strcmp(substr($data,0,2),”\x1f\x8b”)) {
return null; // Not GZIP format (See RFC 1952)
}
$method = ord(substr($data,2,1)); // Compression method
$flags = ord(substr($data,3,1)); // Flags
if ($flags & 31 != $flags) {
// Reserved bits are set — NOT ALLOWED by RFC 1952
return null;
}
// NOTE: $mtime may be negative (PHP integer limitations)
$mtime = unpack(“V”, substr($data,4,4));
$mtime = $mtime[1];
$xfl = substr($data,8,1);
$os = substr($data,8,1);
$headerlen = 10;
$extralen = 0;
$extra = “”;
if ($flags & 4) {
// 2-byte length prefixed EXTRA data in header
if ($len – $headerlen – 2 < 8) {
return false; // Invalid format
}
$extralen = unpack(“v”,substr($data,8,2));
$extralen = $extralen[1];
if ($len – $headerlen – 2 – $extralen < 8) {
return false; // Invalid format
}
$extra = substr($data,10,$extralen);
$headerlen += 2 + $extralen;
}

$filenamelen = 0;
$filename = “”;
if ($flags & 8) {
// C-style string file NAME data in header
if ($len – $headerlen – 1 < 8) {
return false; // Invalid format
}
$filenamelen = strpos(substr($data,8+$extralen),chr(0));
if ($filenamelen === false || $len – $headerlen – $filenamelen – 1 < 8) {
return false; // Invalid format
}
$filename = substr($data,$headerlen,$filenamelen);
$headerlen += $filenamelen + 1;
}

$commentlen = 0;
$comment = “”;
if ($flags & 16) {
// C-style string COMMENT data in header
if ($len – $headerlen – 1 < 8) {
return false; // Invalid format
}
$commentlen = strpos(substr($data,8+$extralen+$filenamelen),chr(0));
if ($commentlen === false || $len – $headerlen – $commentlen – 1 < 8) {
return false; // Invalid header format
}
$comment = substr($data,$headerlen,$commentlen);
$headerlen += $commentlen + 1;
}

$headercrc = “”;
if ($flags & 1) {
// 2-bytes (lowest order) of CRC32 on header present
if ($len – $headerlen – 2 < 8) {
return false; // Invalid format
}
$calccrc = crc32(substr($data,0,$headerlen)) & 0xffff;
$headercrc = unpack(“v”, substr($data,$headerlen,2));
$headercrc = $headercrc[1];
if ($headercrc != $calccrc) {
return false; // Bad header CRC
}
$headerlen += 2;
}

// GZIP FOOTER – These be negative due to PHP’s limitations
$datacrc = unpack(“V”,substr($data,-8,4));
$datacrc = $datacrc[1];
$isize = unpack(“V”,substr($data,-4));
$isize = $isize[1];

// Perform the decompression:
$bodylen = $len-$headerlen-8;
if ($bodylen < 1) {
// This should never happen – IMPLEMENTATION BUG!
return null;
}
$body = substr($data,$headerlen,$bodylen);
$data = “”;
if ($bodylen > 0) {
switch ($method) {
case 8:
// Currently the only supported compression method:
$data = gzinflate($body);
break;
default:
// Unknown compression method
return false;
}
} else {
// I’m not sure if zero-byte body content is allowed.
// Allow it for now… Do nothing…
}

// Verifiy decompressed size and CRC32:
// NOTE: This may fail with large data sizes depending on how
// PHP’s integer limitations affect strlen() since $isize
// may be negative for large sizes.
if ($isize != strlen($data) || crc32($data) != $datacrc) {
// Bad format! Length or CRC doesn’t match!
return false;
}
return $data;
}

$url=”http://www.x23us.com/html/8/8998/2527190.html”;

/*方法三*/
/*
$str=file_get_contents($url);
$str=gzdecode2($str);
echo $str;
*/

/*方法二*/
/*
$str = file_get_contents(“compress.zlib://”.$url);
echo $str;
*/

/*方法一*/

function curl_get($url, $gzip=false){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
if($gzip) curl_setopt($curl, CURLOPT_ENCODING, “gzip”); // 关键在这里
$content = curl_exec($curl);
curl_close($curl);
return $content;
}

echo curl_get($url,true);

?>

原文:http://www.jb51.net/article/43095.htm

PHP 全局变量 – 超全局变量

PHP 全局变量 – 超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的
全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可
以访问它们。

这些超全局变量是:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION