php5.6.25源码包(php56下载)
本文目录一览:
- 1、centos6.5 php5.6已经绑定了httpd2.2怎样换httpd2.4
- 2、php源码怎么安装
- 3、请问一个源码说是需要php5.6,我的服务器环境是7.1,是否能用
- 4、PHP的源码包是什么?php的zip压缩包呢?php的windows安装包呢?
- 5、php5.6.25 php_win32api.dll扩展类
- 6、如何获取php扩展库源代码包
centos6.5 php5.6已经绑定了httpd2.2怎样换httpd2.4
目录(?)[-]
一卸载系统自带Apache
1准备工作
2安装Apache24
3将Apache添加成httpd服务并开机自启动
二安装PHP5615
1 源代码安装PHP
2修改PHP的配置文件phpini
3修改Apache配置文件httpdconf相关修改以支持PHP4使用小技巧
三防火墙的管理
可能立刻会有人要问:为啥不装MySQL,这是因为本次项目准备购买云RDS,所以就不在系统中自己安装MySql了。
言归正传,开始安装系统。
一,卸载系统自带Apache
首先我个人觉得应该要卸载掉系统中自带的apache软件:
首先我们检查系统中是否已经安装了httpd服务:
root@server ~]# rpm -qa|grephttpd
httpd-2.2.3-11.el5_2.centos.4
httpd-manual-2.2.3-11.el5_2.centos.4
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,我上面的例子是Linux默认安装apache的rpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。
比如:在这个例子中,我们应该先卸载httpd-manual-2.2.3-11.el5_2.centos.4方法如下:
rpm –ehttpd-manual-2.2.3-11.el5_2.centos.4如果卸载不掉,则会显示软件的依赖关系,则可以删除掉依赖的软件,然后再来卸载当前软件包。
如果实在觉得依赖软件的关系链太长太复杂,则可以强行删除,添加—nodeps参数即可,指令如下:
rpm –ehttpd-manual-2.2.3-11.el5_2.centos.4 --nodeps个人观点:删除掉自带的apache对于今后确认apache出现的问题有好处。
1.1,准备工作
首先要下载所需软件的源码包,有如下这些:
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
pcre-8.36.tar.gz
httpd-2.4.17.tar.gz
PHP-5.6.15.tar.gz
把所有的源码包上传到服务器上。
1.2,安装Apache2.4
首先要安装Apache的依赖库
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
pcre-8.36.tar.gz
tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure--prefix=/usr/local/apr
make make install
tar zxvfapr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake make install
tar zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure --prefix=/usr/local/pcre--with-apr-util=/usr/local/apr-util --with-apr=/usr/local/aprmake make install
安装PCRE的时候遇到如下错误:
You need a C++ compiler forC++ support
解决方案是:
yum install -y gcc gcc-c++
注意:这个-y千万不能少。
可以开始安装Apache了,
解压缩
cd httpd-2.4.17
./configure--prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util--with-pcre=/usr/local/pcre --enable-so --enable-rewritemake make install
注意:之前安装的时候从windows上复制的./configure配置参数,结果中间不知为何多出来一些换行符,导致运行结果出错了,所以大家拷贝指令的时候一定要小心。
【报错】/usr/bin/ld: cannotfind -l*
主要的原因是库文件并没有导入的ld检索目录中比如说我就遇到了如下两个错误:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
这两个错误就表示:libssl.so和libcrypto.so这两个文件并不在ld检索的目录下面。
这两个so文件经过查找,其实就在/usr/local/ssl/lib文件夹下面,并且/usr/local/ssl/lib也已经存在于ld的配置文件中:/etc/ld.so.conf文件。但是就是没有起作用。
我的解决方案是:我没有去学习ld的工作机制,我在ld默认的Lib检查目录之一的/usr/local/lib中增加了以上两个so文件的外链,指令如下:
cd /usr/local/lib
ln -sv/usr/local/ssl/lib/libssl.so libssl.soln -sv/usr/local/ssl/lib/libcrypto.so libcrypto.so这样的话,apahce的报错问题就解决了。
1.3,将Apache添加成httpd服务并开机自启动
如果没有httpd 服务的时候,每次启动都要运行如下指令:
/usr/local/apache/bin/apachectl start
好难受的说,下面就将httpd装到服务中,同理也可以用到其他服务的操作。
1.将apachectl文件copy一分到/etc/rc.d/init.d中,然后再/etc/rc.d/rc5.d中加入链接。
其中init.d中的脚本就相当于window中的注册表,在系统启动的时候某些指定的脚本被执行。而rc5.d就和rc3.d差不多吧。也都是一些脚本只是执行级别不同。
命令如下:
cp/usr/local/apache/bin/apachectl /etc/init.d/httpdln -s /etc/init.d/httpd/etc/rc.d/rc5.d/S85httpd2.运行chkconfig --list 发现列表中没有httpd,通过chkconfig --add httpd来添加,可能会提示httpd服务不支持chkconfig,需要编辑/etc/rc.d/init.d/httpd在第二行添加以下注视信息:
# chkconfig: 345 85 15
# description:Activates/Deactivates Apache Web Server345代表哪些linux级别需要启动httpd,启动序号是85,关闭序号是15。
保存以后执行 chkconfig --addhttpd 添加成功3.运行chkconfig --list httpd 基本就存在了。然后就可以用了。service httpd start 和 service httpd stop二,安装PHP5.6.15
2.1 源代码安装PHP
解压缩
Cd php-5.6.15
配置参数太复杂于是去网上找了一个大牛的推荐,如下:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-libxml-dir=/usr/include/libxml2 --with-config-file-path=/usr/local/apache2/conf--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config--with-gd--enable-gd-native-ttf --with-zlib--with-mcrypt--with-pdo-mysql=/usr/local/mysql --enable-shmop --enable-soap--enable-sockets--enable-wddx --enable-zip --with-xmlrpc --enable-fpm--enable-mbstring--with-zlib-dir --with-bz2 --with-curl --enable-exif--enable-ftp--with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib--with-freetype-dir=/usr/lib/于是乎遇到了一系列的报错,推荐我之前的一篇文章介绍了常见错误的解决办法:
我遇到的问题如下:
【报错】configure errorxml2-config not found. please check your libxml2 installation解决方案:
Centos: yum install libxml2
yum install libxml2-devel -y
【报错】Configure: error:Please reinstall the BZip2 distribution解决方案:
centos: yum install bzip2bzip2-devel
debian: apt-get installbzip2-devel
【报错】
configure: error: Pleasereinstall the libcurl distribution -easy.h should beincurl-dir/include/curl/解决方案:
centos: yum install curlcurl-devel (For Redhat Fedora)【报错】
configure: error: mcrypt.hnot found. Please reinstalllibmcrypt.
解决方案:
网上大部分给的方法是使用如下指令
yum install libmcryptlibmcrypt-devel (For Redhat Fedora)但是基本上都没有作用,系统甚至会提示:nothingto do。估计可能和YUM源的软件版本太低有关系。
正确做法是自己下载源码来安装:
libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
#编译(默认安装到/usr/local/lib/)
./configure--prefix=/usr/local/libmcrypt
#执行安装
make make install
注意:这里的安装路径要记住,等会安装PHP的时候会用到。
继续回到PHP的安装,此时的配置参数修改为:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-libxml-dir=/usr/include/libxml2--with-config-file-path=/usr/local/apache2/conf--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-gd --enable-gd-native-ttf--with-zlib --with-pdo-mysql=/usr/local/mysql--enable-shmop --enable-soap--enable-sockets --enable-wddx --enable-zip--with-xmlrpc --enable-fpm--enable-mbstring --with-zlib-dir --with-bz2--with-curl --enable-exif--enable-ftp --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib--with-freetype-dir=/usr/lib/--with-mcrypt=/usr/local/libmcrypt修改内容是:
去掉了--with-mcrypt,在最后增加了--with-mcrypt=/usr/local/libmcrypt【报错】configure: error:libjpeg.(a|so) not foundconfigure: error: png.h not found.
解决方法:
关于jpeg的问题,安装如下软件包
yum -y install libjpeg-devel
关于png的问题,安装如下软件包
yum -y install libpng-devel
【报错】
configure: error: Cannot findMySQL header files under/usr/local/mysql.
Note that the MySQL clientlibrary is not bundled anymore!
这个问题是因为没有安装mysql,所以找不到mysql的运行库。
但是本次安装本身就不想安装完整的mysql软件,去php官网查了资料后找到如下一段翻译文字:
“对于 php-5.3.0或更新版本,mysqli 默认使用Mysql Native Driver作为驱动。 这个驱动比libmysql会有一些优势, --with-mysql=mysqlnd”
最终configure参数修改为:
./configure--prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs--with-libxml-dir=/usr/include/libxml2--with-config-file-path=/usr/local/apache2/conf --with-mysql=mysqlnd--with-mysqli=mysqlnd --with-gd --enable-gd-native-ttf --with-zlib--with-pdo-mysql=mysqlnd --enable-shmop --enable-soap --enable-sockets--enable-wddx --enable-zip --with-xmlrpc --enable-fpm --enable-mbstring --with-zlib-dir --with-bz2 --with-curl--enable-exif --enable-ftp --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib--with-freetype-dir=/usr/lib/ --with-mcrypt=/usr/local/libmcrypt注意:上面红色标记出来的目录就是后面php.ini需要放置的目录。
到此终于把PHP的configure成功通过。
make 和 makeinstall。PHP安装完毕。
2.2,修改PHP的配置文件php.ini
进入php源码目录,选择php.ini-development复制一份到/usr/local/apache2/conf,并改名为php.ini使用vi打开,查找extension_dir,修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226",读者根据自己的PHP安装目录结构配置,目的是找到PHP的扩展库。
查找extension=php_,去掉extension=php_curl.dll,extension=php_gd2.dll,extension=php_mbstring.dll,extension=php_mysql.dll,extension=php_mysqli.dll,extension=php_pdo_mysql.dll,extension=php_xmlrpc.dll前面 的分号。查找short_open_tag= Off把它修改成short_open_tag = On,让其支持短标签(我看注释这个默认是打开的)。
从别人的服务器上我还拷贝了如下文件放到
/usr/local/php/lib/php/extensions/no-debug-zts-20131226目录,文件如下:
Imap.so
Mcrypt.so
Memcache.so
Openssl.so
Zip.so
然后在php.ini的最后增加如下配置文字:
extension=memcache.so
extension=openssl.so
extension=mcrypt.so
extension=zip.so
2.3,修改Apache配置文件httpd.conf相关修改以支持PHPvi/usr/local/apache/conf/httpd.conf
? 添加php支持。
【添加字段一】
AddTypeapplication/x-httpd-php .php .phtmlAddType application/x-httpd-php-source.phps【添加字段二】
FilesMatch \.php$
SetHandlerapplication/x-httpd-php
/FilesMatch
? 添加默认索引页面index.php,再找到“DirectoryIndex”,在index.html后面加上“ index.php”
DirectoryIndex index.htmlindex.php
? 3. 不显示目录结构,找到“Options Indexes FollowSymLinks”,修改为Options FollowSymLinks
? 4. 开启Apache支持伪静态,找到“AllowOverride None”,修改为AllowOverride All
重启Apache
service httpd restart
提醒:实在不知道怎么配置,就找个已经搭建成功的服务器把配置文件弄过来对比一下。
此时还会遇到如下报错:
httpd: Could not reliablydetermine the server's fully qualified domain name解决办法:
linux :/usr/local/apache/conf
用记事本打开httpd.conf
将里面的#ServerNamelocalhost:80注释去掉即可。
【报错】:我也曾经配置成了ServerName127.0.0.1:80,结果局域网其他电脑就没法访问了,原因不清楚。
到此,整个Apache+PHP5.6的环境搭建完毕。
2.4,使用小技巧
【查看Apache的版本号】
运行apache安装目录下的/bin/httpd -v,具体实践后的指令是:
#进入apache安装目录
#cd /usr/local/apache2/bin
#./httpd -v
Server version: Apache/2.4.17(Unix)
Server built: Feb 23 2016 15:21:50
三,防火墙的管理
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
php源码怎么安装
只要虚拟主机说明是支持PHP的就不用安装,如果不支持,那就要联系网管看能不能安装,不然的话你只好做搬家的准备了。
如果确认了虚拟主机是支持PHP的,你只要把源码上传到空间即可,某些自安装的源码包是带有自动拆包安装程序的,看一下说明就行。
请问一个源码说是需要php5.6,我的服务器环境是7.1,是否能用
如果代码不是zend加密的,一般来说是可以的,有问题也是小问题,可以很方便地修改。
zend加密不支持php7 ,加密过的代码要根据加密方式运行在对应的版本上(ZendOptimizer 或 ZendGuard)。由于PHP7优化了底层的代码缓存模式,导致zend的加密逻辑无法匹配了。
PHP的源码包是什么?php的zip压缩包呢?php的windows安装包呢?
源码包是一些C程序,编译后得到PHP.EXE等可以使用的程序,一般我们都不要这个,骨灰级玩家才用。
ZIP包最好,就是所谓的绿色、免安装,任意解压缩到一个文件夹就可以了。
还有一种是MSI安装包,许多人喜欢这个,鼠标双击之后,会不断的“下一步”完成安装和设置,初学者喜欢这个。
你编写的代码是不可能编译为HTML的,因为HTML是静态固定的,而PHP的魅力是动态网页。
php5.6.25 php_win32api.dll扩展类
一、准备工作上pkgs/download/nginx-1/download/nginx-1206/get/php-5.4.14.tar.gz/from/this/mirror// 解压[root@pangou php]# tar -zxvf php-5.4.14.tar.gz安装依赖包[root@pangou php]# yum install -y libxml2-devel libjpeg-devel libpng-devel freetype-devel openssl-devel libcurl-devel libmcrypt-devel编译php[root@pangou php]# lsphp-5.4.14 php-5.4.14.tar.gz[root@pangou php]# cd php-5.4.14[root@pangou php-5.4.14]# pwd/root/Downloads/php/php-5.4.14[root@pangou php-5.4.14]# lsacinclude.m4 CREDITS ltmain.sh NEWS README.MAILINGLIST_RULES README.TESTING stamp-h.inaclocal.m4 ext main pear README.namespaces README.TESTING2 stub.cbuild EXTENSIONS makedist php5.spec.in README.NEW-OUTPUT-API README.UNIX-BUILD-SYSTEM svnclean.batbuildconf footer Makefile.frag php.gif README.PARAMETER_PARSING_API README.WIN32-BUILD-SYSTEM testsbuildconf.bat generated_lists Makefile.gcov php.ini-development README.PHP4-TO-PHP5-THIN-CHANGES run-tests.php TSRMCODING_STANDARDS genfiles Makefile.global php.ini-production README.REDIST.BINS sapi UPGRADINGconfig.guess header makerpm README.EXTENSIONS README.RELEASE_PROCESS scripts UPGRADING.INTERNALSconfig.sub INSTALL missing README.EXT_SKEL README.SELF-CONTAINED-EXTENSIONS server-tests-config.php vcscleanconfigure install-sh mkinstalldirs README.GIT-RULES README.STREAMS server-tests.php win32configure.in LICENSE netware README.input_filter README.SUBMITTING_PATCH snapshot Zend[root@pangou php-5.4.14]# ./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --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 --without-pear --with-gettext --with-mime-magic// 编译时间可能有点长。。。// 编译成功后,安装[root@pangou php-5.4.14]# make make install// 安装时间也比较长安装成功后,php的位置就应该在/opt/php目录下,接下去就是配置// 复制配置文件到配置目录下[root@pangou php-5.4.14]# cp /root/Downloads/php/php-5.4.14/php.ini-production /opt/php/etc/php.ini[root@pangou php-5.4.14]# cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf[root@pangou php-5.4.14]# cd /opt/php/etc/[root@pangou etc]# lsphp-fpm.conf php-fpm.conf.default php.ini// 然后配置nginx的配置文件,让其可以运行php[root@pangou etc]# cd /opt/nginx/conf/[root@pangou conf]# lsfastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utffastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default[root@pangou conf]# vim nginx.conf1、去掉 #user nobody; 的#号, 变成 user nobody;2、去掉#location ~ .php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}之前的#号,并修改fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;为fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;最终修改后的内容为:location ~ .php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;include fastcgi_params;}重启nginx服务,并开启php-fpm[root@pangou ~]# /opt/nginx/sbin/nginx[root@pangou ~]# /opt/php/sbin/php-fpm// 创建phpinfo文件[root@pangou ~]# vim /opt/nginx/html/phpinfo.php内容为phpinfo();?访问127.0.0.1/phpinfo.php安装成功。mysql,mysqli等扩展都有。这边有一点偷懒,并没有编译安装mysql,而是使用yum安装的mysql。
如何获取php扩展库源代码包
您需要告诉构建系统在编译时链接到共享库。这允许依赖项存储在已编译的PHP扩展中,在第一次使用时将加载它。
为此,您需要修改config.m4以添加库。你可以通过PHP_ADD_LIBRARY宏来做到这一点。此宏将一个库添加到链接行并具有该表单PHP_ADD_LIBRARY($name,$append,$var)。第一个参数是库的名称; 这是*.so没有lib前缀的文件的名称(例如xxx)。第二个参数确定(我推测)是否附加或覆盖该行; 这应该通常设置为1。最后一个参数是存储该行的变量名称。必须将此变量替换为输出文件PHP_SUBST。
您应该将PHP_ADD_LIBRARY行放在文件中PHP_NEW_EXTENSION宏之前的某个位置config.m4。另外,PHP_ADD_LIBRARY在PHP_CHECK_LIBRARY电话中打包是个好主意。这可确保构建系统在添加库之前找到库。请参阅下面的示例。
这是另一个类似于你的SO问题。它有一些你可以遵循的工作实例。另外,我将在这里包含一个简单示例:
PHP_CHECK_LIBRARY(xxx,xxxfunction,[
PHP_ADD_LIBRARY(xxx,1,XXX_SHARED_LIBADD)],[
AC_MSG_ERROR([Please install libxxx on the system])],[])PHP_SUBST([XXX_SHARED_LIBADD])
注意:第二个参数PHP_CHECK_LIBRARY是一个函数,构建系统将检查它是否找到给定的库。