㈠ 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成功執行後,生成的擴展庫文件在當前目錄的 moles子目錄下,
如/home/php-5.3.3/ext/curl/moles/xsl.so
4.配置php.ini文件
#將編譯好的擴展庫文件復制到PHP的擴展目錄下,可通過查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/moles/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)
㈡ 如何安裝PHP模塊
php模塊安裝的方式
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
mole
關於上面的這個錯誤,我不得不鄙視下網上有些自以為是的傢伙,自認為對所有的安裝操作很懂,報上面的錯誤的時候,去修改源代碼,搞的亂七八糟,誤人子弟。根本不按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 如何定義一個數組
php中定義數組的方法:
1、PHP定義數組的格式:
數組名=array();
如:$aa=array();//這樣就定義了一個數組,
之後給元素賦值:
$aa[0]="9016";
$aa[1]="9017";
$aa[2]="9018";
2、PHP輸出數組的方法:
foreach($aa as $val)
{
echo$val;
}
也可以在定義數組時直接賦值
$aa=array(0=>"9016",1=>"9017";2=>"9018");
3、PHP的數組還可以用字元做下標,不一定要數字:
$aa["name"]="Joan";
$aa["num"]="9018";
$aa["email"]="[email protected]";
也可以這樣
$aa=array("name"=>"joan","num"=>"9018","email"=>"[email protected]");
將一個一維數組的元素也定義為數組,就是一個二維數組,
$aa=array(0=>"a1",1=>"a2");
$bb=array(0=>"b1",1=>"b2");
$cc=array(0=>$aa;1=>$bb);此時,$cc[0]也是一個數組,$cc[1]也是一個數組,$cc就是一個二維數組。
同理,三維,四維數組也可以繼續定義下去。
4、數組的元素不僅於數字和字元串,可以是類的對象。
㈣ 在linux 虛擬主機php環境中,php.ini 中 extension=zip.so 主要起什麼作用
在php.ini 中增加extension=zip.so其作用是為php載入 zip 模塊.
可參考以下資料:
Linux平台下PHP zip模塊
1、依次運行以下命令:
wget http://pecl.php.net/get/zip-1.8.3.tgz //貌似已經出新版本了zip1.10.2.tgz
tar zxvf zip-1.8.3.tgz
cd zip-1.8.3
/usr/local/php/bin/phpize (對應的phpize路徑)(安裝好的php位置)
configure --with-php-config=/usr/local/php/bin/php-config (對應的php-config路徑)(php-config文件名不能更改)
make
make install
//此時會在zip/moles/下生成一個zip.so文件,將它拷貝到make之後給的一個路徑下,如有同名的,覆蓋之。
2、生成的模塊路徑:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/zip.so (對應的extensions路徑)
3、修改php.ini
extension_dir = "./"修改為extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
增加extension=zip.so
4、重啟apache
apache2/bin/apachectl restart
㈤ PHP單獨添加擴展 無需重啟伺服器
問題
php自身提供了很多擴展,比如curl,gmp, mbstring等等。我們在編譯安裝php時未必安裝了所有擴展。那麼在安裝完php後,如果想單獨安裝某個php自身的擴展怎麼辦呢?
我們以curl擴展模塊的安裝為例說明如何單獨添加擴展。
步驟
1.進入php源碼的擴展目錄。本例中我的源碼對應目錄如下:
/search/src/php-7.0.14/ext
1
2.進入模塊目錄,我們安裝的是curl擴展,所以進入curl目錄。此時,我們所在的目錄是
/search/src/php-7.0.14/ext/curl
1
3.執行phpize。注意,如果你的機器上有多個php版本,一定要執行你准備安裝擴展的php版本對應的phpize。比如,我的機器上同時有php7和php5.3.3。我當前准備為php7安裝curl擴展。所以執行php7對應的phpize
1 /usr/local/php70/bin/phpize
2
3 結果類似:
4 Configuring for:
5 PHP Api Version: 20151012
6 Zend Mole Api No: 20151012
7 Zend Extension Api No: 320151012
4.執行
./configure --with-php-config=/usr/local/php70/bin/php-config
1
說明:如果你的機器上只有一個php版本,大多時候不需要特別使用–with-php-config指明相應的php-config所在位置。
5.執行make,之後會在./moles/目錄下生成curl.so文件
6.執行make install
結果類似:
Installing shared extensions: /usr/local/php70/lib/php/20151012/
1
2
執行結果告訴你將curl.so安裝到了哪個目錄。
一般情況,如果你正確的指定了php-config或者你的機器只有一個php版本,so都會被正確安裝到相應php的extension_dir。如果執行make install後,extension_dir目錄下沒有相應的so,可以手動將第5步中生成的so文件cp過去。
要查看具體extension_dir,可以執行如下命令。
php -i| grep extension_dir
結果類似
extension_dir => /usr/local/php70/lib/php/20151012/ => /usr/local/php70/lib/php/20151012/
1
2
3
7.在php.ini中增加
extension=curl.so
1
如果不知道php.ini的具體位置,可以通過如下命令查看
php --ini
1
8.執行如下命令,查看是否安裝成功
php -m | grep curl
1
如果你看到了curl, 恭喜你,安裝成功!
㈥ php站內搜索怎麼做
站內搜索是一種使用關鍵字來搜索文章標題的功能。
PHP的站內搜索可以使用SELECT和LIKE語句來對文章的標題進行過濾選擇,將需要的數據篩選出來。 如果有多個篩選可以使用AND語句連接起來進行多條語句篩選。 如果希望是能搜索到全站所有的數據,一般在資料庫設計之初最好就是把所有數據放一個表,然後通過擴展表的方式進行數據擴展!具體方法可以參考ONETHINK的設計模式。
具體搜索方法: SELECT * FROM 表名 WHERE 欄位 LIKE '%關鍵字%'