1. 程式人生 > >部署NGINX+PHP+Thinkphp

部署NGINX+PHP+Thinkphp

一直想用NGINX替換現有的APACHE,最近終於開始做了。

負載均衡+7臺NGINX伺服器作為後端。挺爽的,呵呵。開始做吧 。。。

一,安裝NGINX

# yum install -y pcre pcre-devel
# yum install -y zlib zlib-devel
# yum install -y openssl openssl-devel
安裝NGINX需要的依賴。
# mkdir nginx-src && cd nginx-src
# wget http://nginx.org/download/nginx-1.7.3.tar.gz
# tar xzf nginx-1.7.3.tar.gz 
# cd nginx-1.7.3
./configure \
--prefix=/usr/local/nginx \
--with-http_realip_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-http_stub_status_module  \
--with-pcre
#make

#make install

#ln-sf /usr/local/nginx/sbin/nginx/usr/sbin

#nginx -t //成功了

修改nginx配置檔案

> /usr/local/nginx/conf/nginx.conf

“>” 這個符號之前阿銘介紹過,為重定向的意思,單獨用它,可以把一個文字文件快速清空。

vim /usr/local/nginx/conf/nginx.conf
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;


events
{
    use epoll;
    worker_connections 6000;
}


http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host "$request_uri" $status'
    '"$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on; 
    gzip on; 
    gzip_min_length 1k; 
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;

    
server
{   
    listen 80;
    server_name localhost;
    index index.php index.html index.htm;
    root /alidata/www/abc;
    #如果檔案不存在則嘗試TP解析
        try_files  $uri  /index.php$uri;
    location ~ .+\.php($|/){
        root /alidata/www/abc;
        index index.php
        fastcgi_index index.php;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        include fastcgi_params;
        set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
    }


}


}

# vi /etc/init.d/nginx

#!/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


# 設定開機啟動
# chmod +x /etc/init.d/nginx
# chkconfig --add nginx
# chkconfig nginx on/off
# chkconfig --list nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
安裝PHP  和 php-fpm
請檢視http://heilinux.blog.51cto.com/6123663/1575582
其中的配置:
 ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-mysql=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-ftp \
--enable-mbstring \
--enable-exif \
--disable-ipv6 \
--with-pear \
--with-curl \
--with-openssl

配置php.ini以及php-fpm,並新增為啟動項

cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default.conf  php-fpm.conf

儲存配置檔案後,檢驗配置是否正確的方法為:

/usr/local/php/sbin/php-fpm -t

如果出現諸如 “test is successful” 字樣,說明配置沒有問題。

啟動php-fpm

vim /etc/init.d/php-fpm
輸入一下內容:
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
user = nobody
group = nobody
listen.owner = nobody
listen.group = nobody
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
設定
chmod 755 /etc/init.d/php-fpm
service php-fpm start

如果想讓它開機啟動,執行:

chkconfig php-fpm on

檢測是否啟動:

ps aux |grep php-fpm
netstat -ant |grep 9000

新增 PHP 命令到環境變數

編輯 ~/.bash_profile,將:

PATH=$PATH:$HOME/bin
改為:
PATH=$PATH:$HOME/bin:/usr/local/php56/bin

使 PHP 環境變數生效:

# . ~/.bash_profile

thinkphp關鍵的配置是在nginx的配置中的路由設定。

--

注意,如果用phpinfo()沒發現Redis,可以看看 http://blog.csdn.net/yizdream/article/details/52314312

相關推薦

部署NGINX+PHP+Thinkphp

一直想用NGINX替換現有的APACHE,最近終於開始做了。 負載均衡+7臺NGINX伺服器作為後端。挺爽的,呵呵。開始做吧 。。。 一,安裝NGINX # yum install -y pcre pcre-devel # yum install -y zlib zlib

saltstack部署nginx+php

php memcached saltstack redis protobuf 因為基本上生產環境中都是nginx+php的環境,所以就不單獨列出salt部署php的過程了,這裏就結合我在生產環境中的腳本進行nginx+php環境的部署。部署規劃:1)編譯安裝libiconv、libmcry

使用Ansible安裝部署nginx+php+mysql

private restart keepalive pri pes cts err document fault 前提: 1、已配置好hosts文件且免密碼登錄 2、需要的yaml文件已上傳到主控端 一、使用Ansible安裝nginx 1、nginx.yaml文件 1

【03】Cent OS 7 中部署Nginx + PHP 環境

ima sdn 官網下載 stat 步驟 x86_64 def www ttext 一、Nginx環境部署 1、部署說明 1)確保系統安裝GCC編譯器及相關工具。上篇文章中已說明,使用 rpm包 安裝部署。 2)rewrite 模塊需要 pcre 庫。樓主使用的是 pcre

用docker部署nginx+php環境時,訪問php檔案不執行

今天用docker部署nginx+php環境時,訪問php頁面,提示404錯誤。檢視docker日誌發現下面錯誤: [error] 6#6: *1 connect() failed (111: Conn

thinkphp 3.2.3在nginx+php下的url重寫配置經驗

重啟 des for scrip erro desc stub think jpeg 環境:centos7.2+lnmp1.3(nginx+php7.0+mysql5.5) 進入服務器配置路徑:cd /usr/local/nginx/conf/nginx.conf 修改n

nginx 環境 thinkphp 隱藏index.php

$1 lan root hid info script htm 自己 問題 tp官網已經寫了 http://doc.thinkphp.cn/manual/hidden_index.html 不生效 重啟nginx .問題依舊 kill掉nginx進程 再啟動 貼段自己

Centos 6.6 下 nginx +php mysql + phpMyadmin 安裝部署

linux mysql php lnmp LNMP架構介紹: Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用

ccentos 7下安裝php5.6並使用nginx + php-fpm部署多個不同端口網站

png .net 又一 介紹 htm sea tip 編輯 端口 作為一個的勤雜工,近期因公司內部信息化的需求,給新進員工提供基礎的知識培訓和介紹,也為了給公司內部建立一個溝通交流的平臺,百度找了開源的百科系統HDwiki和開源的問答系統Tipask問答系統,蛋痛的這兩套系

社交網站部署——Nginx服務器+PHP服務器搭建+MySQL主從集群

安裝環境 nginx服務器 環境 tar.gz fast vim tex use nginx 案例概述 某公司的社交網站采用PHP語言開發,為了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺之上,前端為Nginx

基於ansible自動化部署nginx+mysl+php分離來實現lnmp

generate cti disabled don .so files starting free using 實驗說明: 服務角色 IP 系統 需安裝 主控機 192.168.24.128 centos7 ansible A受控機 192.168.24.

部署社交網站全過程(Nginx+PHP+Mysql+MFS+SVN)

php程序 要求 tex 需要 nor mkdir -p bison 首頁 fastcgi 案列概述 公司的社交網站采用PHP語言開發,為了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺上,前端為Nginx,通

一篇博客讓你學會部署社交網站( SVN+nginx+PHP+MySQL+MFS 內含所有源碼包)

con 從服務器 etc ini support php 添加 php程序員 type 根據公司要求,實施過程大致如下:1 部署SVN服務器,為PHP程序員創建repo目錄的訪問賬戶,通知程序員可以導入代碼2 部署nginx服務器3 部署PHP服務器4 部署MySQL主從服

docker 部署nginxphp-fpm

假設機器上已經安裝好docker環境 一.執行nginx容器 1.查詢Docker Hub 上的nginx 映象 [email protected]:~/nginx$ docker search nginx NAME DESCRIPTION

debian安裝nginx,php-fpm,php-mysql完成環境部署

1.安裝nginx apt-get install nginx 2.進入/etc/nginx/sites-available目錄編輯default配置檔案,內容如下 [email protected]:/etc/nginx/sites-available#gedit defa

linux nginx配置php(Thinkphp)

#nginx配置php(Thinkphp)的那些坑 最近想在nginx配置php,發現網上大多教程的不行,後來發現原來是要php5.6及以上版本,而且還要安裝php-fpm 下面是我的nginx的配置檔案 location ~ \.php$ {

centos7下部署nginxphp

背景介紹 相信讀者在看這篇文章之前已經fastcgi,php-fpm有所瞭解。大概來講php語言需要fastcgi程式,即php直譯器解釋,而php直譯器需要php-fpm管理器進行排程。 以下對CGI、FastCGI、php-fpm之間關係進行通俗解釋(來源於知乎使用者Journey Lin): 講Fa

thinkphp nginx 支援 thinkphp 隱藏index.php

location / {         root   /alidata/www/h5.true-view.com.cn/;         index  index.php index.html index.htm;             try_files $uri $

windows+nginx+php執行環境部署

第一部分:準備工作。(系統:Windows 8.1) 1.首先是下載軟體。 2.安裝mysql軟體。 3.解壓NGINX和PHP到你自己安裝位置。這裡我在C盤新建一個資料夾:wnmp(windows,ngnix,myspq,php),把下面的軟體安裝到這個資

Centos7 下面安裝docker 部署Nginx

docker nginx實驗 環境 Centos 7 操作系統安裝docker yum install docker -y查看docker 是否安裝成功docker -vDocker version 1.12.6, build 3a094bd/1.12.6啟動docker systemctl start do