本文目錄一覽:
- 1、在編譯 php 時,為了使用 php 內置的 fpm 功能,應該使用什麼參數
- 2、如何使用Notepad++編譯運行php
- 3、php fpm如何增加拓展
- 4、windows下開發並編譯PHP擴展的方法
- 5、如何重新編譯一下PHP
- 6、編譯安裝的php5.6怎麼重啟
在編譯 php 時,為了使用 php 內置的 fpm 功能,應該使用什麼參數
php5.3.3以後源碼中已經內嵌了php-fpm,不用象以前的php版本一樣專門打補丁了,只需要在configure的時候添加編譯參數即可。關於php-fpm的編譯參數有–enable-fpm–with-fpm-user=www–with-fpm-group=www–with-libevent-dir=libevent位置。但是,php5.3.3以後的php-fpm不再支持php-fpm以前具有的/usr/local/php/sbin/php-fpm(start|stop|reload)等命令,需要使用信號控制:master進程可以理解以下信號:INT,TERM立刻終止QUIT平滑終止USR1重新打開日誌文件USR2平滑重載所有worker進程並重新載入配置和二進制模塊有了以上信號,php-fpm進程重啟就方便多了。例子: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`說明:cat部分是php-fpm的進程號,可能是我用的5.4的問題。沒有用php-fpm.pid,就沒有這個文件。可以用psaux|grepphp-fpm,使用第一個進程的進程號,測試可行。
如何使用Notepad++編譯運行php
安裝編譯運行文件的插件。插件-Plugin Manager-Show Plugin Manager.
找到NppExec插件,從這個插件的名字來看就是各位文件的執行。點擊Install。需要下載安裝,如果失敗可能是網絡不好,再試幾次即可。
重新啟動Notepad++,完成插件安裝。插件-NppExec-Execute,點擊執行,或直接按F6。
在彈出的命令輸入窗口中輸入一下命令:
cd $(CURRENT_DIRECTORY)D:\AppServ\php5\php.exe$(FULL_CURRENT_PATH)命令的含義是,進入當前文件目錄,使用已安裝的php.exe文件運行該文件D:\AppServ\php5\php.exe為php的安裝路徑
5. 點擊OK後,運行該php文件。如遇到“因為計算機中丟失php_mbstring.dll”,可參考
進行解決。
php fpm如何增加拓展
當服務器上PHP已經安裝好,需要額外添加PHP擴展時怎麼辦?不需要重新安裝PHP,有了phpize我們可以在原有的PHP基礎之上直接安裝擴展庫。
這次編譯僅僅只是單獨編譯PHP的擴展庫,接下來將編譯好的擴展庫加入到現在運行的php中,不對現在運行的php重新編譯,所以沒有一點的影響。
下面我們演示安裝xsl的擴展(不一定常用,僅做為一個範例)
做法一:
1.找到當前運行的php版本的源代碼目錄,如php-5.2.3。進入xsl擴展庫目錄。
$cd /home/pkgs/php-5.3.3/ext/xsl
2.調用phpize程序生成編譯配置文件。
$/home/app/php5.3.3/bin/phpize
3.編譯擴展庫,分別執行下面的configure和make命令。
$./configure-with-php-config=/home/app/php5.3.3/bin/php-config
這一步執行通過後,再執行make命令,如果configure執行不通過,則查找錯誤原因。
$make
#make成功執行後,生成的擴展庫文件在當前目錄的 modules子目錄下,
如/home/php-5.3.3/ext/curl/modules/xsl.so
4.配置php.ini文件
#將編譯好的擴展庫文件複製到PHP的擴展目錄下,可通過查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/modules/xsl.so /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626
#在php.ini文件中找到設置擴展目錄的位置,然後將擴展路徑設置到php安裝目錄/extension/no-debug-non….目錄下,並添加擴展庫位置。
extension_dir /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626”
extension=xsl.so
5.重啟php,查看phpinfo信息,即可看到剛才添加進去的xsl擴展庫。(如果有多個php-fpm進程的話,平滑重啟主進程即可:kill -USR2 pid)
windows下開發並編譯PHP擴展的方法
現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要準備的軟件有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變量,把已經安裝好的PHP路徑設置為環境變量。在這裡,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變量後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這裡假設為e:\c_source_code\php-5.2.5
1、修改文件
“PHP源文件目錄/ext/ext_skel_win32.php”,在這裡就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
‘e:\app\cygwin\bin’;
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
–extname=EXT_NAME,此時會在ext目錄下生成EXT_NAME目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
–extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
“ext/EXT_NAME”中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入EXT_NAME目錄,打開EXT_NAME.dsp。
設置VC6工程,
設置菜單“組建”-“移除工程配置”,選中“Win
32
Release_TS”,
設置菜單“工程”,選中“Win
32
Release_TS”
打開Tab“連接”,設置“輸出文件名”中的目錄,
[可選]打開Tab“C/C++”,增加“預處理器定義”“,COMPILE_DL_EXT_NAME”(注意全大寫,默認加入的),取消預定義“LIBZEND_EXPORTS”(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是EXT_NAME.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經加載進來,已經可以使用這個foo擴展了。
如何重新編譯一下PHP
whereis mysql
或
ps aux | grep mysql (這是看mysql的進程,看他的進程是在那啟的有時候可以找到安裝的目錄)
實在不行切換到root下,# find / -name mysqld
如果你是想刪除mysql重新裝的話就
# rpm -qa | grep mysql
mod_auth_mysql-2.6.1-2.2
php-mysql-5.3.9-3.15
mysql-devel-5.1.77-1.CenOS 5.2
mysql-5.0.77-1.CenOS 5.2
mysqlclient10-5.0.77-1.CentOS 5.2
libdbi-dbd-mysql-0.6.5-10.CentOS 5.2
# rpm -e mysqlclient
或者
# yum -y remove mysql
編譯安裝的php5.6怎麼重啟
1.首先添加依賴應用
yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel
這一步是為了支持一些php運行的東西,還有以下編譯需要的
2.安裝加密擴展庫
cd /usr/local/src/
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
3.到php壓縮包存放的目錄下
tar zxvf php-5.6.8.tar.gz #解壓
cd php-5.6.8 #進入文件夾
運行
[root@VPS php-5.6.8]# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-mysql-sock –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-fpm –with-ncurses –enable-soap –with-libxml-dir –with-XMLrpc –with-openssl –with-mcrypt –with-mhash –with-pcre-regex –with-sqlite3 –with-zlib –enable-bcmath –with-iconv –with-bz2 –enable-calendar –with-curl –with-cdb –enable-dom –enable-exif –enable-fileinfo –enable-filter –with-pcre-dir –enable-ftp –with-gd –with-openssl-dir –with-jpeg-dir –with-png-dir –with-zlib-dir –with-freetype-dir –enable-gd-native-ttf –enable-gd-jis-conv –with-gettext –with-gmp –with-mhash –enable-json –enable-mbstring –disable-mbregex –disable-mbregex-backtrack –with-libmbfl –with-onig –enable-pdo –with-pdo-mysql –with-zlib-dir –with-pdo-sqlite –with-readline –enable-session –enable-shmop –enable-simplexml –enable-sockets –enable-sqlite-utf8 –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-wddx –with-libxml-dir –with-xsl –enable-zip –enable-mysqlnd-compression-support –with-pear
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186661.html