當前位置:首頁 » 編程語言 » nginxphp編譯安裝

nginxphp編譯安裝

發布時間: 2023-06-16 05:57:33

1. nginx下如何安裝php

進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd
curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot
find
autoconf.
Please
check
your
autoconf
installation
and
the
$PHP_AUTOCONF
environment
variable
is
set
correctly
and
then
rerun
this
script.,需要安裝autoconf:
yum
install
autoconf(RedHat或者CentOS)、apt-get
install
autoconf(Ubuntu
linux
/usr/local/php5/bin/php
-v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這里會報錯,可以根據錯誤信息去排查!

2. 如何在虛擬機上搭建php

虛擬機是window系統還是 linux系統。
window系統就很簡單了,直接下載一個集成環境,就可以運行了
linux 系統就要稍微麻煩點
1. php下載以及安裝

下載: wget http://am1.php.net/distributions/php-7.3.2.tar.gz

解壓: tar -zxvf php-7.3.2.tar.gz

進入目錄開始編譯安裝:

./configure --prefix=/opt/soft/php --enable-fpm

下面是直接把常用的擴展安裝好,免得後面在一個一個安裝(推薦)

./configure --prefix=/opt/soft/php --with-curl --with-mysqli --with-openssl --with-pdo-mysql --enable-fpm

make

sudo make install

設置快捷訪問方式: sudo cp /opt/soft/php/bin/php /usr/local/bin/

把php配置文件放在正確的位置

確認正確位置:php -i | grep php.ini

在下載的安裝包中將php配置文件移動過來: sudo cp /opt/packages/php-7.3.2/php.ini-proction /opt/soft/php/lib/php.ini

ps:以後可以通過 php --ini 查看文件所在位置

2. nginx下載以及安裝

和上面php一樣的步驟,下載--解壓--編譯--安裝

wget http://nginx.org/download/nginx-1.14.2.tar.gz

./configure --prefix=/opt/soft/nginx --sbin-path=/opt/soft/nginx/sbin/nginx --conf-path=/opt/soft/nginx/config/nginx.conf --error-log-path=/opt/soft/nginx/logs/error.log --pid-path=/opt/soft/nginx/logs/nginx.pid --http-log-path=/opt/soft/nginx/logs/access.log --with-http_stub_status_mole --with-http_ssl_mole

sudo make && make install

設置快捷訪問方式: sudo cp /opt/soft/nginx/sbin/nginx /usr/local/bin/

簡單配置nginx(詳細配置後面再重新開文章寫),然後瀏覽器直接訪問ip就能訪問了(這個時候只能訪問html,訪問php是直接下載文件)

開啟nginx: sudo nginx(sudo nginx -s reload 重啟nginx), 查看是否開起nginx: sudo netstat -anp | grep 80(埠號)

3. 配置nginx支持php

nginx不能直接和php通信,需要藉助FastCGI(高速地在HTTP伺服器和動態腳本語言間通信的介面),需要用到php-fpm(FastCGI Process Manager:FastCGI進程管理器, 他的具體概念可以參照這里搞清楚php-FPM到底是什麼),這也是為什麼在編譯安裝php的時候需要帶--enable-fpm這個擴展的原因.

I. 啟動php-fpm

進入到 /opt/soft/php/etc 這個目錄將php-fpm.conf.default改名為php-fpm.conf,編輯他查看最後一行

然後進入最後一行指向php-pm.d目錄,將www.conf.default改名成www.conf,並編輯成對應賬號,我這里是xunan

然後將/opt/soft/php/sbin/php-fpm設置快捷訪問方式,並啟動php-fpm,也就是執行下面兩個命令

sudo cp /opt/soft/php/sbin/php-fpm /usr/local/bin/ sudo php-fpm

ps: 重啟php-fpm: 先ps aux | grep php-fpm,然後kill掉對應的進程

II. 配置nginx支持php

具體配置:

location ~ \.php$ {
try_files $uri /index.php =404;

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

按照上面配置完成後,在配置文件的root目錄下建立一個index.php,編輯

然後重啟nginx(sudo nginx -s reload),在瀏覽器ip訪問

3. WSL搭建nginx+php+mysql環境

1、安裝:(參考: https://www.cnblogs.com/JettTang/p/8186315.html )

2、初始化

3、自啟動服務(參考: https://blog.csdn.net/donglynn/article/details/53505495 )

4、解決nginx編譯php巨慢瞎讓圓的方法:
查看錯誤日誌(應該是/var/log/nginx/error.log)如下磨塌:
upstream timed out (110: Connection timed out) while reading upstream, client: 127.0.0.1, server: foo.com , request: "GET / HTTP/1.1", upstream: " fastcgi://unix:/run/php/php7.2-fpm.sock :", host: " foo.com "
具體方法:

5、查看已安裝的wsl

6、關閉開啟的wsl(根據上面命令獲取的wsl的name)

7、網站文件無法更新許可權及所屬用戶(滑培組)

4. linux7 nginx 環境怎麼安裝php

PHP用編譯安裝很容易出錯,一般都是依賴關系要解決好
方法都是一樣的,先解決好依賴關系,然後下載PHP源碼,tar解壓後,cd進入解壓後php目錄,然後./configure --prefix=... --with ...把PHP要帶的參數寫好,接著make&make install

5. 雲伺服器如何配置nginx支持php

[root@redhat7 ~]# wget http://am1.php.net/get/php-7.1.2.tar.gz/from/this/mirror
[root@redhat7 ~]# tar xzvf php-7.1.2.tar.gz
[root@redhat7 ~]# cd php-7.1.2/
[root@redhat7 ~]# ./configure --prefix=/usr/local/php --enable-fpm
[root@redhat7 php-7.1.2]# make&&make install
查看是否成功編譯安裝PHP
[root@redhat7 php-7.1.2]# php -v
PHP 7.1.2 (fpm-fcgi) (built: Apr 14 2017 20:21:53)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

編譯安裝完成後PHP不具備配置文件php.ini,此時只需復制php.ini-proction到 /usr/local/lib/php.ini即可,php.ini文件一般在/usr/local/lib/和/etc目錄下

[root@localhost php-7.1.2]# cp php.ini-proction /usr/local/lib/php.ini
[root@redhat7 php]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 20:59:49] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
[14-Apr-2017 20:59:49] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[14-Apr-2017 20:59:49] ERROR: FPM initialization failed
啟動php-fpm發現缺乏配置文件/usr/local/php/etc/php-fpm.conf
此時只需復制php-fpm的配置文件在安裝php時提供的配置文件的模版/usr/local/php/etc/php-fpm.conf.default到相應/usr/local/php/etc/php-fpm.conf即可

[root@redhat7 etc]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 21:14:32] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/﹡.conf' from /usr/local/php/etc/php-fpm.conf at line 125.
[14-Apr-2017 21:14:32] ERROR: No pool defined. at least one pool section must be specified in config file
[14-Apr-2017 21:14:32] ERROR: failed to post process the configuration
[14-Apr-2017 21:14:32] ERROR: FPM initialization failed

[root@redhat7 etc]# cp php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@redhat7 etc]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@redhat7 etc]# /etc/init.d/php-fpm
[14-Apr-2017 21:23:02] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:23:02] ERROR: FPM initialization failed
[root@redhat7 etc]# netstat -nldp|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# chmod a+x /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2401 4月 14 21:26 /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm [14-Apr-2017 21:28:09] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:28:09] ERROR: FPM initialization failed
failed
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# kill 3721
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@redhat7 php-7.1.2]# service php-fpm status
php-fpm (pid 3927) is running...
[root@redhat7 php-7.1.2]# chkconfig --add php-fpm
[root@redhat7 php-7.1.2]# chkconfig php-fpm --level 345 on

配置nginx支持PHP
修改nginx的配置文件,支持php文件的解析,找到location的添加位置,在後面添加下面這個location
location ~ .php$ {
root /usr/share/nginx/html; #指定php的根目錄
fastcgi_pass 127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

6. Armbian-Ubuntu18.04安裝Nginx、PHP7.2和可道雲

安裝nginx,參考 Armbian-N1源碼安裝大鄭Nginx

若armbian中沒有軟體源,報錯 Unable to locate package php7.2 ,需要先添加軟體源:

然後再進行安裝。

1. fpm.ini配置文件路徑: /etc/php/7.2/fpm/php.ini

2. www.conf 文胡宴件路徑: /etc/php/7.2/fpm/pool.d/www.conf

3. 重啟php服務

4. 配置 nginx可解析 .php文件
修改 /usr/local/nginx/conf/nginx.conf 文件中 server{} 配置:

重啟nginx: systemctl restart nginx
5. 測試nginx和php是否配置褲仿銀成功
在 /usr/local/nginx/html 中創建test.php,裡面內容如下

瀏覽器輸入 http://ip/test.php 訪問,如下圖

重啟nginx: systemctl restart nginx
訪問地址: http://IP:8610

7. 如何編譯windows nginx php

作了N多次php環境的搭建,網上的方法還真是多,但是實際操作起來總有一些大大小小的出入,很多錯誤經常讓我糾結不已.久病成醫,漸漸地我自己就總結出了一些經驗。自我感覺良好。
這種方法並非以前所流行的apache 加 php_mole 的方式運行,我是採用nginx 作為web伺服器,以fastcgi的方式運行php。
linux下編譯:
nginx我還是習慣選擇8.54的版本,它的編譯依賴以下幾個軟體包,解壓這些源碼包,在configure中設置好這些源碼的路徑,nginx在編譯的時候會自己將他們編譯進去的:
pcre: 主要用於rewrite等模塊
zlib:這個不用說了
openssl: 如果你還知道https這個東西,那麼你懂的~~~(當然你可以不需要這個功能)
md5 /sha1: 這兩者都是用於生成信息摘要的希哈演算法,這倆個東西不是必須的,但是我發現如果不選擇其中一個那麼openssl是不會成功地編譯進nginx的
下面是我自己寫的一個安裝腳本,有temp-path字樣的編譯選項所設置都是nginx在運行時產生的臨時文件的路徑,pid-path,lock-path也是臨時文件路徑,log-path是日誌文件路徑,我因為自己機子上一些許可權的問題所以要設置一下.一般情況下其實這些是不必要的,nginx默認會統統把生成的這些文件放在自己的安裝目錄下.
tmp=/tmp/nginx
log=/home/jsck/log
pcre=~/Downloads/pcre-8.02
zlib=~/Downloads/zlib-1.2.5-src
openssl=~/Downloads/openssl-0.9.8q
md5=~/Downloads/md5-1.3.0
./configure --prefix=/usr/local/nginx \
--http-proxy-temp-path=${tmp}/nginx-proxy.tmp \
--http-fastcgi-temp-path=${tmp}/nginx-fcgi.tmp \
--http-uwsgi-temp-path=${tmp}/nginx-uwsgi.tmp \
--http-scgi-temp-path=${tmp}/nginx-scgi.tmp \
--http-client-body-temp-path=${tmp}/nginx-client.tmp \
--pid-path=${tmp}/nginx.pid \
--lock-path=${tmp}/nginx.lock \
--http-log-path=${log}/http.log \
--error-log-path=${log}/http-error.log \
--with-pcre=$pcre \ #pcre 源碼包的路徑
--with-zlib=$zlib \ #zlib 源碼包的路徑
--with-http_ssl_mole \ #起用ssl支持
--with-openssl=$openssl #openssl 源碼包路徑
make
make install
php(5.2)的編譯可以復雜點,也可以簡單點,因為我們編譯php時主要目的是編譯它的腳本引擎和一些核心庫,很多外圍的東西不一定非要在編譯php的時候加進去,可以在需要的時候將它們編譯成擴展庫再修改配置文件來載入它們。
我的編譯代碼如下:
./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \#設置mysql的安裝路徑
--enable-fastcgi \ #開啟fastcgi支持
--enable-debug #支持調試
make
make install
其實關於mysql的那一句都是可以不要的,只是我懶得再編譯一次mysql擴展,所以就這樣把它直接編譯進php了,這樣做的前提是你必須先安裝mysql。
令外還有一些注意事項:編譯php時必須確保系統中擁有libxml2與libxml2-dev這倆個軟體包,因為php默認會將xml的功能編譯進去,所以xml的支持是必不可少的。還有一個就是autoconf這條命令了,在編譯擴展的時候,phpize會調用系統中的這個命令來生成擴展包的configure文件,沒有它你就不能作擴展了,這一點也是要記住的,畢竟linux下的php不像windows版那樣事先把所有的擴展都編譯好了。
至於window下nginx,php的安裝就沒有什麼難度了,下個zip包,解壓就能用,只要稍微配置就可以了.
配置:
如果只是想讓php能運行的話那麼直接輸入命令:
./php-cgi -b 3344
這樣就開啟了php的fastcgi進程了,-b參數是綁定該進程的偵聽埠,隨便找個沒用的埠填就可以了,這里綁定的是3344.
然後在nginx的配置文件中加上這么幾行:
location ~ \.php$ {
root /home/jsck/www; #這是你網站的根目錄
fastcgi_pass127.0.0.1:3344; #這里指定了fastcgi進程偵聽的埠,nginx就是通過這里與php交互的
fastcgi_index index.php;
fastcgi_paramSCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
如果要改nginx的偵聽埠的話找到"listen"這么一項,改就是了.運行nginx,在/home/jsck/www目錄中寫一個測試文件test.php:
<?php
phpinfo();
?>
訪問http://localhost:8080/test.php,如果顯示了php所以的配置信息,那麼就基本沒什麼問題,已經可以用這個環境寫些php代碼了.
至於php的調試器我選擇xdebug,不為什麼,習慣所致。載入xdebug時,在配置文件中的寫法根據系統的不同好像也有點不同。linux下是:zend_extension_debug=<path>,window中載入的dll有兩種,一種文件名會帶有ts的後綴,這種要這要樣寫:zend_extension_ts=<path>另外一種就這樣:zend_extension=<path>,path一定要寫絕對路徑。雖然ts為何意我也不是很清楚,但是這些設置是一定不可以搞錯的。
設置好後重新運行php-cgi,然後重新訪問test.php,如果有xdebug的那一塊出現了,那麼就成功了.
當然這是一個很簡單的配置,只能讓你運行php,要想真正做成你需要的開發環境,還需要你根據自己的需要修改php和nginx的配置文件,這些配置內容很多,我自己也在學習中,就不好多講了.
另外有一點需要注意,php的配置文件在它的源碼包中有兩個:php.ini-dist和php.ini-recommended,分別是針對生成環境和開發環境的配置.你需要把其中一個改名為php.ini.重啟後查看phpinfo()的頁面,靠上的地方有一項"Loaded Configuration File",它的值如果就是你的php.ini的路徑,那麼就沒問題了,如果不是話,就看看上面一項"Configuration File (php.ini) Path",你把你的php.ini文件移到這個目錄下在重啟就可以了.因為php默認會在這個路徑下尋找php.ini的.當然你也可以在運行php-cgi的時候設置你的php.ini路徑,比如這樣:
php-cgi -b 3344 -c /home/jsck/php.ini
這樣就是把/home/jsck/php.ini這個文件作為配置文件了.
按鈕!!

8. 求大神指導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提取,最後反饋給客戶端。這個是

9. 如何編譯搭建php7+nginx+mysql

在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,輸入內容。

熱點內容
ftp匿名帳號 發布:2025-02-12 18:04:32 瀏覽:763
銳志哪個配置性價比最高 發布:2025-02-12 17:38:43 瀏覽:918
智能推送演算法 發布:2025-02-12 17:38:41 瀏覽:835
拍照上傳器 發布:2025-02-12 17:34:29 瀏覽:652
androidweb框架 發布:2025-02-12 17:32:45 瀏覽:76
安卓編程賀卡 發布:2025-02-12 17:32:44 瀏覽:838
php獲取資料庫的欄位 發布:2025-02-12 17:29:02 瀏覽:766
伺服器地址消失 發布:2025-02-12 17:23:36 瀏覽:951
後台執行php腳本 發布:2025-02-12 17:21:45 瀏覽:471
spring編程式事務 發布:2025-02-12 17:16:55 瀏覽:398