美文网首页
CentOS 7 + Nginx + PHP + MySql

CentOS 7 + Nginx + PHP + MySql

作者: 路小飞 | 来源:发表于2017-12-11 14:31 被阅读11次

    1、更新系统,安装第三方源并更换默认防火墙

    1.1安装第三方源

    远程下载mysql官方源并安装源:

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

    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm  

    执行 ls -1 /etc/yum.repos.d/mysql-community*如果发现有两个仓库文件存在,如下显示,就说明安装成功:

    /etc/yum.repos.d/mysql-community.repo

    /etc/yum.repos.d/mysql-community-source.repo

    1.2更新系统

    #更新yum软件包

    yum check-update

    #更新系统

    yum update

    1.3更改默认防火墙,开启3306端口,80端口

    关闭firewall:

    systemctl stop firewalld.service #停止firewall

    systemctl disable firewalld.service #禁止firewall开机启动

    安装iptables防火墙:

    yum install iptables-services #安装

    sudo vi /etc/sysconfig/iptables #编辑防火墙配置文件

    配置文件更改如下:

    # Firewall configuration written by system-config-firewall

    # Manual customization of this file is not recommended.

    *filter

    :INPUT ACCEPT [0:0]

    :FORWARD ACCEPT [0:0]

    :OUTPUT ACCEPT [0:0]

    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    -A INPUT -p icmp -j ACCEPT

    -A INPUT -i lo -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    //下面是编辑添加的部分

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    //以上是编辑添加的部分

    -A INPUT -j REJECT --reject-with icmp-host-prohibited

    -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    COMMIT

    然后输入:wq保存退出,在命令窗口输入以下命令使其生效:

    systemctl restart iptables.service #最后重启防火墙使配置生效

    systemctl enable iptables.service #设置防火墙开机启动

    2、关闭SELINUX

    命令行输入以下内容,打开selinux配置文件:

    sudo vi /etc/selinux/config

    修改内容如下

    #SELINUX=enforcing #注释掉

    #SELINUXTYPE=targeted #注释掉

    SELINUX=disabled #增加

    输入:wq! #保存退出,然后命令行输入以下内容,使其生效

    setenforce 0 #使配置立即生效

    3、安装配置nginx

    3.1 安装

    yum install nginx #安装nginx报错请看注意↓

    systemctl start nginx #启动

    nginxsystemctl enable nginx #加入开机启动项

    注意:如果安装nginx的时候,提示没有可用的软件包nginx,需要我们手动配置下,具体细节如下:

    #首先下载对应当前系统版本的nginx包(package):

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

    #然后建立nginx的yum仓库:

    rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

    #下载并安装nginx:

    yum install nginx

    #最后启动和加入开机启动操作:

    systemctl start nginx #启动nginx

    systemctl enable nginx #加入开机启动项

    3.2配置

    #打开nginx.conf

    sudo vi /etc/nginx/nginx.conf

    #在http{}配置中加入:

    client_max_body_size 1024M;

    4、安装和配置PHP

    4.1 安装PHP和相关插件

    #安装SCL之后再安装php55以上版本:

    yum install centos-release-scl

    yum install -y php55 php55-php php55-php-cli php55-php-curl php55-php-fpm php55-php-intl php55-php-mcrypt php55-php-mysql php55-php-gd php55-php-mbstring php55-php-xml php55-php-dom

    注意:如果缺少部分扩展,请手动编译php扩展,具体方法请自行搜索

    4.2 修改PHP配置

    编辑php.ini , 将以下配置的值修改为1024M,命令窗口输入

    vim /etc/php.ini

    编辑内容如下

    post_max_size = 1024M

    memory_limit = 1024M

    upload_max_filesize = 1024M

    4.3 配置PHP-FPM

    加php-fpm管理器到systemctl中

    vim /usr/lib/systemd/system/php-fpm.service

    按i写入以下内容

    [Unit]

    Description=The PHP FastCGI Process Manager

    After=syslog.target network.target

    [Service]

    Type=simple

    PIDFile=/run/php-fpm.pid

    ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf

    ExecReload=/bin/kill -USR2 $MAINPID

    ExecStop=/bin/kill -SIGINT $MAINPID

    [Install]

    WantedBy=multi-user.target

    最后

    sudo systemctl start php-fpm #启动php-fpm

    sudo systemctl enable php-fpm  #开机启动fpm

    5、安装并配置mysql

    yum install mysql mysql-server #安装mysql

    systemctl restart mysql  #重启刷新mysql

    注意:mysql默认用户是root,没有密码,建议手动更改密码

    6.配置虚拟机

    6.1nginx配置文件示例

    server {

    listen 80;

    # [改] 网站的域名

    server_name localhost;

    #301跳转可以在nginx中配置

    # 程序的安装路径

    root /var/www/<web>;

    # 日志路径

    access_log /var/log/nginx/web.access.log;

    error_log /var/log/nginx/web.error.log;

    location / {

    index indexphp;

    try_files $uri @rewriteapp;

    }

    location @rewriteapp {

    rewrite ^(.*)$ /app_dev.php/$1 last;

    }

    location ~ ^/udisk {

    internal;

    root /var/www/EduFlag/app/data/;

    }

    location ~ ^/(app|app_dev)\.php(/|$) {

    fastcgi_pass  127.0.0.1:9000;

    fastcgi_split_path_info ^(.+\.php)(/.*)$;

    include fastcgi_params;

    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

    fastcgi_param  HTTPS              off;

    fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;

    fastcgi_param HTTP_X-Accel-Mapping /udisk=/var/www/EduFlag/app/data/udisk;

    fastcgi_buffer_size 128k;

    fastcgi_buffers 8 128k;

    }

    # 配置设置图片格式文件

    location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {

    # 过期时间为3年

    expires 3y;

    # 关闭日志记录

    access_log off;

    # 关闭gzip压缩,减少CPU消耗,因为图片的压缩率不高。

    gzip off;

    }

    # 配置css/js文件

    location ~* \.(css|js)$ {

    access_log off;

    expires 3y;

    }

    # 禁止用户上传目录下所有.php文件的访问,提高安全性

    location ~ ^/files/.*\.(php|php5)$ {

    deny all;

    }

    # 以下配置允许运行.php的程序,方便于其他第三方系统的集成。

    location ~ \.php$ {

    fastcgi_pass  127.0.0.1:9000;

    fastcgi_split_path_info ^(.+\.php)(/.*)$;

    include fastcgi_params;

    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

    fastcgi_param  HTTPS              off;

    }

    fastcgi_read_timeout 300;

    }

    相关文章

      网友评论

          本文标题:CentOS 7 + Nginx + PHP + MySql

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