ubuntu升级php和安装php扩展
我想说的话:
虽然对已一个运维来说,升级个php安装个扩展是很简单的事情,但我还是把这次升级的过程完整记录下来(每个插件都带有wget下载地址,这是我的初衷),这样再次安装扩展插件时就省事多了,不至于每个插件去趟官网找下载地址。
=======================废话不多说,开始======================
php升级5.3.24到5.4.34
首先查看原版本的php编译参数:
root@develop:~# /usr/local/php/bin/php -i | grep configure./configure '--prefix=/usr/local/php-5.3.24/' \'--with-config-file-path=/usr/local/php-5.3.24/etc' \'--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' \'--with-zlib' '--enable-xml' '--with-curl' '--with-curlwrappers' \'--enable-mbregex' '--enable-mbstring' '--with-openssl' \'--enable-sockets' '--enable-zip' '--disable-ipv6' \'--with-pear' \'--enable-fpm' \'--with-fpm-user=www' \'--with-fpm-group=www' \'--with-mysql=/usr/local/mysql' \'--with-mysqli=mysqlnd' \'--enable-soap' \'--with-pdo-mysql' \'--enable-pcntl' \'--with-gd' '--with-xmlrpc' '--with-iconv' '--with-mcrypt'
升级php要注意php的编译参数要相同。要带上版本号,然后使用软连接访问。
开始升级:
cd /usr/local/src/wget http://cn2.php.net/distributions/php-5.4.34.tar.gztar zxf php-5.4.34.tar.gzcd php-5.4.34./configure '--prefix=/usr/local/php-5.4.34/' \'--with-config-file-path=/usr/local/php-5.4.34/etc' \'--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' \'--with-zlib' '--enable-xml' '--with-curl' '--with-curlwrappers' \'--enable-mbregex' '--enable-mbstring' '--with-openssl' \'--enable-sockets' '--enable-zip' '--disable-ipv6' \'--with-pear' \'--enable-fpm' \'--with-fpm-user=www' \'--with-fpm-group=www' \'--with-mysql=/usr/local/mysql' \'--with-mysqli=mysqlnd' \'--enable-soap' \'--with-pdo-mysql' \'--enable-pcntl' \'--with-gd' '--with-xmlrpc' '--with-iconv' '--with-mcrypt'make
其中make步骤报错如下:
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 statusmake: *** [sapi/cli/php] Error 1
解决:参考:http://blog.csdn.net/sflsgfs/article/details/6318583
在安� 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 make install cd ..
编译完成有如下提示:
Wrote PEAR system config file at: /usr/local/php-5.4.34/etc/pear.conf
You may want to add: /usr/local/php-5.4.34/lib/php to your php.ini include_path
/usr/local/src/php-5.4.34/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.4.34/bin
ln -s -f /usr/local/php-5.4.34/bin/phar.phar /usr/local/php-5.4.34/bin/phar
Installing PDO headers: /usr/local/php-5.4.34/include/php/ext/pdo/
====================升级完成,开始配置php===========================
1) 拷贝源码包目录下的php.ini参考文件到安装目录的etc目录下
cp /usr/local/src/php-5.4.34/php.ini-production /usr/local/php-5.4.34/etc/php.ini
修改php.ini参数(参考已有的5.3.24的php.ini)
2 )配置生产php-fpm配置文件
root@develop:/usr/local/php-5.4.34/etc# pwd/usr/local/php-5.4.34/etcroot@develop:/usr/local/php-5.4.34/etc# cp php-fpm.conf.default php-fpm1.conf
修改 php-fpm1.conf (参考已有的5.3.24的php-fpm1.conf)
3)配置完成后,创建软连接
ln -s /usr/local/php-5.4.34/ /usr/local/php
4 )查看就版本安装的php扩展,为新版本的php安装扩展插件
旧版本安装的php安装扩展如下:
extension=redis.soextension=eaccelerator.so;extension=memcached.soextension=memcache.soextension=gearman.soextension=trie_filter.soextension=mongo.so
======================开始安装php扩展====================
1 redis扩展安装
cd /usr/local/src/wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gztar zxf 2.2.4.tar.gzcd phpredis-2.2.4//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake installcd ..
检查:(出现redis.so表示正确)
ll /usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/
配置php支持:
vim /usr/local/php/etc/php.ini #修改扩展模块路径 extension_dir = "/usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/" # 添加支持 extension="redis.so"
重启php和nginx(最后统一重启)
2 安装eaccelerator插件
cd /usr/local/src/wget https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/mastertar zxf mastercd eaccelerator-eaccelerator-42067ac//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake installcd ..echo 'include /usr/lib/php/modules/*.so' >> /etc/ld.so.conf
修改/usr/local/php/ect/php.ini添加如下配置:
[eaccelerator]zend_extension_ts="/usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"eaccelerator.shm_size="32"eaccelerator.cache_dir="/tmp/eaccelerator"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="0"eaccelerator.shm_prune_period="0"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9"
创建缓存目录:
mkdir -p /tmp/eacceleratorchmod 777 /tmp/eaccelerator
(重启nginx php,最后统一重启)
3 安装memcache.so扩展
cd /usr/local/src/wget http://pecl.php.net/get/memcache-2.2.7.tgztar zxf memcache-2.2.7.tgzcd memcache-2.2.7//usr/local/php/bin/phpize./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dirmakemake installcd ..
(重启nginx php,最后统一重启)
4 安装gearman扩展
cd /usr/local/src/wget http://pecl.php.net/get/gearman-1.1.2.tgztar zxf gearman-1.1.2.tgz cd gearman-1.1.2//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake installcd ..
(重启nginx php,最后统一重启)
5 安装trie_filter扩展:
(该软件不好下载,网络因素) 参考网址:http://www.codeweblog.com/用于检测敏感词的-php-扩展/
cd /usr/local/src/mkdir trie_filtercd trie_filter/wget https://as3chat.googlecode.com/files/trie_filter-2011-03-21.tar.gztar zxf trie_filter-2011-03-21.tar.gz/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake installcd ..
(重启nginx php,最后统一重启)
6 安装mongo扩展
cd /usr/local/src/wget http://pecl.php.net/get/mongo-1.4.5.tgztar zxf mongo-1.4.5.tgzcd mongo-1.4.5//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config makemake installcd ..
7 扩展安装完成检查:
root@develop:/usr/local/src# ll /usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/total 3380drwxr-xr-x 2 root root 4096 Jan 20 15:11 ./drwxr-xr-x 3 root root 4096 Jan 20 14:00 ../-rwxr-xr-x 1 root root 467380 Jan 20 14:13 eaccelerator.so*-rwxr-xr-x 1 root root 302505 Jan 20 14:39 gearman.so*-rwxr-xr-x 1 root root 265098 Jan 20 14:32 memcache.so*-rwxr-xr-x 1 root root 1445848 Jan 20 15:11 mongo.so*-rwxr-xr-x 1 root root 928238 Jan 20 14:00 redis.so*-rwxr-xr-x 1 root root 36722 Jan 20 14:54 trie_filter.so*
8 把已安装的扩展插件添加到php.ini
vim /usr/local/php/etc/php.ini
添加如下配置:
extension=redis.soextension=eaccelerator.so;extension=memcached.soextension=memcache.soextension=gearman.soextension=trie_filter.soextension=mongo.so
9 重启nginx和php
10 调用phpinfo();来检查
升级完毕。

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Notepad++7.3.1
Easy-to-use and free code editor
