nginx服务器的安装及相应的配置

用过了apache就想着用用nginx,网上教程其实很多,但是受服务器版本等限制,每个人遇到的问题也不一样,先记录下我的

一.安装依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel  //一键安装四个依赖

二.下载nginx的tar包

//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz   //解压

三.安装nginx

//进入nginx目录
cd /usr/local/nginx/nginx-1.13.7
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install

四.启动nginx前

防火墙开通8090端口,用于nginx;且服务器控制台安全组也要开通好:firewall-cmd --zone=public --add-port=8090/tcp --permanent

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

因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。linux 修改路径/usr/local/nginx/conf/nginx.conf,Windows 下 安装目录\conf\nginx.conf。修改端口为8090,localhost修改为你服务器ip地址。

检查配置是否正确:sbin目录下:./nginx -t

五.启动nginx

启动代码格式:nginx安装目录地址 -c nginx配置文件地址;如:[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

六.验证,若无法打开关闭防火墙看看是否为防火墙问题

Nginx虚拟域名配置及测试验证

//编辑nginx.conf
sudo vim /usr/local/nginx/conf/nginx.conf
//增加行,,,在http{}的最下面
include vhost/*.conf
//保存退出

//在/usr/local/nginx/conf目录新建vhost文件夹
mkdir vhost
//创建每个域名的配置
sudo vim jimisun.com.conf
//节点中增加入响应的配置 端口转发  或者访问文件系统

  附一下vhost.conf的内容

server {
                        listen       8090;
                        server_name  ip地址;

                        location / {
                                        index  index.html index.htm index.php;
                                        if (!-e $request_filename){
                                                        rewrite ^/(.*) /index.php last;
                                        }
                                #autoindex  on;
                        }
                        location ~ \.php$ {

                                fastcgi_pass   127.0.0.1:9000;
                                fastcgi_index  index.php;
                                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                                include        fastcgi_params;
                        }

}

  再附一下我本地使用phpstudy的域名站点配置(已经配置好了php7)

server {
        listen       80;
        server_name  www.local-cps.cn local-cps.cn;
        root   "项目的起始包含index.php文件的文件夹全路径";
        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

Nginx重启:

  方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

  方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务

PHP7(7.2.12):

一.下载依赖

目录/usr/local下新建php文件夹,并下载php软件包
    wget http://am1.php.net/get/php-7.2.12.tar.bz2/from/this/mirror      //注意,小心下载下来的是页面,否则没法解压缩,file 文件名 命令查看
安装tar及bzip2
    yum install -y tar
    yum -y install bzip2
解压php压缩包:
    tar xjvf php-7.2.12.tar.bz2
安装php需要的扩展:
    yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y

二.开始安装

//进入php-7.2.12目录
    cd /usr/local/php/php-7.2.12
//执行命令
    ./configure
//编译安装:
    make
    make install

配置nginx.conf支持php:

  打开nginx配置文件(/usr/local/nginx/conf/nginx.conf),找到localtion模块,在index后面添加index.php,使nginx识别php文件;  

  

启动php-fpm:

 将php-fpm.conf.default复制为php-fpm.conf

  cd /usr/local/php720/etc

  cp php-fpm.conf.default php-fpm.conf

然后启动php-fpm

  /usr/local/php720/sbin/php-fpm

如果启动报错(如下图):

  解决方法:进入到 /usr/local/php720/etc/php-fmp.d下的www.conf.default 复制为www.conf,然后启动php-fpm;

进入文件夹(如果进不去,就一步步的cd进去; 如果没有这个文件就自己创建个php-fpm.d文件夹,再进到网址下载www.conf文件:https://pan.baidu.com/s/1o8mRYkU)

  cd /usr/local/php720/etc/php-fpm.d

  cp www.conf.default www.conf

解决后,先把php-fpm进程清除

  pkill php-fpm

再启动php-fpm

  /usr/local/php720/sbin/php-fpm

最后在/usr/local/nginx/html下新建文件index.php,输出phpinfo();

  vi index.php

运行ip,如下

mysql(5.7):

一.下载依赖

//CentOS7的yum源中默认是没有mysql的。所以要先下载mysql的repo源。
//下载 mysql的repo
  # wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
//安装mysql源安装包
  # rpm -ivh mysql57-community-release-el7-11.noarch.rpm
//安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
//安装Mysql
    yum -y install mysql-community-server
//启动Mysql服务
    systemctl start mysqld
//设置开机启动
    [root@localhost ~]# systemctl enable mysqld
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# chkconfig --list

修改mysql root本地登录密码

  mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。[root@localhost ~]# more /var/log/mysqld.log

临时密码:in1N=ERmABRb

登陆mysql并修改密码:mysql -u root -pin1N=ERmABRb

//登入
$ mysql -u root -pin1N=ERmABRb
//修改密码为Aaa2019.cn
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aaa2019.cn';
Query OK, 0 rows affected (0.00 sec)
//注意, mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位

设置允许远程登录  

//Mysql默认不允许远程登录,我们需要设置下,并且防火墙开放3306端口;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Aaa2019.cn' WITH GRANT OPTION;
//返回
    Query OK, 0 rows affected, 1 warning (0.01 sec)
//退出
    mysql> exit;


//设置端口
    [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
//返回
    success
//重启防火墙
    [root@localhost ~]# firewall-cmd --reload


    

  

附mysql7.3.23的安装:

一.下载依赖

  下载mysql:https://dev.mysql.com/downloads/cluster/7.3.html

  

wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz
//解压:
    tar -xvzf mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz
//重命名:
    mv mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64 mysql-7.3.23
//复制命名后的目录
    cp -r mysql-7.3.23 /usr/local/mysql7323

//添加用户组和用户:
    cd /usr/local/mysql7323
    #添加用户组
    groupadd mysql
//#添加用户mysql 到用户组mysql
    useradd -g mysql mysql

//创建mysql数据目录,新目录不存在则创建:
    mkdir ./data/mysql  或 mkdir /usr/local/mysql7323/data/mysql
//mysql安装根目录下修改目录权限:
    chown -R mysql:mysql ./

初始化数据库:(注意路径)

  ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql7323 --datadir=/usr/local/mysql7323/data

问题报错:提示没有安装perl,原因:缺少perl模块中的Data::Dumper

  

  yum -y install autoconf  //安装autoconf库(此包安装时会安装Data:Dumper模块)

 再次执行初始化报错:原因:缺少libaio库文件

  

  解决方法:yum install libaio* -y

  再次执行初始化ok

//修改权限为root权限:
    chown -R root:root .
    chown -R mysql:mysql data

//添加启动服务:
    cp support-files/mysql.server /etc/init.d/mysql
    #修改启动脚本
    vi /etc/init.d/mysqld
    #修改项:
    basedir=/usr/local/mysql/
    datadir=/usr/local/mysql/data/mysql

启动mysql服务:

  service mysqld start

  报错,提示无权限

  

  解决方法:chmod a+wrx /etc/init.d/mysqld

redis:  

 

//先下载phpredis-develop
    cd /tmp
    wget https://codeload.github.com/phpredis/phpredis/zip/develop

//安装unzip、zip解压工具
    yum -y install unzip zip

//解压
    unzip develop
//解压后会多了个phpredis-develop的目录。进入目录
    cd phpredis-develop
//安装phpize模块
    yum -y install php-devel
//执行phpize
    sudo phpize
//查找php-config路径
    find / -name php-config
    //例如:我的是:/usr/local/php720/bin/php-config

//配置环境
    ./configure --with-php-config=/usr/local/php720/bin/php-config
//编译安装
    sudo make && make install
    //成功后会告诉你生成的redis.so扩展文件在哪个目录
    //Installing shared extensions:     /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/

 配置php的redis:

vim /usr/local/php720/lib/php.ini
    extension= /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/redis.so

//ok
//解决后,先把php-fpm进程清除
    pkill php-fpm
//再启动php-fpm
    /usr/local/php720/sbin/php-fpm

//防火墙端口:
    firewall-cmd --zone=public --add-port=6379/tcp --permanent

  

注意,linux下php7中若找不到php配置文件php.ini

解决方法:首先需要说明的是,如果你的php是编译安装的,那么默认是没有php.ini的,你必须自行去源码包里边拷贝。运行phpinfo()命令可以看到php指定的配置文件路径,把配置文件放到这个路径中即可。

另附一下以前使用tp3.2框架时的坑

解决方法:

总体来说,nginx确实是首选服务器,抗并发要强于apache(apache是阻塞的,nginx是异步非阻塞);apache模块比较多,稳定,但是配置复杂。相对nginx就简洁,bug比较多了;支持负载均衡;并发量在50000左右;当然还有其他优势和劣势,先这样吧,以后再继续研究

猜你喜欢

转载自www.cnblogs.com/two-bees/p/10509651.html