centosphpmysqlnd的簡單介紹

本文目錄一覽:

請教centos php 多版本安裝共存切換

Linux下部署php多版本共存

背景說明

自php7問世,身為最新版本控的我馬上升級體驗,但是由於伺服器上還有舊程序在運行,只好部署一個php多版本共存環境。

現有環境是lnmp

– CentOS 6.7

– nginx 1.10.1

– mariadb-10.0.26

– php 7.0.8

為了更好兼容舊的php程序,推薦使用5.4.45. 主要是兼容mysql擴展。

開始安裝

首先要下載php-5.4.45.tar.gz源碼包。

通過源碼安裝

# tar xzvf php-5.4.45.tar.gz

# cd php-5.4.45

# ./configure –prefix=/usr/local/php54 –with-config-file-path=/usr/local/php54/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir=/usr/local/freetype –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –with-gettext –disable-fileinfo –enable-intl –with-xsl

# make ZEND_EXTRA_LIBS=’-liconv’

# make install

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

————————————————————————————————

php.ini 配置

post_max_size = 50M

upload_max_filesize = 50M

date.timezone = PRC

short_open_tag = On

cgi.fix_pathinfo=0

max_execution_time = 300

disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

————————————————————————————————

php-fpm.conf 配置

——————————

# vim /usr/local/php/etc/php-fpm.conf1

[global]

pid = /usr/local/php54/var/run/php-fpm.pid

error_log = /usr/local/php54/var/log/php-fpm.log

log_level = notice

[www]

listen = /tmp/php54-cgi.sock

listen.backlog = -1

listen.allowed_clients = 127.0.0.1:9001

listen.owner = www

listen.group = www

listen.mode = 0666

user = www

group = www

pm = dynamic

pm.max_children = 40

pm.start_servers = 20

pm.min_spare_servers = 20

pm.max_spare_servers = 40

request_terminate_timeout = 100

request_slowlog_timeout = 0

slowlog = var/log/slow.log

———————————————————————————-

啟動 php-fpm

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

# chmod +x /etc/init.d/php54-fpm

# /etc/init.d/php54-fpm start

——————————————————————————————-

修改nginx配置,對需要的服務配置使用php-5.4.45

location ~ [^/]\.php(/|$)

{

try_files $uri =404;

fastcgi_pass unix:/tmp/php54-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

—————————————————————————————-

配置php-5.4.45 的php54-fpm 開機自動啟動

# chkconfig –add php54-fpm

# chkconfig php54-fpm on

centos 6.0安裝php-5.2.17報錯: 前提是mysql已經安裝,已經成功啟動OK

1、no mysql_config not found configure: error

2、你的配置

–with-mysql=/usr/local/mysql

–with-mysqli=/usr/local/mysql/bin/ mysql_config 查查這個地方,似乎有個空格

–with-mysql-sock=/tmp/mysql.sock

3、確認已經安裝mysql-devel

rpm -qa|grep mysql-devel

4、如果php5.3可以用mysqlnd (MySQL native driver for PHP)

–with-mysql=mysqlnd \

–with-mysqli=mysqlnd \

–with-pdo-mysql=mysqlnd

centos的php7怎麼安裝memcached擴展

最近試了一下PHP7,在編譯和支持MySQL上都遇到一些問題,相信不少同學也同樣遇到,所以在這裡聊一下這個過程。簡單來講編譯PHP7隻需要3步:1、./buildconf –force2、./configure3、make make install1、3步,都沒啥好管的,configure是編譯的關鍵,涉及到PHP對一些庫的支持,這裡我們使用最小的支持,包括MySQL:curlgdfpmmysqlnd之所以把curl和gd拿來說,目的是要搞清楚,這些三方庫在編譯PHP之前得安裝好,可以直接使用yum安裝在默認位置,也可以編譯安裝到指定位置,yum安裝後,編譯時不用指定庫的安裝位置,關於安裝這些庫,可以搜索一下有很多。下面看看基本的configure./configure –prefix=/apps/php/php7.0 –enable-mbstring –with-curl –with-gd –with-config-file-path=/apps/php/php7.0/etc/ –enable-fpm –enable-mysqlnd –with-pdo-mysql=mysqlndPHP-FPM關於fpm,相信不用多說,用它來支持PHP是一個比較好的選擇,PHP5.3.3開始就已經內置了php-fpm,所以PHP7里當然也有,只需要–enable-fpm一下就可以了php-fpm參數:–start 啟動–stop 強制終止–quit 平滑終止–restart 重啟–reload 重新平滑載入php的php.ini–logrotate 重新啟用log文件MySQL支持重點講一下這個,因為在它上面花了一點時間,不知道從哪一版本開始,PHP不在希望使用mysql的庫來支持mysql的連接,啟用了mysqlnd來支持,聽說比libmysql要快很多,PHP5.x還可以使用libmysql,PHP7貌似已經取消了支持,編譯都沒有了–with-mysql參數,只支持–with-mysqli和–with-pdo-mysql,可以通過查看configure的參數來知道:./configure -help grep mysql 可以看到,PHP希望使用mysqlnd來支持MySQL,所以參數可以這樣寫:–enable-mysqlnd–with-mysqli=mysqlnd–with-pdo-mysql=mysqlndmysqlnd是不需要mysql支持的,所以不用先安裝好mysql一樣可以編譯通過,啟動php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已經可以支持mysql了(這裡用的是pdo,mysqli同理)幾個問題編譯問題:cc: Internal error: Killed (program cc1)這個問題是第一次遇到,原來是我的阿里雲伺服器關掉了swap,內存不夠用,就報了這個錯。 解決辦法很簡單,configure時加上–disable-fileinfo參數就可以了。PHP報找不到mysql服務正如它所說,確實沒找到,看看phpinfo中pdo_mysql.default_socket項mysql.sock在哪裡,再看一下mysql.sock的真正位置,使用命令:ps -efgrep mysql查看:明顯不在一個位置上,我的正確位置是:/var/lib/mysql/mysql.sock所以,修改一下php.ini,找到pdo_mysql.default_socket,改為你的實際位置,重啟一下php-fpm,很不幸,雖然php.ini有這個配置,修改後,竟然不行,最好是編譯的時候,指定mysql.socket的位置:–with-mysql-sock=/var/lib/mysql/mysql.sock 如果還不行,可以到/tmp目錄下建立一個mysql.sock的軟鏈接:ln -s /var/lib/mysql/mysql.sock mysql.sock 再重啟一次php-fpm,相信已經正常運行了。如果需要PHP支持的庫更多,可以再次編譯,在configure時把需要的支持加上,就是–with-xxx這中,記得如果是三方的,要先安裝這些庫才行哦。

原創文章,作者:CQKA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132152.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CQKA的頭像CQKA
上一篇 2024-10-03 23:50
下一篇 2024-10-03 23:50

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進位下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27

發表回復

登錄後才能評論