Lnmp

Lnmp

網絡環境

系統版本 : CentOS release 6.6 (Final)

內核版本 : 2.6.32-504.el6.x86_64

Ip地址 :172.16.6.61/24

Nginx 版本 :nginx/1.6.2

Mysql版本5.5.43-MariaDB-log

php版本 :PHP5.4.40

xcache版本 : xcache-3.2.0.

安裝配置步驟

安裝配置nginx

1 . 安裝開發包組

編譯安裝nginx之前需要安裝開發包組"DevelopmentTools"和"Server Platform Development",還需要專門安裝pcre-devel包

# yum groupinstall"Development tools" "Server Platform Development""Desktop Platform Development" "Debug Tools" -y

 

# yum install pcre-devel -y

2 .  安裝編譯nginx

添加運行nginx worker 進程的用戶 和用戶組

# groupadd -r nginx

# useradd -g nginx -r nginx

解壓,編譯,安裝,nginx

# tar xvf nginx-1.6.2.tar.gz

# cd nginx-1.6.2

# ./configure--prefix=/usr/local/nginx-1.6.2 --user=nginx --group=nginx --pid-path=/var/run/nginx/nginx.pid--lock-path=/var/lock/nginx.lock --with-http_ssl_module--with-http_stub_status_module --with-http_gzip_static_module--with-http_flv_module --with-http_mp4_module--http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi

# make && makeinstall

編譯安裝時候的選項

--prefix=PATH setinstallation prefix #安裝nignx的目錄

--user=USER setnon-privileged user for worker processes #以什麼用戶的身份運行nignx

--group=GROUP setnon-privileged group for worker processes #以什麼組的身份運行nignx

--pid-path=PATH set nginx.pidpathname #nginx pid路徑

--lock-path=PATH setnginx.lock pathname #lock(鎖)路徑

--with-http_ssl_module enablengx_http_ssl_module #支持SSL功能

--with-http_flv_module enablengx_http_flv_module #支持flv的流媒體

....

切換至安裝nginx的安裝位置

# cd /usr/local/

建立nginx 符號鏈接,便於以後升級訪問維護

# ln -s nginx-1.6.2 nginx

創建編譯安裝時需要的路徑

# mkdir -pv /var/tmp/nginx/{client,proxy,fastcgi,uwsgi}

啓動nginx#nginx 默認會監聽在tcp/80

# /usr/local/nginx/sbin/nginx

# ss -lnt| grep :80

 

nginx的配置文件:

nginx的配置文件可分爲

(1) main配置段:全局配置段

    (2)event{}: 定義event模型工作特性

(3) http {} : 定義http協議相關的配置

 

配置段指令:要以分號結尾,語法格式: directive value1 [value2...]

 

#############main 配置段################################################################

# 指定運行worker進程的用戶和組;#在編譯中指定了運行的nginx的用戶和組;編譯完成以後默認會被註釋掉.

user  nginx nginx;

# worker進程的個數;通常應該略少於CPU物理核心數;可設置爲auto

worker_processes auto;

# 指定錯誤日誌存放的路徑,錯誤日誌記錄級別可選項爲:[ debug | info | notice | warn | error | crit ]

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

error_log  logs/error.log  crit;

# 指定 pid 存放的路徑

pid        /usr/local/nginx/nginx.pid;

 

# 指定文件描述符數量

worker_rlimit_nofile 51200;

 

#############events 配置段################################################################

events

{

  # 使用的網絡I/O模型,Linux系統推薦採用epoll模型,FreeBSD系統推薦採用kqueue模型

  use epoll;

 

  # 允許的連接數

  worker_connections 51200;

}

 

#############http 配置段################################################################

http

{

  include      mime.types;

  default_type application/octet-stream;

  # 設置使用的字符集,如果一個網站有多種字符集,請不要隨便設置,應讓程序員在HTML代碼中通過Meta標籤設置

  #charset gb2312;

     

  server_names_hash_bucket_size 128;

  client_header_buffer_size 32k;

  large_client_header_buffers 4 32k;

 

  # 設置客戶端能夠上傳的文件大小

  client_max_body_size 8m;

     

  sendfile on;

  tcp_nopush    on;

 

  keepalive_timeout 60;

 

  tcp_nodelay on;

 

  fastcgi_connect_timeout 300;

  fastcgi_send_timeout 300;

  fastcgi_read_timeout 300;

  fastcgi_buffer_size 64k;

  fastcgi_buffers 4 64k;

  fastcgi_busy_buffers_size 128k;

  fastcgi_temp_file_write_size 128k;

  # 開啓gzip壓縮

  gzip on;

  gzip_min_length  1k;

  gzip_buffers     4 16k;

  gzip_http_version 1.1;

  gzip_comp_level 2;

  gzip_types       text/plain application/x-javascripttext/css application/xml;

  gzip_vary on;

 

  #limit_zone crawler  $binary_remote_addr  10m;

 

    # 第一個虛擬主機

    server

    {

        # 監聽的端口

        listen     80;

        # 主機名稱

        server_name    www.a.com;

        # 訪問日誌文件存放路徑

        access_log      logs/a.com.access.log combined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root  /vhosts/a.com;

        }

    }

    # 第二個虛擬主機

    server

    {

        # 監聽的IP和端口

        listen     80;

        # 主機名稱

        server_name    bbb.otherdomain.com;

        #訪問日誌文件存放路徑

        access_log      logs/bbb.otherdomain.com.access.logcombined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root /data0/htdocs/bbb.otherdomain.com;

        }

    }

    # 第三個虛擬主機

    server

    {

        # 監聽的IP和端口

        listen     80;

        # 主機名稱

        server_name    www.domain.com domain.com *.domain.com;

        # 訪問日誌文件存放路徑

        access_log      logs/bbb.domain.com.access.log combined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root  /data0/htdocs/domain.com;

        }

    }

}

創建測試頁面

[root@node1 conf]# echo a.com> /vhosts/a.com/index.html

[root@node1 conf]# echo b.com> /vhosts/b.com/index.html

[root@node1 conf]# echo c.com> /vhosts/c.com/index.html

啓動nginx

# /usr/local/nginx/sbin/nginx

訪問測試頁面

[root@node1 conf]# for i inwww.a.com www.b.com www.c.com ;do curl $i ;done

a.com

b.com

c.com

安裝mariadb

 

安裝mariadb-5.5.43

#添加運行mysql的用戶和用戶組

groupadd -g 306 mysql

useradd -r -u 306 -g 306 -s/sbin/nologin mysql

id mysql

#uid=306(mysql)gid=306(mysql) groups=306(mysql)

安裝mariadb

tar xvfmariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/

cd  /usr/local/

#創建符號鏈接

ln -smariadb-5.5.43-linux-x86_64 mysql

ls -lh mysql

#lrwxrwxrwx 1 root root 27May  3 19:54 mysql ->mariadb-5.5.43-linux-x86_64

cd mysql/

cp support-files/mysql.server/etc/init.d/mysqld

chmod u+X /etc/init.d/mysqld

#創建數據目錄

mkdir /data/mydata -p

#授權mysql 爲mysql數據目錄的的屬主

chown -R root.mysql/usr/local/mariadb-5.5.43-linux-x86_64/

chown mysql.root /data/mydata

#初始化mysql

/usr/local/mysql/scripts/mysql_install_db--user=mysql --datadir=/data/mydata/

修改my.cnf 添加數據目錄的位置

\cp support-files/my-huge.cnf/etc/my.cnf

[root@localhost mysql]# vim/etc/my.cnf

[mysqld]

datadir = /data/mydata

啓動mysql

/etc/init.d/mysqld start

安裝php

PHP rpm包的依賴關係

yum install bzip2-devel -y

yum install -ylibmcrypt-devel

安裝php

tar xvf php-5.4.40.tar.bz2

cd php-5.4.40

 ./configure --prefix=/usr/local/php \

--with-mysql=/usr/local/mysql\

--with-openssl \

--with-mysqli=/usr/local/mysql/bin/mysql_config\

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--enable-fpm \

--with-mcrypt \

--with-config-file-path=/etc\

--with-config-file-scan-dir=/etc/php.d\

--with-bz2

 

make && make install

爲php提供配置文件 #cp 解壓的源代碼樹下的php.ini-production

cp php.ini-production/etc/php.ini

爲php-fpm提供配置文件

cd /usr/local/php/etc/

cp -a php-fpm.conf.defaultphp-fpm.conf

#爲php-fpm提供服務控制腳本,並將其添加至服務列表 #php解壓源代碼樹目錄下

cd /root/php-5.4.40

cpsapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm

chmod +x/etc/rc.d/init.d/php-fpm

chkconfig --add php-fpm

chkconfig php-fpm on

啓動php-fpm

/etc/init.d/php-fpm start

驗正php進程是否啓動成功

# ps aux | grep php-fpm #用於查看php進程

# netstat -tnlp | grepphp-fpm #用於查看php是否監聽在響應的套接字上

配置nginx支持php解析

vim /usr/local/nginx/conf/nginx.conf

#############main 配置段################################################################

# 指定運行worker進程的用戶和組;#在編譯中指定了運行的nginx的用戶和組;編譯完成以後默認會被註釋掉.

user  nginx nginx;

# worker進程的個數;通常應該略少於CPU物理核心數;可設置爲auto

worker_processes auto;

# 指定錯誤日誌存放的路徑,錯誤日誌記錄級別可選項爲:[ debug | info | notice | warn | error | crit ]

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

error_log  logs/error.log  crit;

# 指定 pid 存放的路徑

pid        /usr/local/nginx/nginx.pid;

 

# 指定文件描述符數量

worker_rlimit_nofile 51200;

 

#############events 配置段################################################################

events

{

  # 使用的網絡I/O模型,Linux系統推薦採用epoll模型,FreeBSD系統推薦採用kqueue模型

  use epoll;

 

  # 允許的連接數

  worker_connections 51200;

}

 

#############http 配置段################################################################

http

{

include mime.types;

default_typeapplication/octet-stream;

server_names_hash_bucket_size128;

client_header_buffer_size32k;

large_client_header_buffers 432k;

client_max_body_size 8m;

client_header_timeout 10;

client_body_timeout 10;

reset_timedout_connection on;

send_timeout 10;

sendfile on;

tcp_nopush on;

keepalive_timeout 10;

tcp_nodelay on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size128k;

fastcgi_temp_file_write_size256k;

limit_conn_zone$binary_remote_addr zone=addr:5m;

limit_conn addr 100;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plainapplication/x-javascripttext/css application/xml;

gzip_vary on;

gzip_proxied expired no-cacheno-store private auth;

gzip_disable "MSIE[1-6]\.";

open_file_cache max=102400inactive=30s;

open_file_cache_valid 90s;

open_file_cache_min_uses 2;

open_file_cache_errors on;

 

server_tokens off;

log_format access'$remote_addr - $remote_user [$time_local] "$request" '

    '$status $body_bytes_sent "$http_referer" '

    '"$http_user_agent" $http_x_forwarded_for';

 

log_not_found off;

fastcgi_intercept_errors on;

 

include/usr/local/nginx/conf.d/*.conf;

}

# mkdir /usr/local/nginx/conf.d

# vim /usr/local/nginx/conf.d/vhost.conf

    # 第一個虛擬主機

    server

    {

        # 監聽的端口

        listen     80;

        # 主機名稱

        server_name    www.a.com;

        # 訪問日誌文件存放路徑

        access_log      logs/a.com.access.log combined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root  /vhosts/a.com;

        }

        location ~ \.php$ {

            root /vhosts/a.com;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

    # 第二個虛擬主機

    server

    {

        # 監聽的IP和端口

        listen     80;

        # 主機名稱

        server_name    www.b.com;

        # 訪問日誌文件存放路徑

        access_log      logs/b.com.access.log combined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root  /vhosts/b.com;

        }

        location ~ \.php$ {

            root /vhosts/b.com;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

    # 第三個虛擬主機

    server

    {

        # 監聽的IP和端口

        listen     80;

        # 主機名稱

        server_name    www.c.com;

        # 訪問日誌文件存放路徑

        access_log      logs/c.com.access.log combined;

        location /

        {

            # 默認首頁文件,順序從左到右,如果找不到index.html文件,則查找index.htm文件作爲首頁文件

            index index.html index.htm;

            # HTML網頁文件存放的目錄

            root  /vhosts/c.com;

        }

        location ~ \.php$ {

            root /vhosts/c.com;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

訪問;


wKiom1VjEnvhkLOAAAGSlOoZqpg635.jpgwKioL1VjFBqBrDkgAAJNJ0aRBug396.jpg


安裝xcache

# tar xvfxcache-3.2.0.tar.bz2

# cd xcache-3.2.0

# /usr/local/php/bin/phpize

# ./configure --enable-xcache--with-php-config=/usr/local/php/bin/php-config

# make && makeinstall

# cp xcache.ini /etc/php.d/

配置xcache.ini

# vim /etc/php.d/xcache.ini

....

;; non-Windows example:

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

....

重啓啓動php-fpm

# /etc/init.d/php-fpm stop

# /etc/init.d/php-fpm start

訪問測試頁面

wKiom1VjEl3jYU0IAAIzc6OtOvM397.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章