A. linux配置nginx+php,但是無法訪問PHP文件,能訪問html
nginx調用PHP有sock方式和埠方式
1、確認nginx已經調用了php;
2、先確認你的nginx使用什麼方式調用PHP;
3、如果使用埠方式,埠對不對應,如果使用SOCK方式,那麼路徑對不對;
B. 如何 利用 php 重啟 nginx-Linux新手園地
已解決 下面是解決方法
1、設置 sudo 配置文件 可寫許可權
chmod u+w /etc/sudoers
2、增加 www 用戶的 nginx 腳本管理許可權
www ALL=(root) NOPASSWD: /etc/init.d/nginx
3、關閉 【強制控制台登錄】執行
【非常重要】,注釋該行 我的問題就出在這里,開啟了這個選項之後。在PHP中怎麼調用,都沒有執行結果
#Defaults requiretty
4、還原 sudo 配置許可權 440
【非常重要】,如果不還原許可權。在PHP中怎麼調用,都沒有執行結果。
chmod u-w /etc/sudoers
5、調用php
$result2 = exec("/usr/bin/sudo /etc/init.d/nginx stop",$result);
var_mp($result);
var_mp($result2);
C. linux 命令行下如何關閉nginx、php服務
如果是服務的話就service nginx stop如果是自己編譯沒有添加到服務就 nginx路徑 -s stop ,php-fpm的話我就不知道 咯,一般我killall php-fpm就好了。。。
D. linux下怎麼讓nginx支持php
安裝 PHP-FPM
1. 開始安裝 Nginx 和 PHP-FPM 之前,你可能需要卸載系統中以前安裝的 Apache 和 PHP。
1
yum erase php*
2
or
3
yum remove httpd* php* #這個命令是刪除不幹凈的
4
yum remove php-cli php-common php #刪除
重新安裝 PHP:
1
yum --skip-broken install php53
2. CentOS 6.2/6.1/6/5.8 下安裝Remi源:
1
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
2
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
3
4
## CentOS 5 and Red Hat (RHEL) 5 ##
5
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
3. 安裝 PHP-FPM:
1
yum --enablerepo=remi,remi-test install nginx php php-fpm php-common
2
or
3
yum --enablerepo=remi install php53 php-fpm
4. 安裝完畢之後啟動 PHP-FPM:
1
/etc/init.d/php-fpm start
2
## OR ##
3
service php-fpm start
5. 設置Nginx & PHP-FPM開機自啟動:
1
chkconfig --add nginx
2
chkconfig --levels 235 nginx on
3
chkconfig --add php-fpm
E. 如何在linux下配置nginx支持php
需要。
如果是nginx+php配置,也可以通過查找php執行路徑
ps
aux
|
grep
php
如,路徑為
/usr/local/nginx/sbin/php-fpm
然後執行以下命令
/usr/local/nginx/sbin/php-fpm
-i
|
grep
「Loaded
Configuration
File」
即可看到php載入的配置文件
F. linux nginx 無法執行php文件
為以前沒有接觸過nginx ,所以查了一天,查處原因有二:
一、網站根目錄
默認是在 /usr/local/nginx/html文件
配置在
location / {
root /home/www/wwwroot;
index index.html index.htm;
}
二、修改文件中對應的php配置部分
location ~ \.php$ {
root /home/www/wwwroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
特別需要注意的是:fastcgi_param這個參數默認的是$fastcgi_script_name;最好改為$document_root$fastcgi_script_name;我在實際配置中出現了php找不到需要解析文件而返回404或者500錯誤的問題。所以最好是帶上網站根目錄的路徑變數$document_root
G. php和nginx之間是如何工作的
Nginx+php-fpm實現原理 Nginx本身不會對PHP進行解析,終端對PHP頁面的請求將會被Nginx交給FastCGI進程監聽的IP地址及埠,由php-fpm作為動態解析伺服器處理,最後將處理結果再返回給nginx。其實,Nginx就是一個反向代理伺服器。Nginx通過反向代理功能將動態請求轉向後端php-fpm,從而實現對PHP的解析支持,這就是Nginx實現PHP動態解析的原理。 Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI介面來調用。FastCGI介面在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用於啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如埠或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI介面,wrapper接收到請求,然後派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本並讀取返回數據;接著,wrapper再將返回的數據通過FastCGI介面,沿著固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端。
當nginx接收到一個http請求時,通過配置文件找到對應的server。然後匹配server中的所有location,找到最匹配的。而在location中的命令會啟動不同的模塊去完成工作,比如rewrite模塊、index模塊。因此在nginx中模塊可以看作真正的勞動工作者。nginx的模塊是被編譯到nginx中的,屬於靜態方式。啟動nginx時,模塊被自動載入。
H. linux+nginx+php伺服器一個目錄幾千萬個文件會不會影響性能
肯定影響了!
5KW的量說大不大,說小不小。
建議用資料庫,分幾十個表。一張表100-200W, 那應該無壓力
必須要用文件的話,平均分散多個目錄吧。
I. 如何用linux命令查看nginx是否在正常運行
Linux每個應用運行都會產生一個進程,那麼我們就可以通過查看Nginx進程是否存在來判斷它是否啟動。
J. linux 版怎麼配置nginx
配置Nginx服務
Nginx是一款相當優秀的用於部署動態網站的服務程序,Nginx最初是為俄羅斯門戶站點而設計的網站服務軟體,作為一款輕量級的網站服務軟體,因其穩定性和豐富的功能而深受信賴,但最最最被認可的是低系統資源、佔用內存少且並發能力強,目前國內如新浪、網易、騰訊等門戶站均在使用,市場佔有份額一直保持在15-16%左右(2015年最新數據)。
Nginx程序的穩定性來自於它採用了分階段的資源分配技術,使得CPU與內存佔用率會非常低,所以使用Nginx程序部署動態網站環境不僅十分的穩定、高效,而且消耗更少的系統資源,豐富的模塊功能也幾乎與Apache程序數量相同,現在已經完全的支持了proxy、rewrite、mod_fcgi、ssl、vhosts等常用模塊。而且還支持了熱部署技術,即能夠可以7*24不間斷提供服務,即便運行數月也無須重啟,而且還可以在不暫停服務的情況下直接對Nginx服務程序進行升級。
坦白來講,雖然Nginx程序的代碼質量非常高,代碼很規范,技術成熟,模塊擴展也很容易,但Nginx依然存在不少問題,比如Nginx是由俄羅斯人創建的,所以在資料文檔方面還並不完善,中文教材的質量更是魚龍混雜,但Nginx近年來增長勢頭迅猛,預測未來應該能夠在輕量級HTTP伺服器市場有不錯的未來。
安裝PCRE(Perl兼容的正則表達式庫,解壓與編譯過程已省略):
[root@linuxprobe ~]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/pcre
[root@linuxprobe src]# tar xzvf pcre-8.35.tar.gz
[root@linuxprobe src]# cd pcre-8.35
[root@linuxprobe pcre-8.35]# ./configure --prefix=/usr/local/pcre
[root@linuxprobe pcre-8.35]# make
[root@linuxprobe pcre-8.35]# make install
安裝openssl服務程序(解壓與編譯過程已省略):
[root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/openssl
[root@linuxprobe src]# tar xzvf openssl-1.0.1h.tar.gz
[root@linuxprobe src]# cd openssl-1.0.1h
[root@linuxprobe openssl-1.0.1h]# ./config --prefix=/usr/local/openssl
[root@linuxprobe openssl-1.0.1h]# make
[root@linuxprobe openssl-1.0.1h]# make install
把openssl服務程序命令目錄添加到環境變數中(永久生效):
[root@linuxprobe pcre-8.35]# vim /etc/profile
//將配置文件最下面的參數追加參數為:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin
[root@linuxprobe pcre-8.35]# source /etc/profile
安裝zlib數據壓縮函數庫(解壓與編譯過程已省略):
[root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/zlib
[root@linuxprobe src]# tar xzvf zlib-1.2.8.tar.gz
[root@linuxprobe src]# cd zlib-1.2.8
[root@linuxprobe zlib-1.2.8]# ./configure --prefix=/usr/local/zlib
[root@linuxprobe zlib-1.2.8]# make
[root@linuxprobe zlib-1.2.8]# make install
創建用於執行nginx服務的用戶:
[root@linuxprobe zlib-1.2.8]# cd ..
[root@linuxprobe src]# useradd www -s /sbin/nologin
安裝nginx服務程序(openssl,zlib,pcre要寫成源碼解壓路徑!!!):
[root@linuxprobe src]# tar xzvf nginx-1.6.0.tar.gz
[root@linuxprobe src]# cd nginx-1.6.0/
[root@linuxprobe nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_mole --user=www --group=www --with-http_stub_status_mole --with-http_ssl_mole --with-http_gzip_static_mole --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35
[root@linuxprobe nginx-1.6.0]# make
[root@linuxprobe nginx-1.6.0]# make install
創建nginx程序腳本(將下面的參數直接復制進去即可):
[root@linuxprobe nginx-1.6.0]# vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx - this script starts and stops the nginx daemon
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
[root@linuxprobe nginx-1.6.0]# chmod 755 /etc/rc.d/init.d/nginx
重啟nginx服務程序並添加到開機啟動項:
[root@linuxprobe nginx-1.6.0]# /etc/rc.d/init.d/nginx restart
Restarting nginx (via systemctl): [ OK ]
[root@linuxprobe nginx-1.6.0]# chkconfig nginx on
此時可以通過訪問IP來判斷nginx服務是否順利運行
LNMP(即Linux+Nginx+MYSQL+PHP)是目前非常熱門的動態網站部署架構,如果你是在搭建這種部署的話可以看下http://www.linuxprobe.com/chapter-20.html