Mac下快速搭建PHP开发环境步骤详解
最近做了一个后端的项目,是用PHP+MySQL+Nginx做的,所以把搭建环境的方法简单总结一下。
备注:
物料:Apache/Nginx+PHP+MySQL+MAMPMac OS 10.12.1 自带Apache,Nginx和PHP
1.运行Apache
查看Apache版本,在终端根目录输入如下命令:
sudo apachectl -v
终端会输出Apache的版本及built时间
Server version: Apache/2.4.23 (Unix) Server built: Aug 8 2016 16:31:34
开启Apache
sudo apachectl start
开启后,可以通过浏览器访问:http://localhost,页面显示“It works” 表示已经成功。
关闭Apache
sudo apachectl stop
重启Apache
sudo apachectl restart
2.配置PHP
编辑Apache的配置文件,终端输入:
sudo vi /etc/apache2/httpd.conf
找到:
#LoadModule php5_module libexec/apache2/libphp5.so
去掉前面的“#”号注释,然后 :wq 保存退出即可
复制一份php.ini.default并将其命名为php.ini即可
sudo cp /etc/php.ini.default /etc/php.ini
重启Apache,使其生效
sudo apachectl restart
3.安装MySQL
下载MySQL:http://dev.mysql.com/downloads/mysql/ 下载后双击安装,成功之后,会弹出提示框:
017-02-12T09:00:08.587153Z 1 [Note] A temporary password is generated for root@localhost: s;QVTg#=i7wP If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.
这个临时密码不好记,可以把它改掉。
以安全模式启动MySQL,并且跳过安全密码,终端输入如下命令:
sudo mysqld_safe --skip-grant-tables &
修改MySQL密码:
原理是修改database:mysql 的table:user 中的User字段为root的密码,5.7版本的mysql的密码字段是authentication_string,低版本的叫password;
update user set authentication_string=PASSWORD("your password") where User="root";
刷新权限,退出重启:
MySQL flush privileges; MySQL quit; 终端:service mysql start
密码修改完成,已经将密码修改为root了。
打开系统偏好配置最下面那一行- MySQL,
开启MySQL:Start MySQL Server 关闭MySQL:Stop MySQL Server
注意:Automatically Start MySQL Server On Startup是默认勾选的,勾选后打开电脑会默认开启MySQL,建议不需要的可以不用默认勾选
嫌终端查看数据库不方便的,可以下载Navicat Lite管理软件,管理MySQL超级方便。
4.大招来了,安装MAMP安装MAMP后,你会发现你上面做的事情基本都是浪费……因为这个一个装完,其他基本都不需要动了,除了稍微改改配置什么的。安装地址:https://www.mamp.info/en/ 安装免费版的就足够了
通过Preferences设置可以设置项目是用的是Apache还是Nginx,可以设置端口号,也可以设置是用PHP的版本号,然后可以将文件夹指向自己的项目,如果没有就新建一个,最后只需要点一下start即可。
超级方便有木有!
这样,一个完整的工程环境就搭建好了,接下来,就可以愉快的编码啦!
- HDUOJ---2546 饭卡
- 假期前的数据库检查脚本之主备关系(r11笔记第46天)
- HDUOJ----1003 Max Sum
- HDUOJ--Bone Collector
- HDUOJ--1058HangOver
- 免插件实现WordPress的Sitemap功能
- HDUOJ--1865 1string
- Golang语言延迟函数defer用法分析
- HDUOJ---大菲波数
- HDUOJ Children’s Queue
- HDUOJ----1250 Hat's Fibonacci
- HDUOJ---1133(卡特兰数扩展)Buy the Ticket
- HDUOJ--2079选课时间(题目已修改,注意读题)
- HDUOJ---2082
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [888]python内置函数vars()|dir()|locals()
- Mdnice,一种记录知识的新方式
- [887]python中@classmethod和@staticmethod
- leetcode每日一题-99. 恢复二叉搜索树
- Java 两个经纬度获取方位
- 使用Python实现基本初等函数可视化
- 递归回溯--复原IP地址
- 通过 generic-webhook-trigger 插件实时获取 Bitbucket Repository Events
- 初识TypeScript:查找指定路径下的文件按类型生成json
- Xamarin Forms WPF 干掉默认的窗口导航条
- WPF 从零手动创建承载 Xamarin Forms 项目
- 帝都房价回调?带你用Python了解北京二手房市场现状
- Zabbix 利用 ncat 监控远端端口状态
- MySQL“被动”性能优化汇总!
- H3C WA2610i-GN 无线AP FAT 配置案例