继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Nginx 运维架构之(Nginx+PHP)

哈士奇WWW
关注TA
已关注
手记 496
粉丝 71
获赞 400

  1、首先我们来看下web服务器的排名情况

wKiom1ef90Sy23rOAABN1KkcxZY312.png

可以看到Nginx占有30.6%,Apache 52.0%,Nginx特点如下

1、配置简单,灵活,轻量。

2、高并发(静态小文件),静态几万的并发

3、占用资源少

4、功能种类比较多(web,cache,proxy),每一个功能都不是特别强

5、支持epoll模型,使得nginx可以支持高并发 Apache 选择 select模型

6、nginx可以搭配动态服务(FASTCGI接口)

6、利用nginx可以对ip限速,可以限制连接数


并发能力

nginx 1-3万  php 300-800  db 300-800.日pv2000万以下,并发1万以下都可以用nginx做反向代理


2、nginx的安装(centos6.7)

[root@centos02 tools]#  yum install pcre pcre-devel openssl-devel -y

[root@centos02 tools]# wget  http://nginx.org/download/nginx-1.6.3.tar.gz 

[root@centos02 tools]# tar xf nginx-1.6.3.tar.gz 

[root@centos02 tools]# cd nginx-1.6.3

[root@centos02 nginx-1.6.3]# useradd -s /sbin/nologin -M nginx

[root@centos02 nginx-1.6.3]# ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx  --with-http_stub_status_module --with-http_ssl_module

[root@centos02 nginx-1.6.3]# make && make install    

[root@centos02 nginx-1.6.3]# ln -s /application/nginx-1.6.3/ /application/nginx

[root@centos02 nginx-1.6.3]#  /application/nginx/sbin/nginx -t   检查语法

[root@centos02 nginx-1.6.3]#  /application/nginx/sbin/nginx   启动nginx

 

简单截图下安装过程

wKiom1ef_H-iOn0-AAJkjYBqO2s309.png

wKioL1ef_JXwY3-tAARYg3AW78U617.png

访问下nginx服务

wKioL1ef_O6xej5yAAEvEy6KTOQ991.png

wKioL1ef_Try6ufPAADoRh7xOCU455.png


一份简单的nginx配置

[root@centos02 conf]# cat nginx.conf

worker_processes  2;

events {

    worker_connections  1024;

}

http {

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

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  www.martin.com martin.com;

        location / {

            root   html/www;

            index  index.php index.html index.htm;

        }

         

          

        location ~ .*\.(php|php5)?$ {

            root  html/www;

            fastcgi_pass 127.0.0.1:9000;

            fastcgi_index index.php;

            include fastcgi.conf;

               }

         access_log  logs/access_www.log  main;        

   }

             

    server {

        listen       80;

        server_name  bbs.martin.com;

        location / {

            root   html/bbs;

            index  index.php index.html index.htm;

        }

       

              

        location ~ .*\.(php|php5)?$ {

            fastcgi_pass 127.0.0.1:9000;

            fastcgi_index index.php;

            include fastcgi.conf;

               }

         access_log  logs/access_bbs.log  main;       

    }

###status

   server{

      listen 80;

      server_name status.martin.org;

      location / {

      stub_status on;

      access_log off;

        }

   }

}

3、数据库MySQL的安装

[root@centos02 tools]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz   

 这是个二进制包,无需编译 

[root@centos02 tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz 

[root@centos02 tools]# useradd -s /sbin/nologin -M mysql

[root@centos02 tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49 

[root@centos02 tools]# ln -s /application/mysql-5.5.49/  /application/mysql

[root@centos02 tools]#  /application/mysql/scripts/mysql_install_db --basedir=/application/mysql  --datadir=/application/mysql/data/ --user=mysql

[root@centos02 tools]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/support-files/mysql.server 

[root@centos02 tools]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld 

[root@centos02 tools]# chmod +x /etc/init.d/mysqld

[root@centos02 mysql]# chown -R mysql.mysql /application/mysql/

[root@centos02 mysql]# cp support-files/my-small.cnf /etc/my.cnf

过程中的相关截图

wKiom1egJeGBDbMMAAN6Yr5xO6I411.png

wKiom1egJhCDe6flAAEf7NBmUEU634.png


4、php的安装

wKioL1egJrCg_0kdAARLxU36DYc113.png


php的安装(5.3.27),需要先安装nginx和mysql

[root@centos02 libiconv-1.14]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

[root@centos02 tools]# yum install zlib-devel libxml2-devel libjpeg-devel libiconv-devel -y

[root@centos02 tools]# yum install freetype-devel libpng-devel gd-devel curl-devel libxslt-devel -y

[root@centos02 libiconv-1.14]# yum -y install libmcrypt-devel mhash mhash-devel mcrypt libxslt-devel 

[root@centos02 tools]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 

[root@centos02 tools]# tar xf libiconv-1.14.tar.gz 

[root@centos02 tools]# cd libiconv-1.14

[root@centos02 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv

[root@centos02 libiconv-1.14]# make && make install

[root@centos02 tools]# tar xf php-5.3.27.tar.gz 

[root@centos02 tools]# cd php-5.3.27

[root@centos02 php-5.3.27]#  ./configure \

> --prefix=/application/php5.3.27 \

> --with-mysql=/application/mysql \

> --with-iconv-dir=/usr/local/libiconv \

> --with-freetype-dir \

> --with-jpeg-dir \

> --with-png-dir \

> --with-zlib \

> --with-libxml-dir=/usr \

> --enable-xml \

> --disable-rpath \

> --enable-safe-mode \

> --enable-bcmath \

> --enable-shmop \

> --enable-sysvsem \

> --enable-inline-optimization \

> --with-curl \

> --with-curlwrappers \

> --enable-mbregex \

> --enable-fpm \

> --enable-mbstring \

> --with-mcrypt \

> --with-gd \

> --enable-gd-native-ttf \

> --with-openssl \

> --with-mhash \

> --enable-pcntl \

> --enable-sockets \

> --with-xmlrpc \

> --enable-zip \

> --enable-soap \

> --enable-short-tags \

> --enable-zend-multibyte \

> --enable-static \

> --with-xsl \

> --with-fpm-user=nginx \

> --with-fpm-group=nginx \

> --enable-ftp

[root@centos02 php-5.3.27]# make

报错如下

wKioL1egL-2gjPhHAAQ8_8-z1dM229.png

解决方法:

[root@centos02 php-5.3.27]#  ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/

[root@centos02 php-5.3.27]# touch ext/phar/phar.phar

[root@centos02 php-5.3.27]# make && make install

wKiom1egMmbi5_bYAAN0FSxmanY868.png

[root@centos02 php-5.3.27]# ln -s /application/php5.3.27/ /application/php

[root@centos02 php-5.3.27]# cp php.ini-production /application/php/lib/php.ini

[root@centos02 php-5.3.27]#  cd /application/php/etc/

[root@centos02 etc]# cp php-fpm.conf.default php-fpm.conf

[root@centos02 etc]# cat php-fpm.conf

[global]

[www]

user = nginx

group = nginx

listen = 127.0.0.1:9000

pm = dynamic

pm.max_children = 5

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3

[root@centos02 etc]#  /application/php/sbin/php-fpm

[root@centos02 etc]#  netstat -lantup|grep php-fpm

wKioL1egMjSQ3eIyAAB2Qv_kCw8728.png

 

/application/nginx/html/www

[root@centos02 www]# cat index.php 

<?php

phpinfo()

?>


打开浏览器访问测试

wKiom1egNwqg23qxAAMmszGDSyc888.png



打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP