vagrant系列教程(三):vagrant搭建的php7环境(转)
原文:http://blog.csdn.net/hel12he/article/details/51107236
前面已经把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
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 ;
server_name localhost; charset utf-;
root /vagrant/www;# 自己的项目目录,也就是php项目所在目录 location / {
# 请注意,一定要加index.php这项
index index.php index.html index.htm;
} error_page /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
} location ~ \.php$ {
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
# 注意此处变量的不同
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
修改完文件后,必须要重新启动nginx,才会使当前的配置生效。
$ systemctl reload nginx
- 1
- 1
测试访问
在/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
看到以上内容,表示配置成功!
至此,基本的php7环境搭建已经完成了。然后呢,下一次说一说用vagrant搭建redis吧。当然我不会仅仅只说redis的搭建额。到时候看啊吧!
vagrant系列教程(三):vagrant搭建的php7环境(转)的更多相关文章
- vagrant系列教程(一):vagrant的安装与初识(转)
[参考]https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.1.md 阅读目录 下载一个合适的box 完成一个box ...
- CRL快速开发框架系列教程三(更新数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- Android Studio系列教程三--快捷键
Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...
- NGUI系列教程三
接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...
- Fastify 系列教程三 (验证、序列化和生命周期)
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fast ...
- webpack4 系列教程(三): 多页面解决方案--提取公共代码
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...
- WPF系列教程——(三)使用Win10 Edge浏览器内核 - 简书
原文:WPF系列教程--(三)使用Win10 Edge浏览器内核 - 简书 在需要显示一些 H5网站的时候自带的WebBrowser总是显示不了,WebBrowser使用的是IE内核,许多H5新特性都 ...
随机推荐
- WCF 服务器调用回调函数 单程-双程操作模式:(待补充Demo)
服务器端Server 实现回调接口Interface定义.客户端实现回调接口Interface实现,从而实现服务器端通过 var channel = OperationContent.Current ...
- Linux的sed命令
一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces.sed -i 's/12 ...
- Linux的yum源的配置
yum实际上是管理的rpm软件包 只要连接网络就可以使用在线的yum源,不用配置本地yum源 网络yum源/etc/yum.repos.d/fedora.repo(Fedora)[fedora]nam ...
- Android FM模块学习之四源码学习(2)
前几章我们分析了FM模块的几个主要的类文件,今天要分析的是:FMTransceiver.java // 某些工程中名称为FMRadioService.java public class FmTra ...
- thinking in Java 学习
1.句柄 所谓句柄实际上是一个数据,是一个long的数据. 句柄是WINDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图, ...
- mysql -workbench : Error cause by ' sql-mode = only-full-group-by'
当mysql出现"only-full-group-by"问题时,是mysql的sql_mode设置出现了问题. 解决: 1. 找到mysql的 my.cnf文件,我的文件路径是: ...
- input file上传文件扩展名限制
方法一(不推荐使用):用jS获获取扩展名进行验证: <script type="text/javascript" charset="utf-8"> ...
- 一些鲜为人知却非常实用的数据结构 - Haippy
原文:http://www.udpwork.com/item/9932.html 作为程序猿(媛),你必须熟知一些常见的数据结构,比如栈.队列.字符串.链表.二叉树.哈希,但是除了这些常见的数据结构以 ...
- 测试工具之Charles视频教程(更新中。。。)
应群里小伙伴学习需求,录制新版 Charles V4 系列教程,后续内容抽空更新,测试工具系列带你上王者...(ノ°ο°)ノ前方高能预警 链接:http://pan.baidu.com/s/1c16P ...
- python---list列表
Python 列表(List) 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型 ...