1. php中phar禁用openssl怎么解决
在php.ini中更改openssl的扩展加载状态。今天我也遇到了,是在phpinfo中显示被禁用。觉得是没有正确加载,或者根本没有装上,明天在服务器上试试。
在服务器上测试过之后,将我的方法复述如下;用了两个方法,1:将php安装包里面的ext文件复制到一个你知道的文件夹,或者直接在php.ini中直接更改extension_dir='ext目录'。2:使用yum进行安装yum install openssl。然后在目录下进行/phpize,你找下这个命令的位置,一般在php文件夹下的bin目录里面,用绝对路径执行。
然后在安装目录执行以下命令,生成openssl.so
./configure --with-php-config=/usr/local/php/bin/php-config(php-config文件的路径)
make
make install
将openssl.so复制到PHP扩展文件夹中
修改php.ini中 extesion=openssl.so
中间可能会出现一些依赖软件需要安装,网络一下,yum安装即可
2. phpnow怎么安装ssl证书https访问
您好!
首先进入Gworg申请SSL证书(某淘中可以找到),获得Apache SSL证书。
如果是草根的话,需要耐心的研究了,步骤还是挺复杂的。
PHPnow是指:Apache + PHP + MySQL,所以只需根据Apache环境安装SSL证书。
打开你集成包的文件夹,找到“/php-5.2.x-Win32/php-apache2handler.ini”这文件,随便用记事本打开,查找
;extension=php_openssl.dll
将最前面的分号去掉,改成以下的代码,然后保存
extension=php_openssl.dll
接着重启一下apache哦,重启方法:
打开PHPnow安装根目录,运行PnCp.cmd,输入23后回车,就可以重启apache (选23)
接下来可以参考教程安装:网页链接(下面代码也可以应用)
Listen443(如果配置已经存在就不要加)
LoadMolessl_molemoles/mod_ssl.so(如果配置已经存在就不要加)
NameVirtualHost*:443(非必须,配置多个SSL站点会需要)
<VirtualHost*:443>
ServerNamewww.gworg.cn
ServerAliasgworg.cn
DocumentRoot/var/www/html
SSLEngineon
SSLProtocolall-SSLv2-SSLv3
SSLCertificateFile/etc/ssl/server.crt
SSLCertificateKeyFile/etc/ssl/server.key
SSLCertificateChainFile/etc/ssl/server.ca-bundle
</VirtualHost>
3. PHP7.2 安装openssl扩展报错问题。(centos7.7)
试试重新安装看可行
删除旧版本:yum remove -y openssl openssl-devel 源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装:yum -y install perl perl-devel
1.下载源码包
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
2.解压源码包并进入解压后的目录:
tar zxf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
3.配置并编译安装:
./config -fPIC --prefix=/usr/local/openssl/ enable-shared && make && make install
注释:
--prefix:指定安装目录
-fPIC:编译openssl的静态库
enable-shared:编译动态库
4.加入环境变量,以便方便使用openssl命令:
echo "export PATH=$PATH:/usr/local/openssl/bin" >>/etc/profile
source /etc/profile
5.将库文件路径写入/etc/ld.so.conf文件中,方便调用库文件
echo "include /usr/local/openssl2/lib" >> /etc/ld.so.conf
ldconfig
6.查看openssl命令路径:
which openssl
/usr/local/openssl/bin/openssl
查看版本号:
openssl version -a
4. php开启fsockopen函数
1.方法一:
第一步:
php.ini文件中查找
allow_url_fopen = On
使其值为On
第二步:
php.ini文件中查找
extension=php_openssl.dll
如果前面有分号,去掉分号
第三步:
重启web服务器,apache或IIS
2.还有一种情况,也就是方法二:
1. vi php.ini
找到 allow_url_fopen 这个参数设置成 On,即
allow_url_fopen = On
2. 让你的php支持 opensll扩展。
默认,是没有openssl扩展的,只能重新编译安装。
yum install openssl openssl-devel
cd /usr/local/src/php-5.2.14/ext/openssl
/usr/local/php/bin/phpize
./configure –with-openssl –with-php-config=/usr/local/bin/php-config
make && make install
看提示,把编译成的openssl.so 拷贝到你在php.ini 中指定的 extension_dir 下
3. vi php.ini
加入
extension=openssl.so
4. 重启web server
5. linux已经安装openssl,如何重新编译php支持openssl模块
下载php的源代码,执行三步安装就行了:
./configure
make && sudo make install
sudo make clean
就可以了,然后编辑php.ini文件加入模块支持:
extensions=openssl.so
好了。大工告成~~~
6. 如何在apache上安装SSL证书
一、安装openssl
下载Openssl安装包并解压,推荐使用默认配置 make && make install //编译及安装 ,openssl默认将被安装到/usr/local/ssl。
二、 让apache支持ssl,编译的时候,要指定ssl支持
静态方法即–enable-ssl=static –with-ssl=/usr/local/ssl
动态方法–enable-ssl=shared –with-ssl=/usr/local/ssl
其中第二种方法会在mole/ 目录下生成 mod_ssl.so 模块,而静态不会有,当然第二种方法也需要在httpd.conf 中加入LoadMole ssl_mole moles/mod_ssl.so
三、获取SSL证书
1)创建私钥。在创建证书请求之前,您需要首先生成服务器证书私钥文件。
cd /usr/local/ssl/bin //进入openssl安装目录
openssl genrsa -out server.key 2048 //运行openssl命令,生成2048位长的私钥server.key文件。如果您需要对 server.key 添加保护密码,请使用 -des3 扩展命令。Windows环境下不支持加密格式私钥,Linux环境下使用加密格式私钥时,每次重启Apache都需要您输入该私钥密码(例:openssl genrsa -des3 -out server.key 2048)。
cp server.key /usr/local/apache/conf/ssl.key/
2)生成证书请求(CSR)文件
openssl req -new -key server.key -out certreq.csr
Country Name: //您所在国家的ISO标准代号,中国为CN
State or Province Name: //您单位所在地省/自治区/直辖市
Locality Name: //您单位所在地的市/县/区
Organization Name: //您单位/机构/企业合法的名称
Organizational Unit Name: //部门名称
Common Name: //通用名,例如:www.anxinssl.com。此项必须与您访问提供SSL服务的服务器时所应用的域名完全匹配。
Email Address: //您的邮件地址,不必输入,直接回车跳过
“extra”attributes //以下信息不必输入,回车跳过直到命令执行完毕。
3)备份私钥并提交证书请求
请将证书请求文件certreq.csr提交给安信证书,并备份保存证书私钥文件server.key,等待证书的签发。服务器证书密钥对必须配对使用,私钥文件丢失将导致证书不可用。
四、安装SSL证书
为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(不同品牌证书,可能只有一张中级证书)。
从邮件中获取中级CA证书:
将证书签发邮件中的从BEGIN到 END结束的两张中级CA证书内容(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”)粘贴到同一个记事本等文本编辑器中,中间用回车换行分隔。修改文件扩展名,保存为conf/ssl.crt/intermediatebundle.crt文件(如果只有一张中级证书,则只需要保存并安装一张中级证书)。
五、完成apache配置 2.0的配置
httpd.conf 中增加
Listen443
NameVirtualHost *:443
DocumentRoot “/data/web/www”
ServerName aaa.com:443
ErrorLog “logs/error.log”
CustomLog “logs/access.log” combined
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/intermediatebundle.crt
7. CentOS 5.5 当前apache2.2,PHP5.3,openSSL0.9.8e。现升级op
方法一,重新编译php5.3,记得加上相关openssl的参数,新的php会用上新的openssl。
方法二,下载php5.3对应版本源码
cdphp-5.3.xx/ext/openssl/
mvconfig0.m4config.m4
#你的路径
/path/phpize
#你的路径
./configure--with-openssl--with-php-config=/path/php-config
make
makeinstall
#你的路径
cpopenssl.so/path/extensions/
#viphp.ini
#加入extension=openssl.so
apachectlrestart
ps. 还在用5.3,升级吧,5.6多好啊。
8. 如何在mamp中开启openssl扩展
本教程为Mac OS X自带PHP安装OpenSSL,MAMP请参照*这里*的教程。
1. 当然你可以到OpenSSL的官网下载源代码编译或者通过MacPort安装。不过这里说一个最简单的方法。
*这里*提供.so文件,可以直接下载使用。
.so, a filename extension for "shared object" dynamic library files in Unix
——http://en.wikipedia.org/wiki/So
2. 将.so文件放到/usr/lib/php/extensions/no-debug-non-zts-20090626下。
3. 编辑/private/etc/php.ini,添加extension=openssl.so。如果没有/private/etc/php.ini,也可能是/private/etc/php.ini.default
4. 重启apache:sudo /usr/sbin/apachectl restart
5. 编辑一个phpinfo.php,代码如下:
<?php
phpinfo();
?>
6. 用浏览器通过localhost打开,查看是否有OpenSSL。
7. Have fun!
参考资料:
http://foundationphp.com/tutorials/php_leopard.php
http://jaspan.com/openssl-support-php-under-mamp