服務器類型 CentOS 6.5
因為項目要用到php5.4以上的新功能 目前服務器還是用php5.3.8版本 所以升級版本就非常需要了。
首先 連上服務器 先把 php-fpm服務關閉(其實不影響的,因為程序在內存里面跑 不關也沒事的) 然后 先把 /usr/local/php 重命名 以防止如果新版本更新失敗 回滾
mv /usr/local/php /usr/local/php5.3.8
wget http://www.php.net/distributions/php-5.6.3.tar.gztar -zxvf php-5.6.3.tar.gz
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=www --with-fpm-group=www --enable-fpm --enable-opcache --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --disable-fileinfo --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-exif --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug
還有 --disable-debug --disable-ipv6 關閉 debug ipv6 可以提升性能
第一次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
網上找到解決辦法
在安裝 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 clean #清除上次編譯生成的 obj文件make ZEND_EXTRA_LIBS='-liconv'make install
sed -i 's@^output_buffering =@output_buffering = On/noutput_buffering =@' /usr/local/php/etc/php.inised -i 's@^;cgi.fix_pathinfo.*@cgi.fix_pathinfo=0@' /usr/local/php/etc/php.inised -i 's@^short_open_tag = Off@short_open_tag = On@' /usr/local/php/etc/php.inised -i 's@^expose_php = On@expose_php = Off@' /usr/local/php/etc/php.inised -i 's@^request_order.*@request_order = "CGP"@' /usr/local/php/etc/php.inised -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /usr/local/php/etc/php.inised -i 's@^post_max_size.*@post_max_size = 50M@' /usr/local/php/etc/php.inised -i 's@^upload_max_filesize.*@upload_max_filesize = 50M@' /usr/local/php/etc/php.inised -i 's@^;upload_tmp_dir.*@upload_tmp_dir = /tmp@' /usr/local/php/etc/php.inised -i 's@^max_execution_time.*@max_execution_time = 5@' /usr/local/php/etc/php.inised -i 's@^disable_functions.*@disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen@' /usr/local/php/etc/php.inised -i 's@^session.cookie_httponly.*@session.cookie_httponly = 1@' /usr/local/php/etc/php.inised -i 's@^mysqlnd.collect_memory_statistics.*@mysqlnd.collect_memory_statistics = On@' /usr/local/php/etc/php.ini
sed -i 's@^/[opcache/]@[opcache]/nzend_extension=opcache.so@' $php_install_dir/etc/php.inised -i 's@^;opcache.enable=.*@opcache.enable=1@' $php_install_dir/etc/php.inised -i "s@^;opcache.memory_consumption.*@opcache.memory_consumption=128" $php_install_dir/etc/php.inised -i 's@^;opcache.interned_strings_buffer.*@opcache.interned_strings_buffer=8@' $php_install_dir/etc/php.inised -i 's@^;opcache.max_accelerated_files.*@opcache.max_accelerated_files=4000@' $php_install_dir/etc/php.inised -i 's@^;opcache.revalidate_freq.*@opcache.revalidate_freq=60@' $php_install_dir/etc/php.inised -i 's@^;opcache.save_comments.*@opcache.save_comments=0@' $php_install_dir/etc/php.inised -i 's@^;opcache.fast_shutdown.*@opcache.fast_shutdown=1@' $php_install_dir/etc/php.inised -i 's@^;opcache.enable_cli.*@opcache.enable_cli=1@' $php_install_dir/etc/php.inised -i 's@^;opcache.optimization_level.*@;opcache.optimization_level=0@' $php_install_dir/etc/php.ini鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答