php5.3.10的安装配置步骤详解

卢松松博客 关注创业者、自媒体人和站长的网站

在linux中php安装配置与windows中有不小的区别了,在linux中几乎都是代码形式了,下面我们一起来看看php5.3.10的安装配置步骤详解,希望下文可帮助到各位.

下面以最新的php-5.3.10为例进行安装.

  1. wgethttp://cn.php.net/distributions/php-5.3.10.tar.gz
  2. tar-zxvfphp-5.3.10.tar.gz
  3. cdphp-5.3.10
  4. ./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-mcrypt--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-ldap--with-ldap-sasl--with-xmlrpc--enable-zip--enable-soap

上面的具体参数可以使用./configure --help查看.

  1. makeZEND_EXTRA_LIBS='-liconv'
  2. maketest
  3. make&&makeinstall(此处最好分开做,因为make的时候会有报错出现).

我在上面的make时就报了下面的错误:

  1. root/source/php-5.3.10/sapi/cli/php:errorwhileloadingsharedlibraries:libmysqlclient.so.18:cannotopensharedobjectfile:Nosuchfileordirectory
  2. make:***[ext/phar/phar.php]Error127

解决办法是:我的mysql安装目录是/usr/local/msyql,这个视自己的mysql安装路径而定.

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/

64位系统应使用下面的这行:

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

若报下面的错,就是编绎mysql的时候没有加上mysqli这一项,把下面标红的那部分取消掉,重新编绎就行了.

  1. make:***[ext/mysqli/mysqli.lo]Error1
  2. ./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fpm--enable-mbstring--with-mcrypt--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-ldap--with-ldap-sasl--with-xmlrpc--enable-zip--enable-soap

另外,也有报下面错的可能,该问题有可能是没有安装iconv这个编码转换的包,也有可以装了,但是仍有这个错.

  1. sapi/cli/php:errorwhileloadingsharedlibraries:libiconv.so.2:cannotopensharedobjectfile:Nosuchfileordirectory
  2. make[1]:***[install-pear-installer]Error127
  3. make:***[install-pear]Error2

find / -name libiconv.so.2在/usr/lib/libiconv.so.2位置发现libiconv已经安装,于是运行/sbin/ldconfig,再重新编译,不再报上面的错,ldconfig用于加载最新编绎过的包.

注:上面很多需要的包我都是通过通过./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc参数编绎,这样其在默认的目录就能找到该包了.

  1. cpphp.ini-production/usr/local/php/etc/php.ini
  2. cpsapi/fpm/init.d.php-fpm/etc/init.d/php-fpm
  3. cpsapi/fpm/php-fpm.conf/usr/local/php/etc/php-fpm.conf

修改php.ini文件和php-fpm文件中参数,可以手动更改也可以用下面的sed命令更改.

  1. sed-i's#short_open_tag=Off#short_open_tag=On#g'/usr/local/php/etc/php.ini
  2. sed-i's#;pid=run/php-fpm.pid#pid=run/php-fpm.pid#g'/usr/local/php/etc/php-fpm.conf
  3. sed-i's#pm.max_children=5#pm.max_children=32#g'/usr/local/php/etc/php-fpm.conf
  4. sed-i's#pm.start_servers=2#pm.start_servers=16#g'/usr/local/php/etc/php-fpm.conf
  5. sed-i's#pm.min_spare_servers=1#pm.min_spare_servers=8#g'/usr/local/php/etc/php-fpm.conf
  6. sed-i's#pm.max_spare_servers=3#pm.max_spare_servers=32#g'/usr/local/php/etc/php-fpm.conf
  7. sed-i's#;pm.max_requests=500#pm.max_requests=120#g'/usr/local/php/etc/php-fpm.conf--phpfensi.com

php官方也给出了其中所有参数项的解释说明,具体见:http://www.php.net/manual/en/install.fpm.configuration.php

设置开机启动:

  1. chmod755/etc/init.d/php-fpm
  2. chkconfig--addphp-fpm
  3. /etc/init.d/php-fpmstart

至此,php的安装完毕,最后可以再安装一些php的扩展包和开户php加速,具体软件包可以视网上的最新版进行安装:

  1. tarzxvfmemcache-2.2.5.tgz
  2. cdmemcache-2.2.5/
  3. /usr/local/php/bin/phpize
  4. ./configure--with-php-config=/usr/local/php/bin/php-config
  5. make
  6. makeinstall
  7. cd../
  8. tarjxvfeaccelerator-0.9.6.1.tar.bz2
  9. cdeaccelerator-0.9.6.1/
  10. /usr/local//php/bin/phpize
  11. ./configure--enable-eaccelerator=shared--with-php-config=/usr/local/php/bin/php-config
  12. make
  13. makeinstall
  14. cd../
  15. tarzxvfPDO_MYSQL-1.0.2.tgz
  16. cdPDO_MYSQL-1.0.2/
  17. /usr/local/php/bin/phpize
  18. ./configure--with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr/local/mysql
  19. make
  20. makeinstall
  21. cd../
  22. tarzxvfImageMagick.tar.gz
  23. cdImageMagick-6.5.1-2/
  24. ./configure
  25. make
  26. makeinstall
  27. cd../
  28. tarzxvfimagick-2.3.0.tgz
  29. cdimagick-2.3.0/
  30. /usr/local/php/bin/phpize
  31. ./configure--with-php-config=/usr/local/php/bin/php-config
  32. make
  33. makeinstall
  34. cd../

修改php.ini文件

手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = "./",修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

并在此行后增加以下几行,然后保存:

  1. extension="memcache.so"
  2. extension="pdo_mysql.so"
  3. extension="imagick.so"

再查找output_buffering = Off,修改为output_buffering = On,再查找; cgi.fix_pathinfo=0,修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞.

配置eAccelerator加速PHP:

  1. mkdir-p/opt/webserver/eaccelerator_cache
  2. vi/usr/local/php/etc/php.ini

在php.ini配置文件的最末尾,加上以下配置信息:

  1. [eaccelerator]
  2. zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
  3. eaccelerator.shm_size="64"
  4. eaccelerator.cache_dir="/opt/webserver/eaccelerator_cache"
  5. eaccelerator.enable="1"
  6. eaccelerator.optimizer="1"
  7. eaccelerator.check_mtime="1"
  8. eaccelerator.debug="0"
  9. eaccelerator.filter=""
  10. eaccelerator.shm_max="0"
  11. eaccelerator.shm_ttl="3600"
  12. eaccelerator.shm_prune_period="3600"
  13. eaccelerator.shm_only="0"
  14. eaccelerator.compress="1"
  15. eaccelerator.compress_level="9"

php的安全性设置:

找到:;open_basedir =

修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要.

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用.

找到:;date.timezone =

修改为:date.timezone = PRC

找到:expose_php = On

修改为:expose_php = OFF #禁止显示php版本的信息

找到:display_errors = On

修改为:display_errors = OFF #关闭错误提示

关于模块的安装我给各位补充一篇文章

1、静态安装

将先将在安装php之前先将需要安装的程序装上,如ftp、mhash、mcrypt……安装完成后,解压php安装包,执行./configure --with-ftp --with-mhash --wth-mcrypt等等。后面具体跟的参数可以参看./configure --help查看。编译好后,执行make && make install 就行了。

2、动态安装

而在往往我们进行编译php时经常会忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想再重新装php,于是可以采用phpize来动态加载需要安装的模块。

具体实现方法如下(这里以忘记安装pdo_mysql模块为例):

  1. cd/root/source/php-5.3.10/ext/pdo_mysql
  2. /usr/local/php/bin/phpize

在安装完mysql后,并不是进入/root/source/mysql-5.5.21目录运行phpize,而是进入php的源文件中要增加的扩展模块的文件目录---也就是/root/source/php-5.3.10/ext/pdo_mysql目录执行phpize。如果不是这样操作的话就会提示下面的错误:

  1. Cannotfindconfig.m4.
  2. Makesurethatyourun'/usr/local/php/bin/phpize'inthetoplevelsourcedirectoryofthemodule

关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装操作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟,根本不按php官方的文档操作.

目录/root/source/php-5.3.10/ext/pdo_mysql,在运行phpize命令前并没有configure文件,只有config.m4文件,运行phpize就生成了一个可执行的configure文件,此时就可以按照下的方法编译了:

./configure --with-php-config=/usr/bin/php-config (还可以加一些其他的参数,可通过./configure --help查看).

make

make install

编译完成后会提示扩展模块生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目录。

修改php.ini文件

vi /usr/local/php/etc/php.ini

在其文件结尾加入下面的内容:

extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"

extension=pdo_mysql.so

安装完成后,重启php-fpm和web服务器,因为我用的是php-fpm和tengine,如果用的是apache则也重启相应的程序,重新加载就行了.

本文中其实关于加速的部分是错误的,因为当时我测试时,只是把php安装好以后,后面的eaccelerator加速部分是直接复制的原来的安装部分,并未进行测试,后来因为生产环境的需要,进行安装时,发现eaccelerator不支持最新的php5.3.10,于是换成更新速度最快的xcache发现支持.

相关广告
  • php5.3.10的安装配置步骤详解 php5.3.10的安装配置步骤详解 php5.3.10的安装配置步骤详解
相关阅读

php5.3.10的安装配置步骤详解

2019/10/10 17:46:25 | 谷歌SEO算法 | Google