<em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

<progress id="1rarx"><tr id="1rarx"></tr></progress>
<sup id="1rarx"><menu id="1rarx"></menu></sup>
<menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

    <sup id="1rarx"><menu id="1rarx"></menu></sup>
    <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
      <em id="1rarx"></em>

          首頁 > nginx > nginx php-fpm安裝配置

          nginx php-fpm安裝配置

          2012年9月21日 發表評論 閱讀評論

          nginx本身不能處理PHP,它只是個web服務器,當接收到請求后,如果是php請求,則發給php解釋器處理,并把結果返回給客戶端。

          nginx一般是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果并返回被nginx

          本文以php-fpm為例介紹如何使nginx支持PHP

          一、編譯安裝php-fpm

          什么是PHP-FPM

          PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下載得到.

          PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。

          新版PHP已經集成php-fpm了,不再是第三方的包了,推薦使用。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,比spawn-fcgi具有更多優點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM,其它參數都是配置php的,具體選項含義可以查看這里

          安裝前準備
          centos下執行

          新版php-fpm安裝(推薦安裝方式)

          舊版手動打補丁php-fpm安裝(舊版程序已經沒有了,大家新版的吧,這里做個展示)
          wget http://cn2.php.net/get/php-5.2.17.tar.gz
          wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
          tar zvxf php-5.2.17.tar.gz
          gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
          cd php-5.2.17
          ./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-openssl -enable-fpm -enable-mbstring
          -with-freetype-dir -with-jpeg-dir -with-png-dir -with-zlib-dir -with-libxml-dir=/usr -enable-xml
          -with-mhash -with-mcrypt -enable-pcntl -enable-sockets ?-with-bz2 -with-curl -with-curlwrappers
          -enable-mbregex -with-gd -enable-gd-native-ttf -enable-zip -enable-soap -with-iconv -enable-bcmath
          -enable-shmop -enable-sysvsem -enable-inline-optimization -with-ldap -with-ldap-sasl -enable-pdo
          -with-pdo-mysql
          make all install

          以上兩種方式都可以安裝php-fpm,安裝后內容放在/usr/local/php目錄下

          以上就完成了php-fpm的安裝。

          下面是對php-fpm運行用戶進行設置

          修改
          user = www-data
          group = www-data

          如果www-data用戶不存在,那么先添加www-data用戶
          groupadd www-data
          useradd -g www-data www-data

          二、編譯安裝nginx

          然后按照http://www.4693749.com/install?安裝nginx

          三、修改nginx配置文件以支持php-fpm

          nginx安裝完成后,修改nginx配置文件為,nginx.conf

          其中server段增加如下配置,注意標紅內容配置,否則會出現No input file specified.錯誤

          # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
          #
          location ~ .php$ {
          root html;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
          }

          四、創建測試php文件

          創建php文件

          在/usr/local/nginx/html下創建index.php文件,輸入如下內容

          五、啟動服務

          啟動php-fpm和nginx

          php-fpm關閉重啟見文章結尾

          六、瀏覽器訪問

          訪問http://你的服務器ip/index.php,皆可以見到php信息了。

          安裝php-fpm時可能遇到的錯誤:

          1. php configure時出錯

          configure: error: XML configuration could not be found

          2. Please reinstall the BZip2 distribution

          3.?php的配置文件中有一行--with-mysql=/usr
          安裝的時候提示:
          configure: error: Cannot find MySQL header files under yes.
          Note that the MySQL client library is not bundled anymore.

          這是由于安裝mysql時沒有安裝mysql頭文件,或者是路徑指定不正確,php找不到mysql的頭文件引起的錯誤提示。
          解決方法。
          (1.) 查看你的系統有沒有安裝mysql header
          find / -name mysql.h
          如果有。請指定--with-mysql=/跟你的正常路徑。
          如果沒有。請看下一步。
          (2.)redhat安裝
          rpm -ivh MySQL-devel-4.1.12-1.i386.rpm
          (3.)ubuntu安裝
          apt-get install libmysqlclient15-dev
          (4.)最后一步php的配置選項添加--with-mysql=/usr即可!

          4.No input file specified.

          location ~ .php$ {
          root html;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
          }

          5.?如果php configure時缺庫,可以先安裝庫(ubuntu下)

          sudo apt-get install make bison flex gcc patch autoconf subversion locate
          sudo apt-get install libxml2-dev libbz2-dev libpcre3-dev libssl-dev zlib1g-dev libmcrypt-dev libmhash-dev libmhash2 libcurl4-openssl-dev libpq-dev libpq5 libsyck0-dev

          6.?mcrypt.h not found. Please reinstall libmcrypt

          apt-get install libmcrypt-dev

          或者

          cd /usr/local/src
          wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
          tar -zxvf libmcrypt-2.5.8.tar.gz
          cd /usr/local/src/libmcrypt-2.5.8
          ./configure --prefix=/usr/local
          make
          make install

          7. php-fpm 5.4.7 如何關閉 重啟?

          php 5.4.7 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號控制:

          master進程可以理解以下信號

          INT, TERM 立刻終止 QUIT 平滑終止 USR1 重新打開日志文件 USR2 平滑重載所有worker進程并重新載入配置和二進制模塊

          示例:

          php-fpm 關閉:

          kill -INT cat /usr/local/php/var/run/php-fpm.pid

          php-fpm 重啟:

          kill -USR2 cat /usr/local/php/var/run/php-fpm.pid

          查看php-fpm進程數:

          ps aux | grep -c php-fpm

          8.命令行下執行php,提示找不到命令

          -bash: /usr/bin/php: No such file or directory

          vi /etc/profile

          在文件底部增加一行配置
          export PATH=/usr/local/php/bin:$PATH

          保存退出

          source /etc/profile

          除非注明,本站文章均為: nginx.cn原創,轉載請注明本文地址: http://www.4693749.com/231.html

          --完--

          分類: nginx 標簽:
          1. gfdgdfgffsd
            2017年11月21日14:50 | #1

            防守打法的山東師范

          2. fsfsdfds
            2017年11月21日14:50 | #2

            用phpinfo函數看一下

          3. gdgdfgdf
            2017年11月21日14:49 | #3

            學習咯!

          4. gdgdfgdf
            2017年11月21日14:49 | #4

            簡潔精辟

          5. 59d5a847a10edfe303bbedbfc94b8cc4
            2017年11月21日14:47 | #5

            好好玩!

          6. asdfasdfasdfasdfasdfasdfasdfasdf
            2017年11月21日14:46 | #6

            學習了!!!

          7. simuhunluo
            2017年11月15日00:06 | #7

            @寂寞侵蝕的歲月
            那是在開始配置./configure的時候沒有引入fpm

          8. 西門吹牛
            2016年8月11日17:47 | #8

            centos7 安裝好之后訪問的時候頁面不出來phpinfo頁面,而是出現了index.php文件中的代碼,經檢查后發現,樓主代碼為:
            &lt;?php
            echo phpinfo();
            ?&gt;
            將代碼改為:
            <?php
            echo phpinfo();
            ?>
            問題解決。

          9. 2016年7月7日11:31 | #10

            7.0 的php安裝后找不到fpm

          10. 2016年3月11日14:19 | #11

            感謝樓主

          11. 2016年3月4日23:44 | #12

            樓主你好,在phpinfo()中看到Configuration File (php.ini) Path指向/usr/local/php/lib 目錄,但是在該目錄下卻沒看到php.ini配置文件,且從根目錄開始查找也沒找到這個配置文件,這是為什么??

          12. 天邊的烏云
            2015年12月2日17:14 | #15

            雖然我剛剛安裝好了,博主說的問題都遇到了,確實比較詳細。

          13. 2015年5月9日16:57 | #16

            樓主,我想問下
            1、打開--enable-pcntl,不手動編譯pcntl.so擴展,pcntl_fork函數是不支持的,為啥呢?
            2、打開pcntl后,php-fpm.conf進程管理是否可以配置為靜態?
            望廣大網友幫忙解惑。非常感謝。

          14. 蒙太奇葩
            2015年4月13日18:12 | #17

            十分感謝,文章簡潔明了,一路很順。

          15. 2015年2月23日20:17 | #18
          16. 2015年2月23日14:50 | #19

            lz用什么源?

          17. 2015年2月23日12:39 | #21

            新版php安裝時出現make: *** No rule to make target `all'. Stop.如何解決?

            • 農民
              2015年4月11日22:14 | #22

              這個問題解決了嗎?我也遇到了

          18. 山里的娃
            2014年12月28日18:07 | #23

            請問一下:我的nginx和php都安裝好了,phpinfo的測試頁面也能正常顯示,但是為啥將WordPress的內容放到html目錄下面,訪問的時候就會返回500錯誤?

          19. 2014年5月18日23:19 | #25

            我安裝好了mysql 并且mysql沒報任何錯誤也能正常運行。在/usr/local/mysql/include/mysql/mysql.h 也是有的。但是在編譯php的時候 總是報
            configure: error: Cannot find MySQL header files under /usr.
            Note that the MySQL client library is not bundled anymore!
            我php ./configure --with-mysql=/usr/local/mysql --with-mysql=/usr --with-mysql 這三個方式都試過還是不行
            請問這個是怎么回事呢

            • 2014年5月18日23:30 | #26

              我自己在網上找的解決辦法 yum install mysql-devel這樣就完全通過了不知道為什么會差這個東西就不行。。

            • 海盜窩
              2015年3月19日09:09 | #27

              --with-mysql=mysqlnd --with-mysqli=mysqlnd 試下。

          20. 2014年5月12日09:58 | #28

            你的wp是用nginx搭建的嗎?

          21. Victor
            2014年1月5日19:00 | #31

            make: *** No targets specified and no makefile found. Stop.

            安裝前準備 都已經安裝了 。這個問題這么解決呢??

          22. victor
            2014年1月5日18:27 | #32

            make: *** No targets specified and no makefile found. Stop.

            shi weishenme a ???

          23. 2013年12月29日23:28 | #34

            阿里云 CenterOS,前面的準備工作也作了,也按照“6. mcrypt.h not found. Please reinstall libmcrypt”的解決方案操作了,但執行編輯的時候仍然提示:configure: error: mcrypt.h not found. Please reinstall libmcrypt. 求解!

          24. CaenZhang
            2013年12月12日17:42 | #36

            [12-Dec-2013 16:57:29] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
            ----這是什么情況啊?求解!!!

          25. 2013年11月11日10:17 | #41

            版主真心不錯!愿意貢獻知識!!!!

          26. ys165
            2013年10月8日00:47 | #42

            怎么優化呢?有沒有優化方面的介紹?

            • 2013年10月10日14:08 | #43

              優化需要針對具體情況具體分析,可以說說你的情況

          27. asdf
            2013年9月28日21:33 | #44

            博主,我按你的方法安裝后發現freetype 和jpeg不能用。

            • 2013年9月29日09:04 | #45

              安裝前的準備工作,你做了嗎?

              • asdf
                2013年9月29日11:08 | #46

                前面的東西都安裝了,但是freetype還是不能用,imagettftest還i是報錯,phpinfo 查看gd里面沒freetype

              • asdf
                2013年9月29日11:10 | #47

                嘗試在安裝php的時候加了選項 --with-freetype-dir=/usr/include/freetype2/freetype/ 沒報錯,但是還是不可用

              • asdf
                2013年9月29日11:29 | #48

                ./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --enable-gd-native-ttf --with-png-dir --with-freetype-dir=/usr/include/freetype2/freetype/ --with-jpeg-dir

                make clean
                make
                male install
                搞定了

          28. asdf
            2013年9月13日12:18 | #50

            安裝完后如何添加mysqli擴展呢??

            • 2013年9月13日12:55 | #51

              重新編譯一遍,configure是帶上--with-mysqli參數。

              • asdf
                2013年9月13日15:16 | #52

                感謝博主回復,文件解決了,但是我關閉php-fpm報錯:
                -bash: kill: cat /usr/local/php/var/run/php-fpm.pid: arguments must be process or job IDs;
                發現/usr/local/php/var/run/php-fpm.pid這個文件不存在;

          29. 2013年8月30日14:14 | #54

            configure: WARNING: unrecognized options: --with-jpeg 應該是目錄

          30. 2013年8月29日11:50 | #56

            我的php運行起來為什么找不到PID,寫進系統程序時沒法stop

          31. 無忌
            2013年8月13日19:40 | #59

            <? echo phpinfo(); ?> 請修改這行代碼 <?php echo phpinfo(); ?>

            • mood
              2013年8月14日16:53 | #60

              謝謝,已更新

            • 2013年8月20日10:37 | #61

              這行代碼無問題。

              • Filix
                2013年8月29日22:23 | #62

                是沒問題,但是短標簽是不建議的。
                有些情況會出現問題,比如把php文件當模版時輸出XML。因為xml的申明就是<? XML .........
                另外phpinfo是沒有返回值的,不需要echo

          32. 2013年8月7日14:57 | #63

            安裝完成 php 怎么沒有找到php.ini 文件啊

          33. 小飛
            2013年7月18日15:38 | #66

            這么好的文章,果斷收藏了。

          34. 草泥馬
            2013年7月16日08:21 | #67

            簡潔精辟!

          35. 2013年5月18日14:14 | #68

            學習咯

          1. 2012年12月31日21:03 | #1
          2. 2013年6月5日16:16 | #2
          3. 2013年7月23日22:58 | #3
          4. 2013年8月1日13:14 | #4
          5. 2013年8月24日09:31 | #5
          6. 2013年10月30日00:37 | #6
          7. 2013年10月30日00:40 | #7
          8. 2013年12月1日11:00 | #8
          9. 2013年12月13日10:57 | #9
          10. 2014年1月30日20:22 | #10
          11. 2014年1月30日20:55 | #11
          12. 2014年5月25日19:10 | #12
          13. 2014年5月25日19:32 | #13
          14. 2014年6月9日13:44 | #14
          15. 2014年8月22日12:11 | #15
          16. 2014年11月20日22:18 | #16
          17. 2014年11月28日09:40 | #17
          18. 2014年12月24日16:47 | #18
          19. 2015年1月8日10:23 | #19
          20. 2015年6月17日17:19 | #20
          21. 2015年7月3日18:35 | #21
          22. 2015年7月5日16:22 | #22
          23. 2015年7月26日13:22 | #23
          24. 2015年7月30日21:48 | #24
          25. 2015年8月2日12:16 | #25
          26. 2015年9月2日22:10 | #26
          27. 2015年12月22日11:41 | #27
          28. 2016年1月13日16:58 | #28
          29. 2016年2月28日14:42 | #29
          30. 2016年3月23日23:28 | #30
          31. 2016年7月16日17:48 | #31
          32. 2016年7月17日06:49 | #32
          33. 2016年7月29日11:39 | #33
          34. 2016年7月29日15:33 | #34
          35. 2016年8月3日14:42 | #35
          36. 2016年12月13日16:30 | #36
          37. 2017年1月2日16:18 | #37
          38. 2017年1月22日15:20 | #38
          39. 2017年3月3日17:14 | #39
          40. 2017年5月8日18:24 | #40
          41. 2017年10月19日16:38 | #41
          42. 2017年11月1日11:13 | #42
          43. 2018年9月13日23:34 | #43

          印度快乐8官网
          <em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

          <progress id="1rarx"><tr id="1rarx"></tr></progress>
          <sup id="1rarx"><menu id="1rarx"></menu></sup>
          <menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

            <sup id="1rarx"><menu id="1rarx"></menu></sup>
            <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
              <em id="1rarx"></em>

                  <em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

                  <progress id="1rarx"><tr id="1rarx"></tr></progress>
                  <sup id="1rarx"><menu id="1rarx"></menu></sup>
                  <menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

                    <sup id="1rarx"><menu id="1rarx"></menu></sup>
                    <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
                      <em id="1rarx"></em>