导航:首页 > 编程语言 > phpliconv

phpliconv

发布时间:2023-05-29 23:45:09

编译php时make ZEND_EXTRA_LIBS='-liconv'这句命令中ZEND_EXTRA_LIBS='-liconv'起什么作用呢

如果不加make ZEND_EXTRA_LIBS='-liconv' ,在编译php的时候,config可能没有问题,但在make的时候可能出现undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
所以为了解决这个问题,需要使用make ZEND_EXTRA_LIBS='-liconv'

linux系统中设置多版本PHP共存配合Nginx服务器使用

应用环境
LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP
5.2.x,又希望保持现有应用还是用PHP
5.3.8。也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本。
思路
Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。
既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。
配置记录
下面记录简单的配置流程,基于已经安装了lnmp的debian环境。当前版本的PHP是5.3.8,位于/usr/local/php。
1.下载PHP-5.2.14及相关的FPM、autoconf组件:
mkdir
~/php5.2
cd
~/php5.2
wget
-c
http://museum.php.net/php5/php-5.2.14.tar.gz
wget
-c
http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz
2.解压PHP-5.2.14,并打上PHP-FPM的补丁:
tar
zxvf
php-5.2.14.tar.gz
gzip
-cd
php-5.2.14-fpm-0.5.14.diff.gz
|
patch
-d
php-5.2.14
-p1
3.如果你已经通过lnmp安装,应该已经安装好了autoconf,如果没有,请自行下载并编译autoconf-2.13,然后设置autoconf环境变量:
export
PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬
export
PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader
3.编译安装PHP-5.2.14在新的路径(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路径,并且打开fastcgi和fpm选项:
cd
php-5.2.14/
./buildconf
--force
./configure
--prefix=/usr/local/php-5.2.14
--with-config-file-path=/usr/local/php-5.2.14/etc
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--enable-fastcgi
--enable-fpm
make
ZEND_EXTRA_LIBS='-liconv'
make
install
4.设置/usr/local/php-5.2.14/etc/php-fpm.conf,监听端口:
<value
name="listen_address">127.0.0.1:9001</value>
或者监听文件:
<value
name="listen_address">/path/to/unix/socket</value>
其他参数根据服务器环境和需求自行定制。
5.启动php-fpm,以后可以通过php-fpm进行管理:
/usr/local/php-5.2.14/sbin/php-fpm
start
字php5.3.3后,php已经将php-fpm继承到php中,而且内置的php-fpm默认不支持(start|stop|reload)的平滑启动参数,需要使用官方源代码中提供的启动脚本来控制:
cp
-f
(php
-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm
chmod
755
/etc/init.d/php-fpm
/etc/init.d/php-fpm
start
php-fpm支持的操作:
start,启动PHP的FastCGI进程。
stop,强制终止PHP的FastCGI进程。
quit,平滑终止PHP的FastCGI进程。
restart,
重启PHP的FastCGI进程。
reload,
重新加载PHP的php.ini。
logrotate,
重新启用log文件。
5.3.3的php-fpm脚本支持的操作:start|stop|force-quit|restart|reload|status
6.配置好PHP-5.2.14的php.ini,重新加载生效:
vi
/usr/local/php-5.2.14/etc/php.ini
/usr/local/php-5.2.14/sbin/php-fpm
reload
7.修改nginx配置,对需要的服务配置使用PHP-5.2.14:
location
~
.*.(php|php5)?$
{
fastcgi_pass
127.0.0.1:9001;
fastcgi_index
index.php;
include
fcgi.conf;
}
8.记录一下自己编译php5.5.10使用的配置
./configure
--prefix=/usr/local/php-5.5.10
--with-config-file-path=/usr/local/php-5.5.10/etc
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-bz2
--with-curl=/usr/bin
--enable-ftp
--enable-sockets
--disable-ipv6
--with-gd
--with-jpeg-dir=/usr/local
--with-png-dir=/usr/local
--with-freetype-dir=/usr/local
--enable-gd-native-ttf
--with-iconv-dir=/usr/local
--enable-mbstring
--enable-calendar
--with-gettext
--with-libxml-dir=/usr/local
--with-zlib
--with-pdo-mysql=mysqlnd
--enable-dom
--enable-xml
--enable-fpm
--with-libdir=lib64
--with-mcrypt=/usr/bin
--enable-zip
--enable-soap
--enable-mbstring
--with-gd
--with-openssl
--enable-pcntl
--with-xmlrpc
--enable-opcache

❸ php 7.3 /usr/bin/ld: cannot find -liconv 编译一直报这个错.vim Makefile 也添加过-liconv还是报错

首先,你要检查系统是否安装了libiconv,数喊没如果已安装了最新版本,此步忽略;
第二,如果还是报错,可能libiconv.so库文件找不到引起的,编译php时,使用如下薯纳命令:
1、渗羡sh> make ZEND_EXTRA_LIBS='-liconv'
2、修改配置:
sh> cat /etc/ld.so.conf
sh> include ld.so.conf.d/*.conf
sh> echo "/usr/local/lib" >> /etc/ld.so.conf
sh> ldconfig
3、sh> make install

❹ php 用 exec 调用外部命令时,返回 127 错误码是什么意思

编译安装php 的时候, 执行make报错误
make: *** [ext/phar/phar.php] Error 127
解决的方法如下:
#vi /etc/ld.so.conf
在里面加上一行
/usr/local/lib
2.然后运行/sbin/ldconfig
#/sbin/ldconfig
编译make
#make ZEND_EXTRA_LIBS='-liconv'
抛错:
Generating phar.phar
chmod: cannot access `ext/phar/phar.phar': No such file or directory
make: [ext/phar/phar.phar] Error 1 (ignored)

Build complete.
Don't forget to run 'make test'.
此处可以忽略 不过解决办法如下
#cd ext/phar/
#cp ./phar.php ./phar.phar
然后到php5.4文件夹
#make ZEND_EXTRA_LIBS='-liconv'
#make test
#make install

❺ [求助][急!!]php和iconv库交叉编译的问题

可以在-with-iconv-dir= 后面接上你的iconv安装路径 比如 --with-iconv-dir=/usr/local/iconv

❻ php服务器升级怎么写 csdn

服务器类型 CentOS 6.5

因为项目要用到php5.4以上的新功能 目前服务器还是用php5.3.8版本 所以升级版本就非常需要了。


首先 连上服务器 先把 PHP-fpm服务关闭(其实不影响的,因为程序在内存里面跑 不关也没事的) 然后 先把 /usr/local/php 重命名 以防止如果新版本更新失败 回滚


[plain] view plain 在CODE上查看代码片派生到我的代码片

mv /usr/local/php /usr/local/php5.3.8


然后 下载最新版本php5.6.3 并且解压


[plain] view plain 在CODE上查看代码片派生到我的代码片

wget

tar -zxvf php-5.6.3.tar.gz


因为是升级 所以 php很多依赖包我都已经装过了 先贴上我的 configure 配置参数

[plain] view plain 在CODE上查看代码片派生到我的代码片

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=www --with-fpm-group=www --enable-fpm --enable-opcache --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --disable-fileinfo --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-exif --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug


其中 最为注意的是 开启 opcache 可以缓存opcode 提高php性能

还有 --disable-debug --disable-ipv6 关闭 debug ipv6 可以提升性能


第一次make 出错了

[plain] view plain 在CODE上查看代码片派生到我的代码片

ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':

/home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'

collect2: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1


网上找到解决办法

在安装 PHP 到系统中时要是发生“undefined reference to libiconv_open'”之类的错误信息,那表示在“./configure ”没抓好一些环境变数值。错误发生点在建立“-o sapi/cli/php”是出错,没给到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。

然后 重新make 顺利通过了


[plain] view plain 在CODE上查看代码片派生到我的代码片

make clean #清除上次编译生成的 obj文件

make ZEND_EXTRA_LIBS='-liconv'

make install


配置 优化下 php.ini 具体参数可以网络下 都是比较容易理解的

[plain] view plain 在CODE上查看代码片派生到我的代码片

sed -i 's@^output_buffering =@output_buffering = On output_buffering =@' /usr/local/php/etc/php.ini

sed -i 's@^;cgi.fix_pathinfo.*@cgi.fix_pathinfo=0@' /usr/local/php/etc/php.ini

sed -i 's@^short_open_tag = Off@short_open_tag = On@' /usr/local/php/etc/php.ini

sed -i 's@^expose_php = On@expose_php = Off@' /usr/local/php/etc/php.ini

sed -i 's@^request_order.*@request_order = "CGP"@' /usr/local/php/etc/php.ini

sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /usr/local/php/etc/php.ini

sed -i 's@^post_max_size.*@post_max_size = 50M@' /usr/local/php/etc/php.ini

sed -i 's@^upload_max_filesize.*@upload_max_filesize = 50M@' /usr/local/php/etc/php.ini

sed -i 's@^;upload_tmp_dir.*@upload_tmp_dir = /tmp@' /usr/local/php/etc/php.ini

sed -i 's@^max_execution_time.*@max_execution_time = 5@' /usr/local/php/etc/php.ini

sed -i 's@^disable_functions.*@disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen@' /usr/local/php/etc/php.ini

sed -i 's@^session.cookie_httponly.*@session.cookie_httponly = 1@' /usr/local/php/etc/php.ini

sed -i 's@^mysqlnd.collect_memory_statistics.*@mysqlnd.collect_memory_statistics = On@' /usr/local/php/etc/php.ini


刚才装了 opcache 模块 这里设置下

[plain] view plain 在CODE上查看代码片派生到我的代码片

sed -i 's@^

opcache

@[opcache] zend_extension=opcache.so@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.enable=.*@opcache.enable=1@' $php_install_dir/etc/php.ini

sed -i "s@^;opcache.memory_consumption.*@opcache.memory_consumption=128" $php_install_dir/etc/php.ini

sed -i 's@^;opcache.interned_strings_buffer.*@opcache.interned_strings_buffer=8@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.max_accelerated_files.*@opcache.max_accelerated_files=4000@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.revalidate_freq.*@opcache.revalidate_freq=60@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.save_comments.*@opcache.save_comments=0@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.fast_shutdown.*@opcache.fast_shutdown=1@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.enable_cli.*@opcache.enable_cli=1@' $php_install_dir/etc/php.ini

sed -i 's@^;opcache.optimization_level.*@;opcache.optimization_level=0@' $php_install_dir/etc/php.ini


生成下 php-fpm 文件

[plain] view plain 在CODE上查看代码片派生到我的代码片

vim /usr/local/php/etc/php-fpm.conf

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

log_level = notice

[www]

listen = /tmp/php-cgi.sock

listen.backlog = -1

listen.allowed_clients = 127.0.0.1

listen.owner = www

listen.group = www

listen.mode = 0666

user = www

group = www

pm = dynamic

pm.max_children = 10

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 6

request_terminate_timeout = 100

request_slowlog_timeout = 0

slowlog = var/log/slow.log


添加到系统服务

[plain] view plain 在CODE上查看代码片派生到我的代码片

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

chkconfig --add php-fpm

chkconfig php-fpm on


搞定了启动

[plain] view plain 在CODE上查看代码片派生到我的代码片

service php-fpm start

❼ 编译PHP出错:MAKE: *** [EXT/OPENSSL/OPENSSL.LO] ERROR 1

新手在不会编译仔历的情况下可以yum

1、安装PHP5
yuminstallphp
根据提示输入Y直到安装完成
2、举戚链安装PHP组件,使PHP5支持MySQL
yuminstallphp-mysqlphp-gdlibjpeg*php-imapphp-ldapphp-odbcphp-pear正孙php-xmlphp-xmlrpcphp-mbstringphp-mcryptphp-bcmathphp-mhashlibmcrypt

❽ 请教centos php 多版本安装共存切换

Linux下部署php多版本共存
背景说明
自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。
现有环境是lnmp
- CentOS 6.7
- nginx 1.10.1
- mariadb-10.0.26
- php 7.0.8
为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。
开始安装
首先要下载php-5.4.45.tar.gz源码包。
通过源码安装
# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45

# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl

# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-proction /usr/local/php/etc/php.ini

------------------------------------------------------------------------------------------------
php.ini 配置
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
------------------------------------------------------------------------------------------------
php-fpm.conf 配置
------------------------------
# vim /usr/local/php/etc/php-fpm.conf1
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

----------------------------------------------------------------------------------
启动 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm start
-------------------------------------------------------------------------------------------
修改nginx配置,对需要的服务配置使用php-5.4.45
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php54-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
----------------------------------------------------------------------------------------
配置php-5.4.45 的php54-fpm 开机自动启动
# chkconfig --add php54-fpm
# chkconfig php54-fpm on

❾ 一个系统可以两个版本的php并存吗

多版本共存且同时运行,你可以用PHPWAMP8.8.8.8IN版本集成环境
PHPWAMP支持iis、apache、nginx等web服务器,系统环境受损也能正常运行!
并全部支持php多版本同时运行,无限自定义mysql、php版本,同时运行N个php版本都没问题。

-------以下内容摘自今日头条程序员IT快报新闻--------------
PHPWAMP无视VC运行库,无视系统DLL是否完整是否受损,无视系统原因造成的各种PHP环境运行障碍
在电脑系统缺失必备组件或DLL受损的情况下依然能正常运行,不用安装vc,不用在乎系统dll是否完整
数据库文件太大懒得转移?Mysql自定义的妙用,物理转移其他环境mysql版本,轻松实现网站搬家!
Mysql自定义功能可一键吸收xampp、phpstudy、wampserver、apmserv等所有PHP集成环境的Mysql数据库,也可以把Mysql官方全部历史版本收纳,随意切换任何Mysql历史版本,常用工具可以强行修改所有环境的Mysql数据库密码。

升级的“强制清除环境阻碍”功能是历史版本中最简单粗暴的,一键轰掉系统占用80端口以及系统引起的各种异常
三大主流Web服务器分别带有功能强大的站点管理(右键功能更符合UEO)
iis站点一键配置,支持无限个PHP版本同时运行,无限自定义mysqlphp版本,无视VC等系统Dll依赖。
Nginx站点一键配置,支持无限个PHP版本同时运行,无限自定义mysqlphp版本,无视VC等系统Dll依赖。
Apache站点一键配置,支持无限个PHP版本同时运行,无限自定义mysqlphp版本,无视VC等系统Dll依赖。

❿ linux 32位系统 编译php报错

网页链接

源码的一个BUG,可修改源码文件再编译,或者按照链接说的加上 libcrypt库

阅读全文

与phpliconv相关的资料

热点内容
如何云服务器搭建游戏 浏览:560
魔兽猎人宏命令 浏览:432
翁虹电影大全 浏览:990
如何把文件夹改变为安装包 浏览:299
地震勘探pdf 浏览:690
c语言怎样给字符串加密 浏览:583
什么网站可以看剧情 浏览:533
cad图纸空间命令 浏览:136
GRA26K 浏览:479
单片机stm32实验心得体会 浏览:618
php压缩包如何安装 浏览:647
免费看慢网站 浏览:151
外国影片女孩头一次出去上外地 浏览:479
程序员创业接到小程序订单 浏览:392
java复用反编译代码 浏览:552
qq聊天发送的文件在哪个文件夹 浏览:820
代理服务器地址格式是什么意思 浏览:444
苏e行app为什么会有登录过期 浏览:800
杰森坐牢 下象棋是什么电影 浏览:408
苹果相机也么加密 浏览:891