美文网首页Linux 服务器的搭建
CentOS7.0下搭建nginx+php7+postgresq

CentOS7.0下搭建nginx+php7+postgresq

作者: never615 | 来源:发表于2016-05-11 01:14 被阅读3419次

    安装步骤大体分为以下几步:

    1. 基本环境配置
    2. 安装php-fpm(同时安装了php)
    3. 安装composer
    4. 安装postgresql并配置
    5. 安装nginx
    6. 创建一个laravel应用并配置nginx

    CentOs基本环境配置

    基本

    1. 添加新用户
      adduser [user]
      passwd [user]
      gpasswd -a [user] wheel 加入有root的用户组
      useradd -G {group-name} username

    2. mac配置免密码连接服务器
      安装小工具 brew install ssh-copy-id
      配置公钥到服务器 ssh-copy-id [user]@[ip]

    3. 禁止root用户远程登录
      sudo vi /etc/ssh/sshd_config
      vim 搜索: /PermitRoot 改为no
      重新加载ssh:sudo systemctl reload sshd

    4. 禁止ssh使用密码登录
      sudo vi /etc/ssh/sshd_config
      搜索 PasswordAuthent 改为no
      重新加载

    5. 修改ssh端口
      搜索配置文件 port 修改 重新加载

    6. 防火墙常用

    • firewall-cmd --add-port=12222/tcp --permanent
    • firewall-cmd --reload
    1. 更新系统和软件
    • yum -y install yum-cron
    • 修改/etc/yum/yum-cron.conf,apply_updates = yes.
    • systemctl start crond
    • systemctl start yum-cron

    yum和源

    在CentOS上管理软件可以使用yum作为包管理工具,可以用命令查询、删除、下载、安装、删除系统上的软件。

    yum的使用:yum参考手册

    系统官方的资源库提供的软件不能满足我们的需求,比如搜索php70u,会提示NO Matches found,所以我们要添加额外的资源库。

    yum install epel-release
    

    在这里可以找到ius的包,ius

    复制包地址,使用wget下载,会下载到当前目录。

    wget https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
    

    然后使用命令安装:

    rpm -ivh ius-release-1.0-10.ius.el6.noarch.rpm epel-release-6-5.noarch.rpm
    

    安装php-fpm和php,安装php常用扩展

    搜索php-fpm:

    yum search php70u-fpm
    

    安装,因为yum会自动解决软件之间的依赖,所以会自动安装php

    yum install php70u-fpm
    

    查看php-fpm的状态:

    systemctl status php-fpm
    

    启动php——fpm:

    systemctl start php-fpm
    

    设置开机启动:

    systemctl enable php-fpm
    

    安装php常用的扩展:

    yum install php70u-gd php70u-mysqlnd php70u-pdo php70u-mcrypt php70u-mbstring php70u-json php70u-cli -y
    

    安装完成需要重新加载php-fpm:

    systemctl reload php-fpm
    

    修改权限:/etc/php-fpm.d/www.conf
    我是把用户修改成了nginx,group是www.

    安装composer

    composer是php中管理依赖的工具官网

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '92102166af5abdb03f49ce52a40591073a7b859a86e8ff13338cf7db58a19f7844fbc0bb79b2773bf30791e935dbd938') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    

    这几条命令的意思就是:下载;校验;安装;删除安装包;

    在国内使用composer如果没有翻墙的话,可以使用镜像。镜像地址

    安装postgresql并配置

    直接使用yum安装地方postgres不是最新的,一些新特性无法使用,建议按官网教程安装最新版。

    yum install http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm
    

    完成之后:

    yum install postgresql95-server postgresql95-contrib
    /usr/pgsql-9.5/bin/postgresql95-setup initdb
    systemctl enable postgresql-9.5.service
        systemctl start postgresql-9.5.service
    yum install php70u-pgsql
    

    查看是否安装成功:

    rpm -aq|grep postgres
    

    配置:
    postgres安装完成之后会生成名为postgres的数据库、数据库用户和linux系统用户

    • 切换到postgres用户:

        sudo su - postgres
      
    • 使用psql命令登录PostgreSQL:

        psql
      

    这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

    • 第一件事是使用\password命令,为postgres用户设置一个密码。

      \password postgres
      
    • 创建数据库用户dbuser
      create user dbuser with password 'pass';

    • 在shell下创建超级用户:
      sudo -u postgres createuser --superuser dbuser
      之后登录数据库控制台,设置dbuser用户的密码,完成后退出控制台

    sudo -u postgres psql
    \password dbuser
    \q
    

    (postgres安装完成之后会生成名为postgres的数据库、数据库用户和linux系统用户)psql命令是登录PostgreSQL控制台

    • 创建数据库exampledb,并指定所有者为dbuser

      create database gatewayone owner dbuser;
      or shell创建
      sudo -u postgres createdb -O dbuser exampledb
      

    我是使用Navicat Premium和Postico作为数据库管理软件的。Postico更轻,查看修改数据比较方便,Navicat功能比较强大。

    数据库直接安装完成之后是不能远程访问的,如果需要远程访问的话,需要配置一下:

    修改postgresql.conf和pg_hba.conf这两个文件。

    可以使用locate命令定位这两个文件,updatedb命令可以更新locate文件,如果刚安装完没有找到这两个文件,可以调用这个命令刷新一下。
    需要切换到postgres用户

    • postgresql.conf配置

        listen_addresses = '*'     //监听所有ip的连接,默认是本机  
        port = 5432             //这个不开也行,默认就是5432端口
      
    • pg_hba.conf配置

        配置host    all         all         0.0.0.0/0             md5
      
    • 如果配置防火墙,记得开放端口

    修改完记得重启。

    安装nginx并配置

    nginx官网安装教程

    想安装最新nginx,我们需要先添加nginx的库。

    创建文件/etc/yum.repos.d/nginx.repo,并写入以下内容:

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/mainline/centos/OSRELEASE/7/
    gpgcheck=0
    enabled=1   
    

    或者使用rpm安装:

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    

    然后使用yum命令安装nginx即可。

    创建一个laravel应用并配置nginx

    laravel官方文档

    • 先通过composer下载laravelcomposer global require "laravel/installer"
    • 创建一个laravel项目composer create-project --prefer-dist laravel/laravel blog

    简单的nginx配置使其可以访问laravel应用:
    配置文件在/etc/nginx/conf.d目录下。一个基本的配置如下:

    server {
       listen 81;
       server_name www.laravel.com;     
       root /data1/www/laravelapps/app/blog/public;
       index index.php index.html index.htm;
    
       location / {
            try_files $uri $uri/ /index.php?$query_string;
       }
    
       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;
          fastcgi_param   SCRIPT_NAME  $fastcgi_script_name;     
       }
    }
    
    

    相关文章

      网友评论

        本文标题:CentOS7.0下搭建nginx+php7+postgresq

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