如何編譯php源代碼
PHP 7.2的編譯安裝步驟如下:
下載PHP 7.2的源代碼:
- 訪問php.net官網,找到PHP 7.2的下載頁面。
- 下載所需的PHP 7.2版本源代碼包,例如php7.2.16.tar.gz。
解壓源代碼包:
- 使用tar命令解壓下載的源代碼包,例如:tar zxvf php7.2.16.tar.gz。
進入解壓後的目錄:
- 使用cd命令進入解壓後的PHP源代碼目錄,例如:cd php7.2.16。
運行configure腳本:
- 執行./configure腳本進行配置,指定安裝路徑等選項。例如:./configure –prefix=/usr/local/php。這將安裝文件歸檔到指定的/usr/local/php路徑。
編譯源代碼:
- 運行make命令編譯源代碼。
安裝PHP:
- 執行make install命令將編譯後的文件安裝到指定的路徑。
配置phpfpm服務:
- 在PHP安裝目錄下找到phpfpm的配置文件,進行必要的配置。
- 確保取消pid的注釋,並復制相關文件以賦予執行許可權。
- 修改/etc/init.d/phpfpm文件,將路徑改為絕對路徑。
設置系統環境變數:
- 將PHP的安裝路徑添加到系統的PATH環境變數中,以便在命令行中直接運行php命令。
啟動phpfpm服務:
- 運行phpfpm命令或相應的服務管理命令啟動phpfpm服務。
驗證安裝:
- 在命令行中輸入php v,檢查PHP的版本信息,確認PHP 7.2已正確安裝。
通過以上步驟,你可以成功編譯安裝PHP 7.2,並完成基本配置。
『貳』 如何在windows環境下編譯生成PHP的zookeeper擴展dll
1、創建編譯目錄「C:\php_sdk」
2、解壓php-sdk-binary-tools-20110915.zip裡面的文件到php_sdk目錄下
3、在開始菜單找到並打開Windows SDK CMD Shell (注意一定是SDK的shell , 不是DOS操作的cmd窗口),然後執行
[plain] view plain
setenv /x86 /xp /release //這一句一定要執行成功,要不怎麼都不會編譯成功
cd php_sdk
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat phpdev
執行後,目錄下會生成phpdev文件夾
4、進入C:\php_sdk\phpdev\vc9\x86\,把deps-5.3-vc9-x86.7z解壓到該目錄下,覆蓋deps文件夾。(php sdk)
5、把php源代碼也解壓到x86目錄下。
6、把runkit壓縮包內容解壓到php解壓後源碼下的ext目錄下,並把文件夾名runkit-master改為runkit
7、在x86目錄下創建obj文件夾,用於保存編譯時生成的文件
8、執行以下命令,用於創建php編譯配置
[plain] view plain
cd phpdev\vc9\x86\php5.3-201308211030
buildconf
configure --help >..\configure_help.txt
configure --disable-all --enable-cli --enable-runkit=shared --enable-object-out-dir=..\obj
註:配置中的--enable-runkit=shared意思是 memcache 以 dll 形式生成,否則就和php集成在一起了。
『叄』 怎樣重新編譯php呢
要重新編譯PHP並集成libiconv函數庫,首先需下載libiconv源碼。
下載地址:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz
解壓下載的tar包:
tar -zxvf libiconv-1.9.2.tar.gz
接下來,安裝libiconv:
配置安裝目錄:# configure --prefix=/usr/local/iconv
編譯:# make
安裝:# make install
完成libiconv的安裝後,進行PHP的重新編譯。在編譯PHP時,需要指定--with-iconv=/usr/local/iconv參數。
對於Windows環境下的操作,如在Windows 2000下使用PHP,可以通過修改php.ini文件來啟用libiconv。具體操作是去除extension=php_iconv.dll前的分號,並將原php安裝文件夾下的iconv.dll復制到winnt/system32目錄下。
在Linux環境下,如果使用靜態安裝方式,可以通過在configure命令中添加--with-iconv=/usr/local/libiconv參數來啟用libiconv。使用phpinfo查看是否已啟用。
下載libiconv源碼:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
解壓、配置、編譯、安裝步驟與之前相同。
重新編譯PHP後,如果在使用iconv函數時遇到bug,例如在轉換字元「—」到GB2312編碼時出現問題,可以通過在iconv函數的第二個參數後添加「//IGNORE」來解決。此參數表示忽略轉換時的錯誤,避免所有該字元後面的字元串無法被保存。
在需要轉換編碼的場景中,可以使用iconv函數實現不同字元集間的轉換。需要注意的是,iconv並非PHP的默認函數,需要單獨安裝。在某些環境下,如Windows 2000+php,可以通過修改php.ini文件來啟用。在Linux環境下,通常使用靜態安裝方式即可。
PHP中另一個與iconv功能相似的函數是mbstring擴展庫中的函數,用於實現字元串編碼的轉換。
『肆』 如何編譯安裝PHP擴展
一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx
但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地Linux平台下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境
我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2 -i php5-pear php5-devel php5-mysql gcc
安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展
以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安裝成功之後進入/ext/intl 目錄:
cd intl
phpize
./configure --enable-intl
make
sudo make install
下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。
安裝第三方擴展
將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install
將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展
在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`
這個目錄里可以放新建的ini文件,然後執行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令將會創建ini文件,並且寫如相應的配置信息。
然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最後在執行一下重啟操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart
『伍』 php寫完代碼怎麼執行(php編寫程序)
怎麼用php命令執行php代碼PHP執行命令的四種方法
方法一:使用exec函數執行系統外部命令
原型:functionexec(string$command,array[optional]$output,int[optional]
$return_value)
?
??exec("dir",$outPut);
??
print_r($outPut);
?
說明:列出和PHP執行文件同級目錄下的所有目錄及文件信息。
知識點:exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行,如果你想得到結果你可以使用第二個參數,讓其輸出到指定的數組,此數組一個記錄代表輸出的一行,即如果輸出結果有20行,則這個數組就有20條記錄,所以如果你需要反復輸出調用不同系統外部命令的結果,你最好在輸出每一條系統外部命令結果時清空這個數組,以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。
方法二:使用system函數執行系統外部命令
原型:functionsystem(string$command,int[optional]$return_value)
1
2
3
?
??system("dir");
?
知識點:system和exec的區別在於system在執行系統外部命令時,直接將結果輸出到游覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。
方法三:使用函數passthru執行系統外部命令
原型:functionpassthru(string$command,int[optional]$return_value)
知識點:passthru與system的區別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。
方法四:反撇號`(和~在同一個鍵)執行系統外部命令
1
2
3
?
??echo`dir`;
?
知識點:在使用這種方法執行系統外部命令時,你要確保shell_exec函數可用,否則是無法使用這種反撇號執行系統外部命令的。
怎樣在本地運行PHP1、首先需要在電腦上安裝PHPstudy軟體和notepad這兩個代碼編輯軟體(如果找到可以代替的就用你那代替的),如圖所示紅色箭頭所示:
2、接下來直接運行PHPstudy,點擊紅色箭頭所指的啟動,當左側兩個英文單詞lightd和mysql後面顯示兩個綠點時,說明PHPstudy已經在電腦上成功運行。
3、選擇右側居中的?「php版本」將進入下圖界面,伺服器選Apache即可。
4、選擇好之後,在彈出的phpstudy設置中,選擇埠常規設置。
5、在「埠檢測」處,查看伺服器的埠是否被佔用。網站編寫好以後就放置在網站目錄下。
6、伺服器搭設完成。新建一個文檔另存在上面的目錄里,文件名保存為index.php(自由發揮)。然後寫一個你認為最簡單的網頁進行保存。
7、在瀏覽器網址處輸入127.0.0.1,即可看到剛編寫的網站主頁,即php代碼運行的效果。
下載的php源碼怎麼運行?要想運行PHP代碼,你得現有一個伺服器環境。
1.在網上自己下載一個xampp,然後安裝。
2.把你的代碼放到xampphtdocs裡面。
3.打開瀏覽器,輸入127.0.0.1/文件名.php
比如,你得文件有個叫index.php的,直接輸入127.0.0.1/index.php訪問,就開始執行了。
4.建議在htdocs裡面添加文件夾,防止混亂。
5.也可以將默認的htdocs目錄更改到其他位置,這個網上介紹很多。
php如何執行代碼?代碼中可以寫個時間限制,僅限某個短時間內允許訪問。或者帶個參數瀏覽器訪問,不要對外暴露參數。
phpdev怎麼運行剛寫好的代碼?代碼編寫好以後,要先「編譯」,通過完成後,再點擊「運行」就可以了。
php代碼怎麼運行的?html跟PHP分離的話,就涉及MVC架構,你說的html後綴是偽靜態,目前不少PHP框架能做到你說的,比如說TP框架
『陸』 php-8.3.3 源碼編譯安裝以及擴展 redis 、gd和 sodium安裝
PHP 8.3.3 源碼編譯安裝及擴展 Redis、GD 和 Sodium 的步驟如下:
一、源碼編譯安裝 PHP 8.3.3
系統准備:
- 確認系統版本,並進行軟體包更新。
- 安裝必要的依賴包,如 gcc、make、autoconf 等編譯工具和庫。
創建 www 用戶:
- 使用 useradd www 命令創建用於運行 PHP 進程的 www 用戶。
下載並解壓 PHP 源碼:
- 從 PHP 官網下載 PHP 8.3.3 的源碼包。
- 使用 tar zxvf php8.3.3.tar.gz 命令解壓源碼包。
運行 configure 預編譯:
- 進入解壓後的 PHP 源碼目錄。
- 運行 ./configure prefix=/usr/local/php enablefpm withmysqli withpdomysql 等配置選項。
- 注意排查依賴問題,如缺少的庫文件或頭文件,可以通過包管理器安裝或下載源碼編譯安裝。
編譯與安裝:
- 運行 make 命令進行編譯。
- 運行 make install 命令進行安裝。
創建軟鏈接與優化配置:
- 創建 PHP 可執行文件的軟鏈接,如 ln s /usr/local/php/bin/php /usr/bin/php。
- 優化 PHP 配置文件 php.ini,根據需求調整設置。
創建 phpfpm 進程管理腳本:
- 復制 PHP 源碼包中的 sapi/fpm/init.d.phpfpm 腳本到 /etc/init.d/ 目錄,並命名為 phpfpm。
- 設置腳本為可執行,並添加到系統服務中。
二、安裝 PHP 擴展 Redis、GD 和 Sodium
安裝 Redis 擴展:
- 下載 Redis 擴展的源碼包或從 PECL 安裝。
- 使用 phpize 命令准備編譯環境。
- 運行 ./configure withphpconfig=/usr/local/php/bin/phpconfig 命令配置擴展。
- 運行 make 和 make install 命令編譯並安裝擴展。
- 在 php.ini 文件中添加 extension=redis.so。
安裝 GD 擴展:
- 確保系統已安裝 GD 庫和相關依賴。
- 在編譯 PHP 時,通過 withgd 選項啟用 GD 擴展。
- 如需額外功能,需確保安裝了相應的庫文件。
- 在 php.ini 文件中確認或添加 extension=gd.so。
安裝 Sodium 擴展:
- Sodium 擴展通常隨 PHP 源碼一起提供,只需在編譯 PHP 時啟用。
- 使用 enablesodium 選項編譯 PHP。
- 在 php.ini 文件中通常無需手動添加 Sodium 擴展,因為它默認啟用。
三、驗證安裝
- 運行 php m 命令查看已安裝的 PHP 擴展列表,確保 Redis、GD 和 Sodium 擴展已正確安裝。
- 編寫簡單的 PHP 腳本測試各擴展的功能是否正常。
通過以上步驟,您可以在 Linux 系統上成功安裝 PHP 8.3.3 並啟用 Redis、GD 和 Sodium 擴展。