在Windows下配置搭建PHP環境的步驟:
一、准備工作-下載所需軟體
Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
PHP php-5.3.10-Win32-VC9-x86.zip
MySQL mysql-5.5.20-win32.msi
二、安裝軟體
1、安裝Apache: 雙擊安裝,與安裝其他Windows軟體沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。
安裝完成之後,在瀏覽器輸入http://localhost,如果顯示It Works!,表示Apache安裝成功。
2、安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。
3、安裝MySQL:雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom
安裝完成後開始配置MySQL,全部保持默認選項即可,但最好把MySQL默認編碼改為utf8,在Modify Security Settings選項中設置密碼,輸入兩次密碼即可完成,最後點Execute完成配置。
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的配置文件,讓Apache支持解析PHP文件。Apache配置文件在Apache安裝目錄的conf目錄下的httpd.conf。
1. 讓Apache可以解析php文件,在配置文件中找到
#LoadMole vhost_alias_mole moles/mod_vhost_alias.so
在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)
LoadMole php5_mole "D:/Develop/PHP/php5apache2_2.dll"PHPIniDir "D:/Develop/PHP"AddType application/x-httpd-php .php .html .htm
2. 在配置文件中找到
DirectoryIndex index.html
改為
DirectoryIndex index.php index.html
3. 修改Apache站點目錄,在配置文件中找到(Apache安裝的目錄不同,顯示的值不一樣)
DocumentRoot "D:/Develop/Apache2.2/htdocs"
改為
DocumentRoot "D:/Workspace/PHP"
再找到
<Directory "D:/Develop/Apache2.2/htdocs">
改為
<Directory "D:/Workspace/PHP">
PHP : 把php.ini-development改名為php.ini,作為PHP的配置文件。修改php.ini
1. 設置PHP擴展包的具體目錄,找到
; On windows:; extension_dir = "ext"
改為 (值是ext文件夾的目錄)
; On windows: extension_dir = "D:/Develop/PHP/ext"
2. 開啟相應的庫功能,找到需要開啟的庫的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分號(注釋),即改為
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 設置時區,找到
;date.timezone =
改為
date.timezone = Asia/Shanghai
配置完成,檢測一下配置是否成功。重啟Apache,在站點目錄下新建文件index.php,輸入內容。
B. 詳解如何正確配置PHP開發環境
PHP語言在進行開發之前,需要將開發環境配置妥當,這樣才能實現我們的程序完美運行。那麼,如何正確的配置PHP開發環境呢?文章將介紹Apache、MySql、PHP的下載、安裝及配置,分別講述在windows和linux環境下開發環境的搭建。
一、下載Apache、MySql和PHP
1、Apache的下載
Apache伺服器可以通過官方提供的鏡像地址來下載windows的Apache安裝程序,不過都是英文版的,而且下載速度太慢。我建議大家去華軍、天空或者中關村下載最新版的安裝程序,速度很快。
2、MySQL的下載
MySQL的官方網站是
3、PHP的下載
PHP的官方網站是
二、在windows下配置PHP開發環境
1、Apache、MySql和PHP的安裝像安裝windows其他軟體一樣,這里建議把Apache和PHP軟體安裝在D盤目錄下,把MySQL軟體安裝在C盤,這樣不需要做任何設置,MySQL就可以順利啟動運行。
2、配置開發環境
為了讓windows可以執行PHP,需要做進一步的工作,按以下步驟搭建好環境:
1)在PHP安裝目錄下,找到文件php5ts.dll,將其復制到C盤system32目錄下。
2)在PHP安裝目錄下,找到文件libmysql.dll,將其復制到C盤system32目錄下。
3)在PHP安裝目錄下,找到文件php.ini,將其復制到C:windows下。這個文件是配置PHP的基本文件,如設置伺服器根目錄配置,用文本編輯器打開php.ini文件,找到"doc_root=",因為我把Apache默認安裝在D盤根目錄下,所以,修改這個配置項的值為:doc_root=d:apache2htdocs
提示:用戶根據自己安裝Apache的路徑,修改該配置項的值。
4)在php.ini中找到「extension_dir ="./"」,這個配置項用來載入PHP的擴展模塊,修改該配置項如下:extension_dir = d:phpext,(需要按自己的安裝目錄修改PHP的載入位置)。
5)在php.ini中找到「;extension=php_mysql.dll」,把這項前面的分號去掉,表示使這個項生效。這個配置項用來使PHP支持MySQL,這里分號起注釋作用。修改完PHP的配置文件php.ini後,保存退出該文件。
6)進行Apache的配置。轉到Apache的安裝目錄下的conf目錄,用文本編輯器打開Apache的配置文件http.conf。在此文件中找到 dynamic shared object(DOS) Support,在LoadMole行的最後添加如下配置項:LoadMole php5_mole d:/php/php5apache2.dll,(需要按自己的安裝目錄修改PHP的載入位置)。該項是通過Apache來載入PHP模塊php5apache2.dll,即PHP以Apache的一個模塊來運行。
7)為了讓Apache支持.php後綴的文件,在http.conf中找到AddType項,在最後添加如下配置項:AddType application/x-httpd-php.php。找到directoryIndex,在最後添加index.php。為了支持中文,找到AddDefaultCharset ISO-8859-1改為AddDefaultCharset GB2312。修改完後保存http.conf。即完成Apache的基本配置。
注意:強烈建議對Apache配置文件http.conf進行修改時,一定遵守修改一點測試一點的原則,即每次修改完氏早一項並保存http.conf後,要嫌核蘆重啟一下Apache,如果Apache正常啟動,則可以進行後續修改,否則,說明本次修改有誤芹帶,仔細檢查並重新修改。
三、在Linux下配置配置PHP開發環境
1、MySQL的安裝
在MySQL官網下載MySQL的安裝文件MySQL-server-4.0.20-0.i386.rpm,執行下面的命令完成MySQL的安裝。
rpm -ivh MySQL-server-4.0.20-0.i386.rpm
在沒有設置MySQL密碼的情況下,通過以下命令測試MySQL是否安裝成功。
mysql -u root
出現類似welcome to the mysql mointor. commands end with;or g的字樣,說明安裝成功。
2、Apache的安裝
從Apache的官網下載UNIX版本的壓縮包,以httpd-2.0.52.tar.gz為例,假設資源包放在/usr/local/src下,進入這個目錄後解壓縮,命令如下:
cd /usr/local/src
tar -zxvf httpd-2.0.52.tar.gz
解壓縮後,進入目錄httpd-2.0.52,執行以下命令:
./configure --prefix=/usr/local/apache2 --enable--mole=so
其中--prefix=/usr/local/apache2用來指定Apache的安裝目錄。接下來進行編譯,執行一下命令完成安裝。
make
mae install
3、配置PHP開發環境的安裝
1)從PHP官網下載php5.1.4.tar.gz的壓縮包,解壓縮該文件包,命令如下:
tar -zxf php5.1.4.tar.gz
2)轉到解壓縮後的目錄,執行以下命令完成PHP安裝目錄等相關配置:
./configure --prefix=/usr/local/php -with-mysql=/var/lib/mysql
3)接著編譯PHP,命令如下:
make
make install
4)復制當前目錄下的文件PHP大安裝目錄的lib目錄下,並改名為php.ini,命令如下:
cp php.ini-dist /usr/local/php/lib/php.ini
5)以上配置PHP開發環境的安裝完後,參見windows下配置的內容進行相關配置,配置項和配置方法類似。
C. 如何編譯安裝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
D. PHP如何安裝及配置
將下載的壓縮包解壓到純英文目錄下;
2.因為PHP是被動型的服務,目的就是為apache提供了處理php代碼的服務。因此我們要做的配置就是告訴apache,PHP在哪?需要它處理什麼樣的文件。
所以,打開apache的配置文件,httpd.conf。
搜索LoadMole,找到之後按照相同的格式載入php模塊,輸入:
接著搜索mime_mole,找到後按照相同格式在該標簽內,輸入:
放的位置是沒什麼要求,最好是能跟好隊形,好修改。
上面添加的配置,分別是告訴php的位置,然後告訴伺服器.php的文件會被當作「application/x-httpd-php」格式處理,而伺服器里處理application/x-httpd-php格式的就是php。這樣配置之後,一旦是.php的文件伺服器都會調用我們的php來處理。
到這里php代碼就可以正常使用了。
3.php的配置以及添加擴展
php本身的配置是要自己創建的。
首先,在解壓的php目錄下找到php.ini-development文件,這是php提供的配置模版,復制並修改文件名為php.ini。
由於php是被動服務,它的配置文件也一樣是apache來調用,所以還是要到apache的配置文件httpd.conf里添加:
接著,如果要添加擴展,可以在php的配置文件php.ini里搜索extension_dir,找到下圖:
php配置文件的注釋是靠「;」,這項配置是說明擴展文件的所在目錄。
按格式加上:extension_dir = "你的擴展文件目錄"
你的擴展文件目錄就是php解壓目錄下的ext文件夾,即:"解壓目錄/ext"。
接著需要告訴php載入哪些擴展:
在php.ini里添加:extension=你要添加的擴展名字
E. centos7系統源碼編譯安裝PHP7.3.5版本
新增系統用戶組和用戶:
下載 PHP7.3.5
[root@localhost ~]# mkdir devdir
[root@localhost ~]# cd devdir/
[root@localhost devdir]# wget https://www.php.net/distributions/php-7.3.5.tar.gz
-bash: wget: 未找到命令
[root@localhost devdir]# rpm -qa|grep wget
[root@localhost devdir]# yum -y install wget
[root@localhost devdir]# rpm -qa|grep wget
wget-1.14-18.el7.x86_64
下載PHP7 解壓 編譯
wget -c https://downloads.php.net/~cmb/php-7.3.4.tar.gz
編譯參數解釋
--with-fpm-user=webu --with-fpm-group=webg 添加PHP運行用戶和用戶組
配置信息出錯:
下載gcc軟體編譯器 yum install -y gcc
configure: error: libxml2 not found. Please check your libxml2 installation.
下載libzip-1.5.2.tar.gz
https://libzip.org/download/libzip-1.5.2.tar.gz
解決libzip 和cmake版本問題
重新配置PHP7編譯環境參數
libzip-1.5.2 無法安裝,已經取消了。
提示off_t類型沒有定義 undefind,解決方法:
編譯安裝
測試PHP是否安裝成功
轉載自:https://my.oschina.net/u/4127346/blog/3047778
F. 求大神指導Centos7 源碼編譯安裝Nginx+PHP 配置動靜分離
這個是我的服務的實際 將配置Nginx實現動靜分離,對php頁面的請求轉發給LAMP處理,而靜態頁面交給Nginx,以實現動靜分離。客戶請求靜態數據給Nginx,Nginx直接應答客戶端,當請求動態數據到Nginx時,Nginx讓客戶端去找LAMP,通過代理的方式,LAMP就和客戶端連接了。分別配置動態分離和靜態分離
(1)架設並調試後端LAMP架構,指定的域名,IP地址為xxxx,創建動態頁面test.php。
(2)配置Nginx(xxxx)處理動態頁面請求,並把域名改為 chaodiquan.com 在server{};段中加入以下代碼,檢測語法後,重啟Nginx
(3)客戶端輸入xxxx/test.php 成功後動態分離就實現了,接下來再配置靜態分離
(4)配置Nginx處理靜態頁面請求,在server{};中加入以下代碼,檢測語法後,重啟Nginx
location ~ .*.(gif|jpg|jpeg|bmp|swf)$ { #這段代碼意思是任意網址以這5種格式為結尾就到Nginx根目錄下的html文件夾尋找資源
root html;
expires 1d; #緩存一天}
(5)在nginx的html目錄中,放入圖片aa.jpg,然後在apache的動態測試頁test.php中添加
<html>
<body>
<img src="aaaa/aa.jpg">
</body>
</html>
(6)客戶端輸入xxxx/test.php測試,由於test.php是動態頁面,因此客戶端會找到LAMP架構中的Apache,然後調取圖片aa.jpg是靜態數據,所以從Nginx提取,最後反饋給客戶端。這個是
G. PHP8、FPM及部分擴展編譯安裝
本著能懶則懶的原則,之前我都是寶塔、lnmp腳本等「一鍵」
再不濟也得來個 apt/yum install php
什麼?源碼 make install ? 編譯參數一言難盡,勸退勸退...我只是想要個開發環境而已
沒關系!我來整理一下常用模塊以及參數!環境為 ubuntu/debian
檢查壓縮包的完整性,與官網 sha256比較
安裝以下包
官方的拓展分類
根據需要的模塊添加其後對應的參數
包含常用模塊,可以直接使用
編譯並安裝後
復制 php.ini 到默認目錄 /usr/local/lib/
檢查 php安裝是否正確
復制 fpm 配置文件、運行服務文件
www.conf php-fpm.conf php-fpm.service
修改 fpm 用戶和組,默認為nobody
修改服務文件,取消只讀 不然日誌不能讀寫無法啟動
設置自啟動並運行
本地起服務測試
No package 'libxml-2.0' found
No package 『sqlite3『 found
configure: WARNING: unrecognized options: –with-gd
No package 'zlib' found
No package 'libpng' found
No package 'oniguruma' found
No package 'libcurl' found
No package 'libsystemd' found
No package 'openssl' found
No package 'libzip' found
H. linuxphp網站怎麼安裝
配置php服務
安飢塌裝yasm匯編器(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvfyasm-1.2.0.tar.gz
[root@linuxprobesrc]cdyasm-1.2.0
[[email protected]]./configure
[[email protected]]make
[[email protected]]makeinstall
安裝libmcrypt加密演算法擴展庫(解爛銀圓壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibmcrypt-2.5.8.tar.gz
[root@linuxprobesrc]cdlibmcrypt-2.5.8
[[email protected]]./configure
[[email protected]]make
[[email protected]]makeinstall
安裝libvpx視頻編碼器(解壓與編譯過程搏旦已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarxjvflibvpx-v1.3.0.tar.bz2
[root@linuxprobesrc]cdlibvpx-v1.3.0
[[email protected]]./configure--prefix=/usr/local/libvpx--enable-shared--enable-vp9
[[email protected]]make
[[email protected]]makeinstall
安裝Tiff標簽圖像文件格式(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvftiff-4.0.3.tar.gz
[root@linuxprobesrc]cdtiff-4.0.3
[[email protected]]./configure--prefix=/usr/local/tiff--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝libpng圖片(png格式)函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibpng-1.6.12.tar.gz
[root@linuxprobesrc]cdlibpng-1.6.12
[[email protected]]./configure--prefix=/usr/local/libpng--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝freetype字體引擎(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvffreetype-2.5.3.tar.gz
[root@linuxprobesrc]cdfreetype-2.5.3
[[email protected]]./configure--prefix=/usr/local/freetype--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝jpeg圖片(jpeg格式)函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvfjpegsrc.v9a.tar.gz
[root@linuxprobesrc]cdjpeg-9a
[root@linuxprobejpeg-9a]./configure--prefix=/usr/local/jpeg--enable-shared
[root@linuxprobejpeg-9a]make
[root@linuxprobejpeg-9a]makeinstall
安裝libgd圖像處理程序(解壓與編譯過程已省略):
[root@linuxprobejpeg-9a]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibgd-2.1.0.tar.gz
[root@linuxprobesrc]cdlibgd-2.1.0
[[email protected]]./configure--prefix=/usr/local/libgd--enable-shared--with-jpeg=/usr/local/jpeg--with-png=/usr/local/libpng--with-freetype=/usr/local/freetype--with-fontconfig=/usr/local/freetype--with-xpm=/usr/--with-tiff=/usr/local/tiff--with-vpx=/usr/local/libvpx
[[email protected]]make
[[email protected]]makeinstall
安裝t1lib圖片生成函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvft1lib-5.1.2.tar.gz
[root@linuxprobesrc]cdt1lib-5.1.2
[[email protected]]./configure--prefix=/usr/local/t1lib--enable-shared
[[email protected]]make
[[email protected]]makeinstall
將函數庫文件放至合適的位置:
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]ln-s/usr/lib64/libltdl.so/usr/lib/libltdl.so
[root@linuxprobesrc]cp-frp/usr/lib64/libXpm.so*/usr/lib/
安裝php服務程序(命令比較長,請一定要復制完整!!!):
[root@linuxprobesrc]tar-zvxfphp-5.5.14.tar.gz
[root@linuxprobesrc]cdphp-5.5.14
[[email protected]]exportLD_LIBRARY_PATH=/usr/local/libgd/lib
[[email protected]]./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-mysql-sock=/tmp/mysql.sock--with-pdo-mysql=/usr/local/mysql--with-gd--with-png-dir=/usr/local/libpng--with-jpeg-dir=/usr/local/jpeg--with-freetype-dir=/usr/local/freetype--with-xpm-dir=/usr/--with-vpx-dir=/usr/local/libvpx/--with-zlib-dir=/usr/local/zlib--with-t1lib=/usr/local/t1lib--with-iconv--enable-libxml--enable-xml--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--enable-opcache--enable-mbregex--enable-fpm--enable-mbstring--enable-ftp--enable-gd-native-ttf--with-openssl--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--without-pear--with-gettext--enable-session--with-mcrypt--with-curl--enable-ctype
[[email protected]]make
[[email protected]]makeinstall
復制php服務程序的配置文件到安裝目錄:
[[email protected]]cpphp.ini-proction/usr/local/php/etc/php.ini
刪除默認的php配置文件:
[[email protected]]rm-rf/etc/php.ini
創建php配置文件的軟連接到/etc/目錄中:
[[email protected]]cp/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
[[email protected]]ln-s/usr/local/php/etc/php-fpm.conf/etc/php-fpm.conf
[[email protected]]ln-s/usr/local/php/etc/php.ini/etc/php.ini
編輯php服務程序的配置文件:
[[email protected]]vim/usr/local/php/etc/php-fpm.conf
//將第25行參數前面的分號去掉。
pid=run/php-fpm.pid
//修改第148和149行,將user與group修改為www。
user=www
group=www
添加php-fpm服務程序到開機啟動項:
[[email protected]]cpsapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm
[[email protected]]chmod+x/etc/rc.d/init.d/php-fpm
[[email protected]]chkconfigphp-fpmon
為了保障網站的安全性,禁用掉不安全的功能:
[[email protected]]vim/usr/local/php/etc/php.ini
//修改第305行的disable_functions參數,追加參數為:
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
配置nginx服務程序支持php:
[[email protected]]vim/usr/local/nginx/conf/nginx.conf
//將第2行前面的號去掉並修改為userwwwwww;
//將第45行參數修改為indexindex.htmlindex.htmindex.php;
//將第65-71行前面的號去掉,修改為:
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
重啟nginx與php-fpm服務程序:
[[email protected]]systemctlrestartnginx
[[email protected]]systemctlrestartphp-fpm
I. tomcat下,怎麼安裝配置php (linux系統)
一、安裝和系統環境變數設置
1、我使用的PHP為php-5.4.31,不用5.5以上版本的原因是,因為他們都是使用VC11編譯的,需要一個DLL,win7及一下都不支持。下載VC9編譯的PHP 5.4(5.4.31) for X86的已編譯版本。我的安裝目錄是D:\Application\php-5.4.31,
將安裝後的路徑設置到系統環境變數path中。
2、perl直接下載安裝即可(會自動配置環境變數,不用操心)。
3、Tomcat用的是7.0.41版本。很多文檔要求將server/lib下servlets-cgi改名為servlets-cgi.jar。從6版本以後,好像就沒有server目錄,內部已經自動支持cgi,只需要進行配置即可。
Tomcat需要JDK 1.6以上,所以JDK需要先安裝好。
二、配置步驟:
1、到D:\Application\php-5.4.31目錄下
將php.ini-development復制一份同一目錄下,命名為php.ini
<1>設置extension_dir參數:
extension_dir="D:\Application\php-5.4.31\ext"
<1>設置cgi.force_redirect參數:
cgi.force_redirect = 0
2、打開Tomcat的conf下的context.xml文件
給Context增加屬性privileged="true",修改後的Context元素屬性如下所示:
<Context privileged="true">
3、打開Tomcat的conf下的web.xml文件
在servlet和servlet-mapping之間增加如下的內容:(注意,注釋不能放到配置項裡面,否則啟動報錯)
<!—Add to support PHP & Perl -->
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>clientInputTimeout</param-name>
<param-value>200</www.gzlij.com param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>D:\Application\php-5.4.31\php-cgi.exe</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
備註:
1、我們配製了兩個servlet,分別是php、CGI
2、在servlet參數中
<param-name>executable</param-name>
<param-value>D:\Application\php-5.4.31\php-cgi.exe</param-value>
指向CGI程序執行器,其實就一可被調用的可執行程序。(這里帶全路徑,好像不帶路徑也可以,因為path環境變數里已經配置了),記住不要用php.exe。
如果沒有配置,預設就是調用perl執行程序。
3、腳本存放路徑
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
這里將perl腳本配置的是指向webapps/web-inf/cgi-bin目錄下。
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
PHP的腳本指向的是webapps/web-inf/php-bin目錄下。
4、資源URL路徑映射。
這里如果請求的資源是/php-bin/*則,指向php服務程序,如果是/cgi-bin/*則指向cgi服務程序。
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
三、測試
1、分別將如下的test.php和test.cgi測試程序放到webapps\ROOT\WEB-INF\php-bin和webapps\ROOT\WEB-INF\cgi-bin目錄下。
其中test.php內容如下:
<?php phpinfo();?>
Test.cgi內容如下:
# filename: test1.cgi
print "Content-type: text/html\n\n";
print "Hello, world!\n"
2、重新啟動tomcat。
瀏覽器地址欄輸入:http://127.0.0.1:8080/php-bin/test.php
如果顯示如下,則說明PHP設置正確。
<?php
echo "hello World!\n\n";
echo "hello World!\n\n";
echo "hello World!\n\n";
?>
針對上面的程序,如果配置中使用的是PHP.exe,則只能現實兩行「hello world!」, 第一行總是莫名其妙地丟失。而且對php-info()函數,第一行也會丟失。
(很多文檔中都提到這個問題,其實就是因為用錯了程序。)
瀏覽器地址欄輸入:http://127.0.0.1:8080/cgi-bin/test.cgi
如果顯示「hello world!」,則說明cgi設置正確。