美文网首页
centos7安装php+mysql+nginx发布项目

centos7安装php+mysql+nginx发布项目

作者: jiahaofeng | 来源:发表于2019-08-08 15:33 被阅读0次

    Nginx 安装

    一、安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
    

    二、首先要安装 PCRE

    PCRE 作用是让 Nginx 支持 Rewrite 功能

    1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    [root@bogon src]# cd /usr/local/src/
    [root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    

    这里出现“-bash: wget: command not found”的错误,执行“yum -y install wget”可解决

    安装PCRE.png
    2、解压安装包:
    [root@bogon src]# tar zxvf pcre-8.35.tar.gz
    
    3、进入安装包目录
    [root@bogon src]# cd pcre-8.35
    
    4、编译安装
    [root@bogon pcre-8.35]# ./configure
    [root@bogon pcre-8.35]# make && make install
    
    5、查看pcre版本
    [root@bogon pcre-8.35]# pcre-config --version
    
    查看pcre版本.png
    安装 Nginx
    1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz
    [root@bogon src]# cd /usr/local/src/
    [root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
    
    安装Nginx.png
    2、解压安装包
    [root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
    
    3、进入安装包目录
    [root@bogon src]# cd nginx-1.6.2
    
    4、编译安装
    [root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
    [root@bogon nginx-1.6.2]# make
    [root@bogon nginx-1.6.2]# make install
    
    5、查看nginx版本
    [root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
    
    查看nginx版本.png

    到此,nginx安装完成。

    Nginx 配置

    创建 Nginx 运行使用的用户 www:

    [root@bogon conf]# /usr/sbin/groupadd www 
    [root@bogon conf]# /usr/sbin/useradd -g www www
    

    配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

    [root@bogon conf]#  cat /usr/local/webserver/nginx/conf/nginx.conf
    
    user www www;
    worker_processes 2; #设置值和CPU核心数一致
    error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
    pid /usr/local/webserver/nginx/nginx.pid;
    #Specifies the value for maximum file descriptors that can be opened by this process.
    worker_rlimit_nofile 65535;
    events
    {
      use epoll;
      worker_connections 65535;
    }
    http
    {
      include mime.types;
      default_type application/octet-stream;
      log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                   '$status $body_bytes_sent "$http_referer" '
                   '"$http_user_agent" $http_x_forwarded_for';
      
    #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 on; 
      gzip_min_length 1k;
      gzip_buffers 4 16k;
      gzip_http_version 1.0;
      gzip_comp_level 2;
      gzip_types text/plain application/x-javascript text/css application/xml;
      gzip_vary on;
     
      #limit_zone crawler $binary_remote_addr 10m;
     #下面是server虚拟主机的配置
     server
      {
        listen 80;#监听端口
        server_name localhost;#域名
        index index.html index.htm index.php;
        root /usr/local/webserver/nginx/html;#站点目录
          location ~ .*\.(php|php5)?$
        {
          #fastcgi_pass unix:/tmp/php-cgi.sock;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
        {
          expires 30d;
      # access_log off;
        }
        location ~ .*\.(js|css)?$
        {
          expires 15d;
       # access_log off;
        }
        access_log off;
      }
    
    }
    

    检查配置文件nginx.conf的正确性命令:

    [root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
    
    nginx.conf的正确性命令.png
    启动 Nginx

    Nginx 启动命令如下:

    [root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx
    
    Nginx启动.png
    访问站点

    从浏览器访问我们配置的站点ip:


    访问.png
    Nginx 其他命令

    以下包含了 Nginx 常用的几个命令:

    /usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
    /usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
    /usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx
    

    php安装

    安装前准备

    centos下执行

    yum -y install gcc gcc-c++ glibc
    
    yum -y install libmcrypt-devel mhash-devel libxslt-devel \
    libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
    zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
    ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
    krb5 krb5-devel libidn libidn-devel openssl openssl-devel
    
    cd /usr/local/src
    wget http://php.net/get/php-5.6.27.tar.gz/from/a/mirror
    tar -zvxf mirror
    cd php-5.6.27
    
    ./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \
    --enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \
    --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
    --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
    --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \
    --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
    

    经过几次安装发现上面的编译有时候会少了openssl和pdo_mysql,于是决定用下面的编译:

    ./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc/ \
    --enable-inline-optimization \
    --enable-shared \
    --enable-opcache \
    --enable-fpm \
    --with-pdo-mysql=mysqlnd \
    --with-gettext \
    --enable-mbstring \
    --with-iconv \
    --with-mcrypt \
    --with-mhash \
    --with-openssl \
    --enable-bcmath \
    --enable-soap \
    --with-libxml-dir \
    --enable-pcntl \
    --enable-shmop \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-sockets \
    --enable-intl \
    --with-curl \
    --with-zlib \
    --enable-zip \
    --with-bz2 \
    --enable-xml \
    --with-pcre-dir \
    --with-gd \
    --enable-static \
    --enable-wddx \
    --with-xmlrpc \
    --with-libdir=/usr/lib64 \
    --with-jpeg-dir=/usr/lib64 \
    --with-freetype-dir=/usr/lib64 \
    --with-png-dir=/usr/lib64
    
    php.png

    接着执行

    make
    

    经过一段时间的等待, 会看到以下内容:


    make.png

    接着继续执行:

    make  install 
    

    成功的话可以看到以下结果:

    make-install.png
    添加环境变量:
     vi  /etc/profile
    

    在末尾加入:

    PATH=$PATH:/usr/local/php/bin
    export PATH
    

    使改动立即生效:

    source /etc/profile
    

    然后php -v, 可以看到:


    php版本.png

    以上就完成了php的安装

    下面是对php-fpm运行用户进行设置

    1、为php提供配置文件
    cd php-5.6.27
    cp  php.ini-production  /usr/local/php/lib/php.ini
    
    2、为php-fpm提供配置文件
    cp  /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf  
    
    cp /usr/local/php/sbin/php-fpm  /etc/init.d/
    
    chmod  a+x  /etc/init.d/php-fpm
    

    启动php

     /usr/local/php/sbin/php-fpm
    
    php_start.png
    3、nginx和php-fpm整合

    编辑/usr/local/webserver/nginx/conf/nginx.conf

     vim /usr/local/nginx/nginx.conf
    

    修改如下:

    红框中“#”号去掉

    图片.png

    红框中“#”号去掉


    图片.png

    添加红框中内容


    图片.png
    改成如下
    图片.png
    重新载入nginx的配置文件:
    /usr/local/webserver/nginx/sbin/nginx -s reload
    

    测试php文件
    在/usr/local/webserver/nginx/html下创建index.php文件,输入如下内容

     <?php
        phpinfo();
     ?>
    

    浏览器访问
    访问http://你的服务器ip/index.php,皆可以见到php信息了


    图片.png

    安装Mysql

    (1)检查系统中是否已安装 MySQL。

    rpm -qa | grep mysql
    
    图片.png

    返回空值的话,就说明没有安装 MySQL 。


    注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。


    图片.png

    (2)查看已安装的 Mariadb 数据库版本。

    rpm -qa|grep -i mariadb
    
    图片.png

    (3)卸载已安装的 Mariadb 数据库。

    rpm -qa|grep mariadb|xargs rpm -e --nodeps
    
    图片.png

    (4)再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。

    rpm -qa|grep -i mariadb
    
    图片.png

    (5)下载安装包文件。

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    
    图片.png

    (6)安装mysql-community-release-el7-5.noarch.rpm包

    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    
    图片.png

    安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。


    图片.png

    执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。


    图片.png
    (6)安装mysql。
    yum install mysql-server
    
    图片.png

    (7)检查mysql是否安装成功。

    rpm -qa | grep mysql
    
    图片.png

    (8)启动 mysql 服务 。

    
    systemctl start mysqld.service #启动 mysql
    systemctl restart mysqld.service #重启 mysql
    systemctl stop mysqld.service #停止 mysql
    systemctl enable mysqld.service #设置 mysql 开机启动
    

    (9)设置密码 。
    mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码。

    
    # mysql -u root
    mysql> use mysql;
    mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
    mysql> flush privileges; 
    
    图片.png

    (10)设置远程主机登录

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';
    

    例如:执行以下命令,为root 用户添加远程登录的能力。

    mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
    
    图片.png
    开放3306端口

    如果没有开放3306的端口,需要执行下面的操作:

    firewall-cmd --zone=public --add-port=3306/tcp --permanent  //增加开启3306端口
    systemctl restart firewalld.service //重启防火墙
    firewall-cmd --reload  //重新载入配置
    

    开放端口的详细操作也可以参考我另一篇文章:https://www.jianshu.com/p/efd99c21ee68

    相关文章

      网友评论

          本文标题:centos7安装php+mysql+nginx发布项目

          本文链接:https://www.haomeiwen.com/subject/zinodctx.html