Heim > Backend-Entwicklung > PHP-Tutorial > debian停安装php的一些扩展geoip,mongo,redis,libevent,proctitle,inotify,pcntl

debian停安装php的一些扩展geoip,mongo,redis,libevent,proctitle,inotify,pcntl

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-13 12:35:32
Original
1245 Leute haben es durchsucht

debian下安装php的一些扩展geoip,mongo,redis,libevent,proctitle,inotify,pcntl

因为项目的关系,需要安装一些新的扩展

debian xfce 7.2 x86   下面3个都是通过apt-get安装的。

PHP 5.4.4-14+deb7u5 (cli)

nginx1.2.1

apache 2.2.22

1: 通过默认的方法安装(最优),大部分常用的都在debian的仓库里面,可以下载到  注意,#是代表root 可通过su - 输入密码后进入root

#apt-get install php5-geoip
#apt-get install php-apc
#apt-get install libevent-dev
Nach dem Login kopieren

2:通过pecl 安装(其次)

#pecl install mongo
#pecl install channel://pecl.php.net/libevent-0.1.0
#pecl install channel://pecl.php.net/proctitle-0.1.2
#pecl install inotify
Nach dem Login kopieren


pecl 安装完后,需要做几个事情,一个是把 对应的so文件加到对应的ini,其次是把ini链接到conf.d

比如上面的3个扩展,pecl后 

在debian的

/usr/lib/php5/20100525/mongo.so
/usr/lib/php5/20100525/libevent.so
/usr/lib/php5/20100525/proctitle.so
/usr/lib/php5/20100525/inotify.so
Nach dem Login kopieren

php5在/etc/php5 执行下面的shell命名,这是建立一些配置文件,debian的php的php.ini 把配置文件分散到了/etc/php5/conf.d, 而conf.d 的内容都来自/etc/php5/mods-available/ 为了debian包的严谨,我们这里就作两次链接,而不是直接去conf.d 建对应的.ini 文件.


#echo "extension=mongo.so" > /etc/php5/mods-available/mongo.ini
#echo "extension=libevent.so" > /etc/php5/mods-available/libevent.ini
#echo "extension=proctitle.so" > /etc/php5/mods-available/proctitle.ini
#echo "extension=inotify.so" > /etc/php5/mods-available/inotify.ini
#ln -s /etc/php5/mods-available/mongo.ini /etc/php5/conf.d/mongo.ini
#ln -s /etc/php5/mods-available/libevent.ini /etc/php5/conf.d/libevent.ini
#ln -s /etc/php5/mods-available/proctitle.ini /etc/php5/conf.d/proctitle.ini
#ln -s /etc/php5/mods-available/inotify.ini /etc/php5/conf.d/inotify.ini
Nach dem Login kopieren

重启下nginx的php5-fcgi or apache,可以看到这些模块已经加载成功

3:通过扩展的源码安装(编译安装,对于debian不是很推荐,前提是仓库没有) 安装的是php-redis 扩展

(redis server需要你自己安,编译的环境这些软件参考我前面的文章安装就行了,gcc之类的

#wget https://redis.googlecode.com/files/redis-2.6.14.tar.gz
#tar -zxvf redis
#make
Nach dem Login kopieren

#tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz
#cd nicolasff-phpredis-00233a3
#phpize
#./configure --with-php-config=/usr/bin/php-config
#echo "extension=redis.so" > /etc/php5/mods-available/redis.ini
#ln -s /etc/php5/mods-available/redis.ini /etc/php5/conf.d/redis.ini
Nach dem Login kopieren

同上,需要重启server


4:通过php源码安装(开关某些php默认安装了但是关闭的扩展,这里我们要开启的是pcntl)

#mkdir php
#cd php
#apt-get source php5
Nach dem Login kopieren

  这里我们进去 php5-(版本号)/ext/pcntl 

#cd php5-5.4.4/ext/pcntl
#phpize
#./configure
#make
#echo "extension=pcntl.so" > /etc/php5/mods-available/pcntl.ini
#ln -s /etc/php5/mods-available/pcntl.ini /etc/php5/conf.d/pcntl.ini
Nach dem Login kopieren

同上,重启server就可以了


如果php报错,

PHP Warning: Module ‘pcntl’ already loaded in Unknown on line 0

那就说明已经装上了,现在是重复装的,需要把上面添加的两个pcntl.ini文件删除掉。 然后去把php.ini 文件里面的

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

; 注释掉。重启server就可以了, 注意,php.ini 在apache2,nginx里面都不同的, apache2的在/etc/php5/apache2/php.ini  nginx我指定的是cgi里面的/etc/php5/cgi/php.ini 

看你server用的哪个,就去注释掉哪个就可以了

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage