多数PHP开源项目里有一个install.php的文件,这个文件就是该系统的安装文件,如果要安装的话,前提是要安装PHP的运行环境。PHP集成运行环境安装很简单,只需下一步,下一步即可完成。比如非常流行的XAMPP软件等等。安装完成后,按以下步骤操作即可:
将项目复制到XAMPP安装目录下的htdocs文件夹下;
然后启动php和mysql服务;
打开浏览器,在地址栏输入:localhost/install.php,按回车即可进行安装。
在Windows 8 的IIS(8.0)中搭建PHP运行环境:
一:安装IIS服务器
1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息服务,记得选中CGI这一项
2.安装完成后在浏览器中打开localhost,查看是否能显示IIS的欢迎页面:
二:下载安装配置PHP环境
1、下载PHP,官网地址:http://windows.php.net/download/,
2、将下载的zip压缩包解压到D盘下,解压后为E:\php;
3、进入控制面板>>管理工具>>Internet信息服务(IIS)管理器;
4、中间窗口选择“处理程序映射”双击,然后最右边选择“添加模块映射”
5.“可执行文件”一栏找到PHP的安装目录E:\php,右下角的文件类型改为“exe”即可看到“php-cgi.exe”文件出现了
6.然后可以给网站添加默认文档:default.php和index.php。
还要进行下面的配置:
7.进入E:\php目录,重命名文件php.ini-development改名为php.ini并复制到桌面;
8.下面需要修改桌面的php.ini文件,
打开php.ini文件后,使用快捷键ctrl+F搜索data.timezone修改为data.timezone="Asia/Shanghai”即修改当前的时区
激活你需要的扩展选项,即将相应dll语句前的分号”;”删除
代码如下 | 复制代码 |
extension=php_gd2.dll |
再搜索extension_dir=将其修改为extension_dir = “E:\php\ext\”,修改并检查完毕后保存,然后把桌面的这个php.ini文件剪切到C:\Windows目录下即可(为什么开始不直接把文件复制到这里来修改呢,因为Windows 8涉及到权限问题,所以先复制到桌面修改,当然也可以放到其它目录修改)
9.php环境配置好了,我们就可以测试一下了,在建立的网站目录下新建一个index.php文件(注意是index.php,不是index.php.txt),内容为”“,然后再在浏览器中打开”localhost“,即可出现类似如下界面
PS1:(在命令行中进入php安装目录下,输入”php -m“命令可查看已开启的dll扩展模块)
Ps2:php网站开发的话少不了mysql数据库,关于mysql数据库环境配置安装图解见这里。
在了解了PHP的一些基本信息之后,首先要做的那么就是安装PHP,软件都没安装怎么学呢?下面请看详细的安装方法。在了解了PHP的一些基本信息之后,首先要做的那么就是安装PHP,软件都没安装怎么学呢?在PHP中有一个黄金组合,它就是LAMP。
LAMP是什么:
L:linux
A:Apache
M:MySql
P:PHP
特点:开源免费、卡发成本低、开发速度快、开发周期短、执行速度灵活
说完这个之后下面开始为大家介绍PHP的搭建方法。
在以前我们搭建PHP环境的时候,需要分别安装Apache、MySql、PHP,安装起来非常的麻烦,而且安装完成之后还需要修改它们的配置文件、对文件进行关联等。
那么现在我们怎么去搭建PHP环境呢?
现在只需要安装一个PHPstudy就行了,它是一个集成好的环境,只要安装好PHPstudy之后,它就会默认为大家将上面提到的Apache、MySql、PHP进行安装,并且需要配置的地方都已经配置好了。
下面为大家介绍PHPstudy的下载地址和安装方法:
下载地址:
链接: https://pan.baidu.com/s/1i4COZfJ 密码: hfsr
安装方法:
1、解压
2、打开“PHPstudy”文件夹,双击PHPstudy2016.exe就能进行安装了;
那么环境搭建好了之后要怎么开发PHP呢?
在这里一聚教程网推荐大家使用“zend studio”;
开发PHP有很多的工具,在下面列举了一些当前较为常用的工具。
1、Editplus
2、PHPDesigner 7
3、Norepad++
4、PHP Coder
5、Zend Studio
在这些开发工具中,之所以推荐大家使用“Zend Studio”是因为它是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境(IDE),它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Eend Studio加速开发周期,并简化复杂的应用方案。
Eend Studio主要组件:
1、专业的集成开发环境,内置编辑器、调试器以及帮助文档;
2、windows,linux,Mac等多个操作系统版本;
3、多语言支持;
4、专业的编辑器;
5、关键字、语法加亮显示(PHP,HTML,XHTML,JavaScript)
6、XML & CSS的关键字、语法加亮显示
7、代码模版
8、支持 PHP 4、PHP 5
9、代码自动完成功能;
10、PHP Code(+PHPDoc)分析功能;
11、内部调试器
说了这么多,下面给大家提供Zend Studio的下载地址。
Zend Studio下载:
链接: https://pan.baidu.com/s/1jIltrhG 密码: ghvr
Zend Studio破解方法:http://www.111cn.net/phper/php/124669.htm
到这里为止,本文的PHP的安装与环境搭建所有内容就结束了,希望对大家有所帮助。
安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。问题:
线上运行的lamp服务器,默认yum安装的curl模块只支持http,不支持https。
解决方法:
编译安装curl,重新编译php,使php的curl模块支持https。
具体步骤:
1、下载curl
cd /usr/local/src #进入安装包存放目录
wget http://curl.haxx.se/download/curl-7.44.0.tar.gz #下载
2、安装curl
cd /usr/local/src
tar zxvf curl-7.44.0.tar.gz #解压
cd curl-7.44.0 #进入包安装目录
./configure --prefix=/usr/local/curl --with-gssapi --enable-tls-srp --with-libmetalink #配置
make #编译
make install #安装
3、重新编译php
查找系统之前的php编译参数
/usr/local/php/bin/php -i | grep configure #查看php编译参数
如下:
'./configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql-sock=/tmp/mysql.sock' '--with-pdo-mysql=/usr/local/mysql' '--with-gd' '--with-png-dir=/usr/local/libpng' '--with-jpeg-dir=/usr/local/jpeg' '--with-freetype-dir=/usr/local/freetype' '--with-xpm-dir=/usr/' '--with-zlib-dir=/usr/local/zlib' '--with-t1lib=/usr/local/t1lib' '--with-iconv' '--enable-libxml' '--enable-xml' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--enable-mbregex' '--enable-mbstring' '--enable-ftp' '--enable-gd-native-ttf' '--with-openssl' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--with-gettext' '--enable-session' '--with-mcrypt' '--with-curl ' '--enable-ctype'
对参数进行修改:
如下
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype
备注:修改部分
取消原来的--with-curl
替换为:--with-curl=/usr/local/curl
取消参数两边的单引号
其它不变
cd /usr/local/src/php #进入php安装包目录(注意php版本要和之前一样)
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl=/usr/local/curl --enable-ctype #配置
make #编译
make install #安装
4、重启apache使设置生效
service httpd restart #重启
故障解决!
5、测试
以下代码,保存为phpinfo.php
<?php
phpinfo();
?>
上传到网站目录,查找curl,如下图所示,说明安装成功!
至此,Linux下PHP安装curl扩展支持https教程完成!
扩展阅读:查看软件编译参数
查看nginx编译参数:/usr/local/nginx/sbin/nginx -V
查看apache编译参数:cat /usr/local/apache/build/config.nice
查看mysql编译参数:cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE
查看php编译参数:/usr/local/php/bin/php -i | grep configure
例子
代码如下: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
curl https请求代码
代码如下: <?php
/** curl 获取 https 请求
* @param String $url 请求的url
* @param Array $data 要?送的??
* @param Array $header 请求时发送的header
* @param int $timeout 超时时间,默认30s
*/
function curl_https($url, $data=array(), $header=array(), $timeout=30){
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$response = curl_exec($ch);
if($error=curl_error($ch)){
die($error);
}
curl_close($ch);
return $response;
}
// 调用
$url = 'https://www.example.com/api/message.php';
$data = array('name'=>'fdipzone');
$header = array();
$response = curl_https($url, $data, $header, 5);
echo $response;
?>
更高级实用的代码
function curlPost($url, $data, $timeout = 30)
{
$ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
$ch = curl_init();
$opt = array(
CURLOPT_URL => $url,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_POSTFIELDS => (array)$data,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => $timeout,
);
if ($ssl)
{
$opt[CURLOPT_SSL_VERIFYHOST] = 1;
$opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
}
curl_setopt_array($ch, $opt);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$data = curlPost('https://www.111cn.net', array('p'=>'hello'));
echo ($data);
php内核编写的扩展有两个工作方式
(1). 编译为动态共享对象/可装载模块,也就是常见的 .so扩展,这种扩展可以在php的配置文件中方便的开启或者关闭
(2). 静态编译到php中,使用静态编译方法比较容易上手本文介绍方式
第一种方式:
编写或者下载扩展包
phpize
./configure
make
make install
配置php.ini中的.so文件
第二种方式:
第一步:编译安装php
1. ./configure –prefix=/opt/php56/ –enable-debug –enable-maintainer-zts
2. make
3. make install
4. make clean
这样一个新的php安装在了/opt/php56目录下
php.ini目录:/opt/php56/lib/php.ini
第二步:扩展准备工作
1. PHP在源码中提供了一个扩展骨架构造脚本: ext_skel,脚本放在/usr/local/php-5.6.25/ext目录下。它的使用方式如下:
./ext_skel –extname=mfs –proto=mfs.def
解释一下,–extname明显就是我们要创建的扩展的名称,–proto的proto是prototype的缩写,也就是扩展对外提供的函数原型,可以在这个文件中添加要导出的函数签名,每个函数做一行,这样ext_skel脚本可以自动创建它们的骨架代码。
2. 举个例子,字符串复制函数:
string self_concat(string str, int n)
把这一行保存为mfs.def文件,放在ext文件夹下。
第三步:基本骨架
1. 执行 第二步中的ext_skel命令
此时,/usr/local/php-5.6.25/ext目录下会生成mfs文件夹,并生成一些代码文件和配置文���,php扩展配置文件是/usr/local/php-5.6.25/ext/mfs/config.m4
我们需要打开16行和18行代码的注释,如图:
这样就可以重新生成configure文件可以使用enable-mfs静态编译扩展
第四步:重新生成configure文件,并编译安装php
php安装目录 /usr/local/php-5.6.25
1. ./buildconf –force
2../configure –enable-mfs –prefix=/opt/php56 –with-config-file-path=/opt/php56/lib/php.ini
3. make
4. make install
这样编译的php就带了mfs扩展,并且可以使用def文件中定义的原型函数,但是由于并没有编写函数的具体内容
可以使用/usr/local/php-5.6.25/ext/mfs/mfs.php 进行测试,如下图:
表明脚本已经编译到php了。
第五步:编写扩展函数内容
先看一下有ext_skel脚本自动生成的self_concat函数代码,在ext/mfs/mfs.c:76行
PHP_FUNCTION(self_concat){char *str = NULL;int argc = ZEND_NUM_ARGS();int str_len;long n;if (zend_parse_parameters(argc TSRMLS_CC, “sl”, &str, &str_len, &n) == FAILURE)return;php_error(E_WARNING, “self_concat: not yet implemented”);}
这些代码是一个导出函数的基本框架了。
使用PHPFUNCTION()宏来生成一个适合于Zend引擎的函数原型。其中比较重要的是 zend_parse_parameters 函数,用来获取函数传递的参数;该函数的原型是:
zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, …);
第一个参数是参数的个数,通常使用ZEND_NUM_ARGS()的返回值,TSRMLS_DC这个照写就可以了,第三个参数比较复杂是一个表示函数期望的参数类型的字符串,后面紧跟参数值的变量列表,这里有一个PHP的松散变量和动态类型推断到C语言类型的转换。
第三个参数根据一个参数类型对照表生成:
类型指定符 对应的C类型 描述
l long 符号整数
d double 浮点数
s char *, int 二进制字符串,长度
b zend_bool 逻辑型(1或0)
r zval * 资源(文件指针,数据库连接等)
a zval * 联合数组
o zval * 任何类型的对象
O zval * 指定类型的对象。需要提供目标对象的类类型
z zval * 无任何操作的zval
考虑上面代码的实例:
if (zend_parse_parameters(argc TSRMLS_CC, “sl”, &str, &str_len, &n) == FAILURE)return;
“sl”: 第一个字符s代表二进制字符串,它在后面的参数列表中对应两个值,一个 &str, 一个&strlen;第二个字符’l’(L的小写),表示整数类型参数对应 &n。
扩展中的字符串都是二进制字符串,即并不以\0作为字符串结束,而是使用一个str_len表示字符串长度,具体看_zval结构体。
下面的工作就是修改这个函数了。
完成第一个导出函数
将自动生成的函数更新为:
PHP_FUNCTION(self_concat)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result; /* Points to resulting string */
char *ptr; /* Points at the next location we want to copy to */
int result_length; /* Length of resulting string */
if (zend_parse_parameters(argc TSRMLS_CC, “sl”, &str, &str_len, &n) == FAILURE) {
return;
}
result_length = (str_len * n);
result = (char *) emalloc(result_length + 1);
ptr = result;
while (n–) {
memcpy(ptr, str, str_len);
ptr += str_len;
}
*ptr = ‘\0’;
RETURN_STRINGL(result, result_length, 0);
}
按���上面的方法,重新编译php,也就是第四步重新执行, 就可以在php文件中直接使用slef_concat()函数拼接字符串了。
成功输出拼接的字符串,OK!