12.6 Nginx安裝php
1. wget http://nginx.org/download/nginx-1.12.1.tar.gz //下載安裝包html
2. tar -zxvf nginx-1.12.1.tar.gz //解壓文件linux
3. ./configure --prefix=/usr/local/nginx //配置nginx
4. make && make install //編譯安裝git
5. 設置啓動文件 apache
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL瀏覽器
6. chmod 755 /etc/init.d/nginx //設置權限緩存
7. chkconfig --add nginx chkconfig nginx on //設置開機啓動bash
8. cd /usr/local/nginx/conf/nginx.conf //配置文件url
配置文件見:
https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf?public=true
/usr/local/nginx/sbin/nginx -t //檢測語法是否正確
9. /etc/init.d/nginx start //啓動
注 : 若是解析不了php 請檢查配置文件 與php-rpm一致
12.7 Nginx默認虛擬主機
1. 配置文件增長 include vhost/*.conf; 刪除虛擬主機默認配置信息 //定義配置虛擬主機
2. 建立 vhost目錄 和vhost.conf
3. 編輯vhost.conf
server
{
listen 80 default_server; // 有這個標記的就是默認虛擬主機
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
}
4. /usr/local/nginx/sbin/nginx -s reload
錯誤現象: php返回200 但頁面空白 配置文件錯誤
server
{
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php;
root /data/wwwroot/111;
location ~ \.php$ {
root html; //必須存在
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; //必須存在
或者 server
{
listen 80 default_server;
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/111;
location ~ \.php$
{
root /data/wwwroot/111;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
12.8 Nginx用戶認證
1. 修改配置文件
location /
{
auth_basic "lxy"; //用戶名
auth_basic_user_file /usr/local/nginx/conf/htpasswd; //密碼文件
2. yum install -y httpd // 用httpd 生成
3. 生成密碼文件
/usr/local/apache/bin/htpasswd -c /usr/local/nginx/conf/htpasswd lxy
4. 針對目錄驗證
location /data/wwwroot/111
{
auth_basic "lxy"; //用戶名
auth_basic_user_file /usr/local/nginx/conf/htpasswd; //密碼文件
5. 針對訪問的url
location ~ index.php
{
auth_basic "lxy"; //用戶名
auth_basic_user_file /usr/local/nginx/conf/htpasswd; //密碼文件
12.9 Nginx域名重定向
1. 修改配置文件
server
{
listen 80 default_server;
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/111;
if ( $host != ‘111.com’ ){
rewrite ^(.*)$ http://111.com$1 permanent; //301 redirect 302
301適合永久重定向
301比較經常使用的場景是使用域名跳轉。
好比,咱們訪問 http://www.baidu.com 會跳轉到 https://www.baidu.com,發送請求以後,就會返回301狀態碼,而後返回一個location,提示新的地址,瀏覽器就會拿着這個新的地址去訪問。
注意: 301請求是能夠緩存的, 即經過看status code,能夠發現後面寫着from cache。
或者你把你的網頁的名稱從php修改成了html,這個過程當中,也會發生永久重定向。
302用來作臨時跳轉
好比未登錄的用戶訪問用戶中心重定向到登陸頁面。
訪問404頁面會從新定向到首頁。