• 技术文章 >后端开发 >PHP7

    vagrant如何搭建php7环境

    醉折花枝作酒筹醉折花枝作酒筹2021-06-23 09:49:04转载241
    本篇文章介绍了vagrant搭建php7开发环境的方法。其中涵盖了nginx的安装与配置,composer的安装与配置,php7安装及模块安装,以及centos7中防火墙的配置。

    前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭建好了自己的基础环境。接下来说一说如何搭建php7的开发环境。

    申明一下,这里使用的box,就是前面演示的centos7
    地址奉上:
    https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

    安装nginx

    首先需要跟新一些ngin的相关源。

    $ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
    // 执行安装过程
    $ yum install nginx

    看到以下界面时,请稍等,如果需要输入的地方,请直接按 y 然后回车。

    这里写图片描述

    启动nginx并设置为开机启动

    $ systemctl start nginx 
    $ systemctl enable nginx

    安装epel与remi源

    安装epel,epel是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。安装时一定需要注意一下自己系统的版本额。

    $ rpm -ivh http://mirrors.opencas.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

    2016-10-22日修改:

    最近发上面的源不能用了。请大家自己在这里找对应的版本

    http://dl.fedoraproject.org/pub/

    过不了墙的请用国内镜像


    http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-8.noarch.rpm

    remi源种包含最新的php相关信息,如:php7、mysql等,因此为了便捷获取php7的最新信息,也需要安装一下这个源。

    $ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    iptables防火墙

    因为以前经常使用iptables,对centos7自带的firewalld防火墙不熟悉,因此我就将关闭centos7自带的firewalld,启用自己熟悉的iptables吧。

    首先,关闭自带的firewalld防火墙

    $ systemctl stop firewalld.service 
    $ systemctl disable firewalld.service #防止开机启动

    安装iptables

    $ yum install iptables-services

    安装进程如下图所示

    这里写图片描述

    启动iptables防火墙

    systemctl start iptables.service 
    systemctl enable iptables.service #开机自动启动

    编辑防火墙配置文件

    为了我们在自己的主机上能够顺利访问,需要开启以下端口,

    vim /etc/sysconfig/iptables

    编辑防火墙,设置80(nginx) 3306(mysql/mariadb) 6379(redis)端口,外网可访问

    这里写图片描述

    PHP7.0的安装

    查看remi源中可安装的php信息

    $ yum list --enablerepo=remi --enablerepo=remi-php70 | grep php70

    该列表会列出所有可以安装的php模块信息,从中安装自己需要的模块,下面安装模块,是我自己的一个模块选择情况。其中有一部分是必须的,有一部分是可选的。比如php-fpm就是必须的,如果你用的是nginx的话。

    $ yum install --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-pecl-xdebug php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common php-json php-imap php-pecl-redis php-pecl-memcached php-pecl-mongodb

    安装完成后,输入 php -v 可以查看当前安装的php版本信息。

    这里写图片描述

    启动php-fpm,因为nginx需要通过它来解析php程序

    $ systemctl start php-fpm
    $ systemctl enable php-fpm #设置开机自启动

    配置nginx可以访问php

    进入nginx的文件配置中心,

    $ cd /etc/nginx/conf.d/
    # 复制默认的配置文件 
    $ cp default.conf php.conf

    首先先通过vim编辑default文件。将监听端口改为8080, 因为后面我们自己的php.conf会用到80端口。

    这里写图片描述

    现在来编辑复制的php.conf文件,可以直接复制以下内容,至于配置的含义,后面再开一篇文章来单独讲解吧。

    server {
        listen       80;
        server_name  localhost;
    
        charset utf-8;
        root /vagrant/www;# 自己的项目目录,也就是php项目所在目录
    
        location / {
            # 请注意,一定要加index.php这项
            index  index.php index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        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;
        }
    }

    修改完文件后,必须要重新启动nginx,才会使当前的配置生效。

    $ systemctl reload nginx

    测试访问

    在/vagrant/www下新建一个文件index.php

    <?php
        phpinfo();

    在浏览器中打开,访问对应的ip,可以看到输出的php信息

    这里写图片描述

    注:如果在使用过程中,有新增加的php模块,需要重新启动php-fpm

    systemctl reload php-fpm

    Mariadb的安装

    这里很多同学可能第一次听说mariadb,他呢是mysql的一个重要分子,或者可以理解为mysql的替代品,自从mysql被控制后,更新速度已经慢太多了。两者的用法基本没有区别,实际中有哪些坑,大家可以自己去踩一踩。哈哈,别说我不负责任。

    # 安装
    $ yum install mariadb-server
    # 启动服务
    $ systemctl start mariadb
    # 开机启动
    $ systemctl enable mariadb

    MariaDB的安全配置

    MariaDB默认root密码为空,我们需要设置一下,执行脚本:

    $ sudo mysql_secure_installation

    这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。

    首先提示输入当前的root密码:

    Enter current password for root (enter for none):

    初始root密码为空,我们直接敲回车进行下一步。

    Set root password? [Y/n]

    设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。

    Remove anonymous users? [Y/n]

    是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。

    Disallow root login remotely? [Y/n]

    是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。

    Remove test database and access to it? [Y/n]

    是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。

    Reload privilege tables now? [Y/n]

    是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。

    完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:

    $ mysql -uroot -p

    按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。

    这里写图片描述

    最后我们将MariaDB设置为开机启动。

    $ sudo systemctl enable mariadb

    让外网可以进行链接

    mysql> grant all on *.* to 'root'@'%' identified by 'root';
    mysql> flush privileges;

    安装composer

    composer的大名,我就不想介绍了,如果你是一个phper,没用过,我也就不怪你,毕竟但是他现在才刚过1.0版,但是如果听都没听过,请面壁去……

    安装说明

    $ php -r “readfile(‘https://getcomposer.org/installer‘);” > composer-setup.php
    
    $ php composer-setup.php
    
    $ php -r “unlink(‘composer-setup.php’);”

    上述 3 条命令的作用依次是:

    • 下载安装脚本(composer-setup.php)到当前目录。

    • 执行安装过程。

    • 删除安装脚本 – composer-setup.php 。

    全局安装composer

    全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

    Mac 或 Linux 系统:打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:

    $ sudo mv composer.phar /usr/local/bin/composer

    然后执行:

    composer -v

    这里写图片描述

    由于composer的包都在国外,这里设置一下composer的配置,让其每次运行时,都使用国内的包

    $ composer config -g repo.packagist composer https://packagist.phpcomposer.com

    查看composer的配置文件

    vim /root/.composer/config.json

    这里写图片描述

    看到以上内容,表示配置成功!

    推荐学习:php视频教程

    以上就是vagrant如何搭建php7环境的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:vagrant php7环境
    上一篇:如何用VS2015(vs14)开发PHP7扩展 下一篇:一分钟玩转PHP7新特性
    大前端线上培训班

    相关文章推荐

    • 详细介绍php 三种文件下载的实现• 如何用PHP获取referer判断来路防止非法访问• 三分钟带你了解PHP操作用户提交内容时需要注意的危险函数• PHP中什么是设计模式?什么是单例?怎么用?• 详解PHP中的数组分页实现(非数据库)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网