首先我们来比较一下 apache与nginx 的优缺点:
Apache
1、稳定
2、处理动态请求有优势(nginx处理动态,会稍微略逊一些)
3、功能丰富,但是占用资源多
4、select模型,阻塞
Nginx
1、轻量级,占用资源少(apache资源多,比较笨重些)
2、抗并发,nginx以epoll作为开发模型,处理请求是异步非阻塞的
3、nginx配置方便,负载均衡,反向代理,lua语言扩展
4、处理静态请求有很大优势
两者最核心的区别在于 apache是同步多进程模型,一个连接对应一个一个进程。而nginx是异步的,多个连接(万级别)可以对应一个进程。
安装前的说明:
1、带有黄色及红色字体,不要复制,那只是代码提示或说明。
2、以下所有的软件下载目录、安装目录都有统一的存放位置:
软件下载存放目录:/home/src
软件安装目录: /usr/local/****
一、Ningx下载/安装:
1、下载nginx:wget http://nginx.org/download/nginx-1.14.2.tar.gz
2、解压安装nginx:
tar xf nginx-1.14.2.tar.gz
cd nginx-1.14.2
groupadd www
useradd -g www www -M -s /sbin/nologin (-M:不要家目录 -s /sbin/nologin:不要让它登录)
在编译前,确认是否已经安装了软件所需要的依赖库,所需要的依赖库如下:
yum install gcc gcc-c++ -y
yum install pcre-devel -y
yum install openssl-devel -y
依赖库全部安装后,进行下面的编译操作:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-pcre
当上面的编译完成后,继续下面命令,安装nginx:make && make install
安装完成后使用nginx:
nginx启动:/usr/local/nginx/sbin/nginx
nginx关闭:/usr/local/nginx/sbin/nginx -s stop
nginx重启:/usr/local/nginx/sbin/nginx -s reload
二、MySQL下载/安装:
1、下载mysql:wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
2、解压安装mysql:
tar xf mysql-5.5.62.tar.gz
cd mysql-5.5.62
groupadd mysql
useradd -g mysql mysql -M -s /sbin/nologin
在编译前,确认是否已经安装了软件所需要的依赖库,所需要的依赖库如下:
yum install cmake ncurses-devel -y
yum install autoconf -y
依赖库全部安装后,进行下面的编译操作:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1
编译完成无误后:rm -f CMakeCache.txt
当上面的完成后,继续下面命令,安装mysql:make && make install
mysql安装完成后,需要初始化(进入 /usr/local/mysql)执行命令:
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql
安装及初始化完成后使用mysql:
启动mysql:/usr/local/mysql/support-files/mysql.server start
关闭mysql:/usr/local/mysql/support-files/mysql.server stop
重启mysql:/usr/local/mysql/support-files/mysql.server restart
首次进入数据库,需要修改密码,命令:mysqladmin -uroot -p'旧密码' password '新密码'
三、PHP下载/安装:
1、下载php:wget http://cn2.php.net/get/php-5.6.40.tar.gz/from/this/mirror
注意:下载下来的是一个 mirror 文件;解决:mv mirror php.tar.gz
2、解压安装php:
tar xf php.tar.gz
cd php-7.2.13
在编译之前,先安装依赖库:
yum install libxml2-devel -y
yum install curl-devel -y
yum install libjpeg-devel -y
yum install libpng-devel -y
yum install freetype-devel -y
yum install openssl-devel -y
yum install libxslt-devel -y
依赖库全部安装后,进行下面的编译操作:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-gd --with-openssl --with-mhash --enable-pcntl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-opcache --with-xsl
编译完成无误后:make && make install
安装完成后使用php:
启动php:/usr/local/php/sbin/php-fpm
Nginx与PHP通信配置:
nginx必须配合php-fpm才能解释php语言,当nginx遇到php文件时,反向代理到9000端口交给php-fpm执行,如果只启动了nginx,没有启动php-fpm是不能解释php文件的。
1、进入下载目录,复制php配置文件到安装目录:cp php.ini-development /usr/local/php/etc/php.ini
2、进入nginx配置文件:
最后 实验一下:
在nginx的html目录建一个 index.php文件,里写输出phpinfo代码,浏览器访问若展示信息,则nginx与php通信连接实验成功!