A. nginx配置支持php
nginx本身不支持php解析,需要配合php-fpm來配置。
location~.php${
root/var/www;#指定php的根目錄
fastcgi_pass127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
centos下安裝php-fpm (php及其它組件已經安裝過的情況)
yuminstallphp-fpm
啟動php-fpm 並設置開機啟動 (centos 7)
systemctlstartphp-fpm
systemctlenablephp-fpm
B. php程序調試方法總結
相信很多朋友們都有調試程序的經歷 然而很多時候調試程序是痛苦而又漫長的過程;它不僅需要細心 更需要耐心 切忌心浮氣躁 但是當找出問題並順利解決它時 又會給人無比激動的喜悅 這里總結一下筆者在程序調試中的使用的原則 工具 以及方法 這里需要說明的是 某些原則性的東西 各種語言都是差不多的 而涉及到具體的工具和某些具體的調試方法 這里只涉及web開發方面的內容
總體原則
找出問題原因
程序需要調試 是因為程序有問題 而調試的第一目標是找到原因 常見調試方法 排除法: 當我們面對整個復雜的系統時 常常完全不知道問題出在什麼地方;這個時候可以先將與問題不相關的地方排排除 逐漸縮小調試范圍 獨立模塊法: 大部分程序都有模塊結構 將可疑模塊單獨拿出來 模擬輸入相應的操作數據 看是否出現問題 比較法 如果程序或系統是基於某個平台時 可以先看看其他基於本平台的程序或系統 找出是平台問題還是本程序問題 很多時候這種方法是用來排除不成熟平台上的隱藏問題 對比法 對於自己實現的程序 可能已經有相應的開源的模塊 可以把這些程序源碼找出來 和自己的程序進行對比 這樣不僅節省時間 還能借鑒別人的優秀之處
問題定位
問題原因的多種多樣 可能這個時候你只能知道是什麼樣的問題 可能與什麼相關 這個時候就需將出現的代碼段找出來 而需要做到這一步 一般開發環境為我們提供很多實用工具 藉助這些工具 可以一步一步地查看程序的輸入和輸出 根據每一步的輸入輸出 定位問題
有一部分很厲害的人 可以通過閱讀代碼 找到出現問題的地方 但是很多問題都是調試者自己因為疏忽造成的 而要通過這樣方式去查找問題 幾乎是不可能的 因為已經形成固定的思維定勢
解決問題
找到問題的原因和相應代碼行 解決它很多時候是一件比較簡單的事 因為這些問題往往自己疏忽或者自己考慮不周 但是某些時候並不總是這樣的 而是由於外部環境造成的 比如你的網站訪問的人數增多 你當初沒有考慮到這些數據壓力 同時也沒有考慮到高度並發性的問題 這個時候問題解決起來是你覺得比較棘手 而要解決這樣的問題 不僅僅要專注程序 更要從系統架構方面著手 綜合各方面的知識 進行全面的考慮
web開發常用調試工具
俗話說 工欲善其石 必先利其器 對於程序的調試 也必須藉助外部工具 這里介紹幾種在開發web程序中常常用到的工具
xdebug xhprof php性能調試工具 他們都是php的一種擴展 可以很方便的安裝和配置 這兩個工具主要是將你程序的內部運行狀況 調用函數以一種簡潔的方式告訴你 讓你對程序在什麼地方佔用過多的資源 那些地方需要進行優化一目瞭然 順便提一下 xdebug生成的profile文件一般藉助winCacheGrid查看
firephp firbug 前者主要是php的調試工具 而後者是web開發必不可少的工具 它不僅能查看請求 還能調試js css
在ie下面可以使用HttpWatch 如果需要將數據做深入分析 可以使用抓包工具
php中常使用的調試函數 error_report var_mp print_r var_export
mysql apache/nginx的常用的調試技巧 分析他們日誌文件也是相當重要 在linux下查看日誌文件的常用命令 cat more less grep awk sed
常見的調試技巧和方法
下面以我調試的程序來介紹一下具體的調試方法和技巧
例子 這是一個php開發的游戲引擎 主要功能提供雙發球員移動位置 狀態 傳球 技能等功能控制 整個程序通過xml文件保存結果 突然某天 有兩個用戶進行比賽 返回的xml不符合正常的結構 從返回的結果來看 球員的移動位置有些不正常 其中少了某些步驟 於是決定從游戲的AI入手查找 但是也沒有發現此處有什麼異常 最後將輸入的球員數據列印出來 然後將中間產生的數據也列印出來 結合程序的處理邏輯 發現是這兩個用戶有同一個球員 因此導致在處理的時候 兩個人的球員出現混亂 找到原因後 就將這個以球員標識改為以球隊和球員共同決定即可
例子 程序剛上線 有些熱心的朋友們喜歡對程序進行一些壓力測試 某次突然 w的請求很大的一個靜態資源 直接導致硬碟癱瘓 對於這種情況 必須查看訪問日誌 才知道發生什麼事 否則人家對你攻擊了 你還找不到原因 當然對於這樣的攻擊 直接把靜態資源放到cdn上 另外 隨著訪問用戶量的增大 系統的壓力增大 反應逐漸變慢 我們不得不考慮 以前只需要 幾毫秒能處理的程序 現在需要 幾秒 這個時候程序的並發性設計就很重要了 否則會造成數據異常的情況
例子 使用外部軟體出現異常 例如使用memcached的時候 如果某台沒有啟動或者不能使用了 這個時候nginx一般就會對某些使用memcache的請求返回 是不是感覺有點無厘頭 可以考慮改寫memcahce 的php擴展了
lishixin/Article/program/PHP/201311/21278
C. 如何編譯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這個文件作為配置文件了.
按鈕!!
D. 如何在 OSX 上架設 Nginx+MariaDB+PHP 伺服器
打開「Mac App Store」下載並安裝「Xcode」。
打開「Xcode」,按下同意並接受Xcode的使用條款。
打開「終端機(Terminal)」,輸入下面的指令並且安裝Homebrew。
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
輸入下面的指令讓其他程式知道Xcode的位置。
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
之後,「按此」基或下載最新版本的X11並且安裝。
之後建立X11的符號鏈接(軟鏈接)。
sudo ln -s /opt/X11 /usr/X11
之後使用下面的指令查看透過Homebrew安裝的套件。
brew list
之後輸入下面指令查看當前系統變數。
$PATH
打開「.bash_profile」並修改系統變數。
vim ~/.bash_profile
將「/usr/local/bin」放在「/usr/local/sbin」之前。例如搏乎伍︰
export PATH=~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/git/bin:/opt/local/bin
接著,請參考文章「[教學] 在 OSX 10.8 上設定 Postfix 郵件傳送代理 (MTA)」設定Postfix。
啟用Postfix。
sudo postfix start
安裝 dnsmasq 設定 DNS
透過Homebrew安裝dnsmasq,以加速網路存取速度。
brew install dnsmasq
復制和編輯dnsmasq.conf。
mkdir /usr/local/etc
cp $(brew --prefix dnsmasq)/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
vim /usr/local/etc/dnsmasq.conf
更改dnsmasq.conf內的數值。
resolv-file=/etc/resolv.dnsmasq.conf
address=/.ld/127.0.0.1
listen-address=127.0.0.1
建立並編輯DNS解析文件。
sudo vim /etc/resolv.dnsmasq.conf
在「resolv.dnsmasq.conf」文件內貼上以下內容。
# Google DNS IPv6:
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
# OpenDNS IPv6:
nameserver 2620:0:ccd::2
nameserver 2620:0:ccc::2
# Google DNS:
nameserver 8.8.8.8
nameserver 8.8.4.4
# OpenDNS:
nameserver 208.67.222.222
nameserver 208.67.220.220
設定開機自動執行dnsmasq。
sudo cp $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
設定你的Hostname。
sudo scutil --set HostName foolegg
打開「系統設定」,在「網路」內分別選擇「Wi-fi」和「Ethernet」,在「進階」內設定「127.0.0.1」為DNS伺服器。
安裝 Nginx
輸入下面指令關閉自動啟用Apache。
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
之後透過Homebrew安裝Nginx。
brew install nginx
安裝完成後,復制和備份nginx.conf。
cp /usr/local/etc/頃稿nginx/nginx.conf /usr/local/etc/nginx/nginx.conf.bak
打開nginx.conf,刪除所有內容,使用下面的內容取代。
# Nginx web server main configuration file nginx.conf
#
user www-data staff;
worker_processes 4;
worker_rlimit_nofile 8192;
error_log /usr/local/var/log/nginx/error.log;
#pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 10;
tcp_nodelay on;
gzip on;
client_max_body_size 100M;
#access_log /usr/local/var/log/nginx/access.log main;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
## FastCGI.
include /usr/local/etc/nginx/fastcgi.conf;
## For the filefield_nginx_progress mole to work. From the
## README. Reserve 1MB under the name 'uploads' to track uploads.
#upload_progress uploads 1m;
#include /etc/nginx/conf.d/*.conf;
#include /usr/local/etc/nginx/aegir.conf;
server {
listen 80;
server_name localhost;
server_tokens off;
#access_log /usr/local/var/log/nginx/access.log main;
root /usr/share/nginx/www/public_html;
location / {
root /usr/share/nginx/www/public_html;
index index.html index.htm;
##### Use this if you're going to install wordpress #####
#if (-f $request_filename/index.html) {
# rewrite (.*) $1/index.html break;
#}
#if (-f $request_filename/index.php) {
# rewrite (.*) $1/index.php;
#}
#if (-f $request_filename) {
# rewrite (.*) /index.php;
#}
#if (!-e $request_filename) {
# rewrite ^.+?(/wp-.*) $1 last;
# rewrite ^.+?(/.*\.php)$ $1 last;
# rewrite ^ /index.php last;
#}
#rewrite /wp-admin$ $scheme://$host$uri/ permanent;
##### End #####
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www/public_html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
之後建立Nginx的log資料夾和其它必要的目錄。
sudo mkdir -p /usr/local/var/log/nginx/
touch /usr/local/var/log/nginx/error.log
touch /usr/local/var/log/nginx/access.log
sudo mkdir -p /usr/share/nginx/www/public_html
安裝 MariaDB
透過Homebrew安裝MariaDB。
brew install mariadb --use-llvm --env=std
取消TMPDIR設定。
unset TMPDIR
初始化MySQL資料庫。請將5.5.30更改為你當前使用的版本編號。
cd /usr/local/Cellar/mariadb/5.5.30/scripts
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
系統會提示錯誤,請忽略有關錯誤。下面的教學設定會更正錯誤。
安裝 PHP
雖然OSX上已經安裝了PHP,但是我們不會使用Apple的PHP。
輸入下面的指令安裝PHP。
brew tap josegonzalez/homebrew-php
brew tap homebrew/pes
brew install php53 --with-mysql --with-fpm --with-imap
brew install php53-xhprof
brew install php53-xdebug
brew install php53-uploadprogress
brew install php53-memcached
brew install php53-imagick
打開並修改php.ini。
vim /usr/local/etc/php/5.3/php.ini
搜索
extension=php_zip.dll
在下面加上以下內容,請更改版本編號。
extension="/usr/local/Cellar/php53-xhprof/0.9.2/xhprof.so"
extension="/usr/local/Cellar/php53-uploadprogress/1.0.3.1/uploadprogress.so"
extension="/usr/local/Cellar/php53-memcached/2.1.0/memcached.so"
extension="/usr/local/Cellar/php55-imagick/3.1.0RC2/imagick.so"
zend_extension="/usr/local/Cellar/php53-xdebug/2.2.1/xdebug.so"
到「PHP手冊」尋找你身處地區的時區。修改php.ini內的「date.timezone」變數的數值。
date.timezone = Asia/Hong_Kong
尋找以下3個變數的數值。如果找不到,請在檔案的最尾部份加上3個變數和數值。
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
修改記憶體和上傳限制的數值。如果變數前出現分號「;」,請將之刪除。
memory_limit = 256M
post_max_size = 100M
upload_max_filesize = 100M
打開並修改php-fpm.conf檔案。
vim /usr/local/etc/php/5.3/php-fpm.conf
搜索
pid = run/php-fpm.pid
在下面加上
pid = /usr/local/var/run/php-fpm.pid
之後刪除下面4行變數和數值前的分號「;」。
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 500
按照下面修改「error_log」的數值。
error_log = /usr/local/var/log/php-fpm.log
之後建立log的符號鏈接(軟鏈接)。
sudo ln -s $(brew --prefix josegonzalez/php/php53)/var/log/php-fpm.log /usr/local/var/log/php-fpm.log
開機啟用服務
設定Nginx的啟用服務。
sudo cp $(brew --prefix nginx)/homebrew.mxcl.nginx.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
打開並修改「homebrew.mxcl.nginx.plist」。
sudo vim /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
在「homebrew.mxcl.nginx.plist」內刪除以下內容。
<key>KeepAlive</key>
<true/>
<key>UserName</key>
<string>[YourUserName]</string>
開啟Nginx。
launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
為軟體建立資料夾。
mkdir -p ~/Library/LaunchAgents
設定MariaDB的啟用服務。
cp $(brew --prefix mariadb)/homebrew.mxcl.mariadb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
設定PHP的啟用服務。
cp $(brew --prefix josegonzalez/php/php53)/homebrew-php.josegonzalez.php53.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php53.plist
完成MariaDB的設定。
sudo $(brew --prefix mariadb)/bin/mysql_secure_installation
為MySQL設定密碼。
Enter current password for root (enter for none): [Enter]
Set root password? [Y/n] y
New password: [password]
Re-enter new password: [password]
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
測試PHP
建立並修改index.php。
vim /usr/share/nginx/www/public_html/index.php
輸入並儲存以下內容。
<?php phpinfo(); ?>
從新啟動Nginx。
sudo nginx -s reload
打開瀏覽器,輸入「http://localhost/index.php」查看是否成功運行PHP。
啟動或停止MNMP
在桌面或其他位置建立Shell Script「mnmp.sh」。
vim mnmp.sh
在Shell Script「mnmp.sh」內加入以下內容,然後儲存檔案。
#!/bin/bash
case "$1" in
start)
# Start MariaDB
echo -e "Starting mariadb..."
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
# Start PHP
echo -e "Starting php..."
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php53.plist
# Start Nginx
echo -e "Starting nginx..."
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
;;
stop)
# Stop MariaDB
echo -e "Stopping mariadb..."
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
# Stop PHP
echo -e "Stopping php..."
launchctl unload -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php53.plist
# Stop Nginx
echo -e "Stopping nginx..."
sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
;;
esac
exit 0
為Shell Script「mnmp.sh」加入可執行許可權。
chmod 700 mnmp.sh
使用以下指令啟動MNMP。
./mnmp.sh start
使用以下指令停止MNMP。
./mnmp.sh stop
PHP檔案存取錯誤
有部份讀者反映在存取PHP檔案時出現錯誤。大家可以打開檔案「/usr/local/var/log/nginx/error.log」查看錯誤的原因。
如果出現下面的原因,可能是因為php-fpm的問題。
[error] <NUMBER>#0: *<NUMBER> kevent() reported that connect() fa iled (<NUMBER>: Connection refused) while connecting to upstream, client: 127.0.0. 1, server: localhost, request: 「GET /index.php HTTP/1.1″, upstream: 「fastcgi ://127.0.0.1:9000″, host: 「127.0.0.1″
大家可以使用「netstat -anp tcp | grep 9000」或者「lsof -i tcp:9000」查看佔用Port 9000的進程,並且將其終止。之後使用下面指令開啟php-fpm。
sudo /usr/local/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
請再次測試是否成功存取php。如果成功,請依照下面設定自動啟動php-fpm。
設定自動啟動php-fpm
建立文件「~/Library/LaunchAgents/org.php-fpm.plist」。
E. php xdebug 斷點調試nginx超時怎麼辦
比如你的網頁盯圓這么悔畢寫的<input name="uname" id="uname"><form action="login.php" method="post">...<input tpe="submit" name="submit" value="go" /></form>=================================<script type="text/javascript> function c(obj){ obj.action+="?uname="+document.getElementById('uname').value; }</script><input na
我碧則芹也是後盾人學會的樓主也可以經常去學習.
F. windows下nginx伺服器下怎麼裝php
你可以使用護衛神.nginx大師,一鍵可以安裝nginx+php
G. php 網站項目運行速度慢,什麼原因
網頁打開很慢原因很多,光憑借你說的無法判斷具體原因,建議使用xdebug之類的查看具體執行時間,而且windows下的nginx搭配php用的是第三方的php-fpm吧,這個也有一定原因。
H. 安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的.
安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的,應該是下面的原因造成的:
這個是因為index.html 文件目錄是nginx默認安裝目錄 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文檔裡面找到相應的問題。
可以按照下面測試更改:
location ~ .php$ {
root /data/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
nginx -t && nginx -s reload