欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


linux下查看nginx、apache、mysql、php的编译参数
人生壁纸带你一同踏青
Win10系统如何清理旧系统备份文件Windows.old
Win10系统 9926预览版运行Steam崩溃的处理方法
Mac OS X如何校验文件的SHA1值以解决文件缺失问题
WinXP如何自动清理Temp文件夹以提高系统运行速度
Win10 Microsoft管理控制台停止工作的解决方法
要的就是独一无二,人生壁纸随你换
迅雷七招使用技巧
XP系统强制删除视频文件的几种可行方法
php5.3.10的安装配置步骤详解
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

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

  wget http://cn.php.net/distributions/php-5.3.10.tar.gz

  tar -zxvf php-5.3.10.tar.gz

  cd php-5.3.10

  ./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查看

  make ZEND_EXTRA_LIBS='-liconv'

  make test

  make && make install (此处最好分开做,因为make的时候会有报错出现。)

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

  root/source/php-5.3.10/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

  make: *** [ext/phar/phar.php] Error 127

  解决办法是(我的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这一项,把下面标红的那部分取消掉,重新编绎就行了。

  make: *** [ext/mysqli/mysqli.lo] Error 1

  ./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这个编码转换的包,也有可以装了,但是仍有这个错。

  sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

  make[1]: *** [install-pear-installer] Error 127

  make: *** [install-pear] Error 2

  find / -name libiconv.so.2在/usr/lib/libiconv.so.2位置发现libiconv已经安装。

  于是运行/sbin/ldconfig,再重新编译,不再报上面的错。ldconfig用于加载最新编绎过的包。

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

  cp php.ini-production /usr/local/php/etc/php.ini

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

  cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf

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

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

  sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php/etc/php-fpm.conf

  sed -i 's#pm.max_children = 5#pm.max_children = 32#g' /usr/local/php/etc/php-fpm.conf

  sed -i 's#pm.start_servers = 2#pm.start_servers = 16#g' /usr/local/php/etc/php-fpm.conf

  sed -i 's#pm.min_spare_servers = 1#pm.min_spare_servers = 8#g' /usr/local/php/etc/php-fpm.conf

  sed -i 's#pm.max_spare_servers = 3#pm.max_spare_servers = 32#g' /usr/local/php/etc/php-fpm.conf

  sed -i 's#;pm.max_requests = 500#pm.max_requests = 120#g' /usr/local/php/etc/php-fpm.conf

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

  设置开机启动

  chmod 755 /etc/init.d/php-fpm

  chkconfig --add php-fpm

  /etc/init.d/php-fpm start

  至此,php的安装完毕。

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

  tar zxvf memcache-2.2.5.tgz

  cd memcache-2.2.5/

  /usr/local/php/bin/phpize

  ./configure --with-php-config=/usr/local/php/bin/php-config

  make

  make install

  cd ../

  tar jxvf eaccelerator-0.9.6.1.tar.bz2

  cd eaccelerator-0.9.6.1/

  /usr/local//php/bin/phpize

  ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config

  make

  make install

  cd ../

  tar zxvf PDO_MYSQL-1.0.2.tgz

  cd PDO_MYSQL-1.0.2/

  /usr/local/php/bin/phpize

  ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql

  make

  make install

  cd ../

  tar zxvf ImageMagick.tar.gz

  cd ImageMagick-6.5.1-2/

  ./configure

  make

  make install

  cd ../

  tar zxvf imagick-2.3.0.tgz

  cd imagick-2.3.0/

  /usr/local/php/bin/phpize

  ./configure --with-php-config=/usr/local/php/bin/php-config

  make

  make install

  cd ../

  修改php.ini文件

  手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = "./"

  修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

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

  extension = "memcache.so"

  extension = "pdo_mysql.so"

  extension = "imagick.so"

  再查找output_buffering = Off

  修改为output_buffering = On

  再查找; cgi.fix_pathinfo=0

  修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞。

  配置eAccelerator加速PHP:

  mkdir -p /opt/webserver/eaccelerator_cache

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

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

  [eaccelerator]

  zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"

  eaccelerator.shm_size="64"

  eaccelerator.cache_dir="/opt/webserver/eaccelerator_cache"

  eaccelerator.enable="1"

  eaccelerator.optimizer="1"

  eaccelerator.check_mtime="1"

  eaccelerator.debug="0"

  eaccelerator.filter=""

  eaccelerator.shm_max="0"

  eaccelerator.shm_ttl="3600"

  eaccelerator.shm_prune_period="3600"

  eaccelerator.shm_only="0"

  eaccelerator.compress="1"

  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模块为例):

  cd /root/source/php-5.3.10/ext/pdo_mysql

  /usr/local/php/bin/phpize

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

  Cannot find config.m4.

  Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

  关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装操作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟。根本不按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发现支持。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站