Mac 安装PHP、nginx、mysql、sublime text3
安装HomeBrew
Brew
是Mac
下面的包管理工具,就像centos下面的yum一样。HomeBrew
可以通过ruby
来安装,mac系统是自带ruby
的,所以只要在终端运行下面的代码即可安装HomeBrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在安装的时候会有下面的提示,你应该仔细看下,要清楚知道HomeBrew
给你安装了哪些脚本,给你创建了哪些文件夹,路径是在哪里的。仔细的看下安装时出现的说明信息,这样即使没有用过的软件,你根本不用看文档,都是能够使用它的最基础功能的。如果你一定要研究下细致的,可以看HomeBrew
的官网:http://brew.sh
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/Cellar
/usr/local/Homebrew
/usr/local/Frameworks
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/opt
/usr/local/sbin
/usr/local/share
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var
现在我们已经安装完HomeBrew
了,其实你只要运行brew help
就能知道该怎么用这个软件了。
自检Brew
安装完成之后,建议执行一下自检,brew doctor
如果看到Your system is ready to brew.
那么你的brew
已经可以开始使用。
美化下终端
brew
我们已经安装好了,现在已经可以使用了,但是看上面的图,我们的终端太他妈的丑了,mac
默认使用的shell是bash
,如果把它换成zsh
,并安装zsh
的插件oh-my-zsh
,那就会好很多了,mac系统已经自带了zsh
,我们就不用去安装了,执行zsh --version
可以查看zsh的版本,我们需要安装个zsh
的插件oh-my-zsh
安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
终端执行上面的代码即可,程序安装完oh-my-zsh
后会自动帮我们把shell切换为zsh
,现在我们的终端就变成这样了,注:oh-my-zsh
还可以更换主题和装插件的,具体访问:http://ohmyz.sh
使用homebrew-cask安装sublime
先安装cask, 使用cask可以安装一些应用程序,如QQ,迅雷,谷歌浏览器等,功能和App stroe差不多,个人觉得这个更好管理
# 网上大部分方法都是用brew tap添加源再安装的,其实不用那么麻烦,只要输入brew cask即可,brew会自动帮我们完成cask安装。
brew cask # 没有安装cask会自动安装,已经安装cask的,会跳出cask命令列表
# Cask 常用命令
brew cask search #列出所有可以被安装的软件
brew cask search sublime #查找所有和sublime相关的应用
brew cask list #列出所有通过cask安装的软件
brew cask info sublime-text #查看 sublime 的信息
brew cask install sublime-text # 安装sublime
brew cask uninstall sublime-text #卸载sublime
通常我们是不知道软件的全称的,比如安装sublime,我们可以先使用brew cask serach
搜索:
brew cask search sublime
==> Exact match
caskroom/cask/sublime
==> Partial matches
caskroom/cask/sublime-text caskroom/cask/sublime-text
从上面我们可以看出,要安装的sublime全称是sublime-text,我们使用brew cask install sublime-text
来安装它
brew cask install sublime-text
总体来说,字体和样式都挺不错了,不过大多数人都会换一个自己喜欢的主题的。
给sublime换主题
先给sublime text 3安装Package Control, 按住control + `
,在弹出的命令行输入:
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
然后点击回车安装
然后command + shift + p
,打开Package Control,输入install,选择Package Control:Install Package
回车,在跳出的命令行输入选择Material Theme
安装,然后按下图启用
好了,然后鼠标移到菜单栏Sublime Text -> Preferences > Settings
在右边的窗口(user)中输入你自己要的配置,我的配置如下:
{
"always_show_minimap_viewport": false,
"color_scheme": "Packages/Material Theme/schemes/OLD/Material-Theme.tmTheme",
"font_face": "Fira Code",
"font_size": 15,
"ignored_packages":
[
"Vintage"
],
"line_padding_bottom": 4,
"line_padding_top": 4,
"theme": "Material-Theme.sublime-theme",
"translate_tabs_to_spaces": true,
"tab_size": 4,
}
最后来看下效果,嗯,好看多了
brew install nginx
nginx设置开机启动
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist 加载开启nginx
设置nginx的执行文件权限,这样就可以80端口运行了
sudo chown root:wheel /usr/local/Cellar/nginx/1.13.12/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.13.12/bin/nginx
sudo chown -R $USER /usr/local/var/log/nginx/
给nginx设置开机指令别名
mac
默认使用的shell是bash
,我把bash换成zsh了
vi ~/.zshrc
alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
source ~/.zshrc
重启mac终端,测试nginx.start、nginx.stop、nginx.restart命令,本人测试没有问题
安装PHP71
brew install --without-apache --with-fpm --with-mysql php71
安装php71相关扩展
以前只要执行这个命令就可以安装PHP扩展(brew install php71-xdebug php71-memcached php71-swoole php71-redis php71-pdo-pgsql php71-mcrypt),现在不可以了,由于Homebrew/php在2018年3月底被弃用,并将所有PHP公式转移到Homebrew/core,旧的brew tap homebrew/dupes、brew tap homebrew/versions、brew tap homebrew/homebrew-php都会报以下错误(目前国内百度都找不到解决这个问题的方法)
不推荐用 pecl 的方式安装 PHP 扩展。但是现在没有其他的办法,目前只能使用pecl进行php扩展
php-redis 扩展步骤
此处后期再补
3、PHP添加进开机启动
ln -sfv /usr/local/opt/aaa@qq.com/aaa@qq.com ~/Library/LaunchAgents/ #注:文件名和路径一定要正确,文件和路径必须存在。
给php设置开机指令别名(将命令行放入文件最后一行)
vi ~/.zshrc
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/aaa@qq.com" #注:文件名和路径一定要正确,文件和路径必须存在。
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/aaa@qq.com" #注:文件名和路径一定要正确,文件和路径必须存在。
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
source ~/.zshrc
重启php-fpm.restart
到这里我们可以访问localhost:80或localhost:8080
会看到welcome ...nginx!
下面简单配置nginx.conf,验证php是否安装成功
worker_processes 1;
events {
worker_connections 256;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include servers/*;
}
在nginx/servers(在servers目录下创建一个文件),本人命名为:project.conf
配置project.conf
server {
listen 80;
server_name localhost;
root /D/data/project/test;
index index.php index.html index.htm;
location ~ .*\.(php|php7)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_send_timeout 3600s;
fastcgi_connect_timeout 3600s;
fastcgi_read_timeout 3600s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
此时已经配置完了,在终端输入 nginx -t 查看语法是否正确,正确的话会显示
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
然后重启nginx nginx.restart
在访问的根目录下创建index.php文件,文件内容<?php phpinfo()
在浏览器地址栏输入localhost/index.php,出现很多配置信息,证明PHP安装成功。
安装mysql
brew install mysql
设置开机启动
ln -sfv /usr/local/opt/aaa@qq.com/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
mysql设置别名(将命令行放入文件最后一行)vi ~/.zshrc
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
source ~/.zshrc
启动mysql.start或者mysql.restart
启动mysql,然后初始化
mysql_secure_installation
会依次出现下面的各种提示
mysql测试数据New password: //给root账号设置一个新密码. 输入密码后回车 Re-enter new password: //确认刚才的密码 Remove anonymous users? (Press y|Y for Yes, any other key for No) : //是否删除匿名账号 Success. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : //禁止远程登录 Remove test database and access to it? (Press y|Y for Yes, any other key for No) : //删除test数据库 Reload privilege tables now? (Press y|Y for Yes, any other key for No) : //立即刷新数据库权限,也就是刚才的设置立即生效
初始化后,开始测试是否能够链接成功mysql数据库
mysql -uroot -p密码
CREATE DATABASE mdhtest;
use mdhtest;
CREATE TABLE `vmall_address` (
`addr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '下单用户',
`consignee` varchar(60) NOT NULL DEFAULT '' COMMENT '收货人',
`region_name` varchar(255) DEFAULT NULL COMMENT '地区',
`address` varchar(255) DEFAULT NULL COMMENT '详细地址',
`zipcode` varchar(20) DEFAULT NULL COMMENT '邮编',
`phone_tel` varchar(60) DEFAULT NULL COMMENT '手机',
`phone_mob` varchar(60) DEFAULT NULL COMMENT '电话',
`is_default` int(2) DEFAULT '0',
PRIMARY KEY (`addr_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=64 DEFAULT CHARSET=utf8;
INSERT INTO `vmall_address` VALUES ('23', '11', 'ff', '北京,北京,东城区', 'af', '101', '15200000100', null, '0');
INSERT INTO `vmall_address` VALUES ('24', '120', '`12`2', '北京,北京,海淀区', '`12`', '2`12`2`1', '13566667777', null, '1');
INSERT INTO `vmall_address` VALUES ('25', '121', '温作权', '北京,北京,东城区', '北京销售中心:西大望路珠江帝景B区西北转角珠光御景销售中心', '3213', '15502154817', null, '1');
验证php nginx mysql 原生代码(如下)因为我们用的是php7.1,所以链接mysql的原函数都废弃了,下面的例子就是最新的mysql函数
<?php
// phpinfo();
$con = mysqli_connect("127.0.0.1","root","aaa@qq.com");
if (!$con)
{
echo 'shibai';
}else{
mysqli_select_db($con,'mdhtest');
$sql='select * from vmall_address where addr_id=23';
$res=mysqli_query($con,$sql);
$handle=mysqli_fetch_row($res);
echo '<pre>';
var_dump($handle);
}
?>
返回的结果是:
array(9) {
[0]=>
string(2) "23"
[1]=>
string(2) "11"
[2]=>
string(2) "ff"
[3]=>
string(23) "北京,北京,东城区"
[4]=>
string(2) "af"
[5]=>
string(3) "101"
[6]=>
string(11) "15200000100"
[7]=>
NULL
[8]=>
string(1) "0"
}
到这一步所有安装全部完成。注意:以上所有操作本人全部操作完成。并且测试成功。nginx服务器高级功能配置后期会更新出来。
2018-6-30 23:55修改
如果想本地多域名访问的话,需要在hosts文件里(mac:/etc/hosts/hosts文件)增添指定的域名,如下:
127.0.0.1 localhost255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 www.test.ff
推荐阅读
-
CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境
-
Gentoo 下安装与配置Nginx+ MySQL + PHP (fastcgi) 环境步骤分享
-
Ubuntu+Nginx+Mysql+Php+Zend+eaccelerator安装配置文字版
-
CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
-
CentOS 6.2编译安装Nginx1.0.14+MySQL5.5.22+PHP5.3.10步骤分享
-
lanmp(Linux Apache Nginx Mysql Php) 的安装配置
-
win平台安装配置Nginx+php+mysql 环境
-
Centos7下编译安装配置Nginx+PHP+MySql环境
-
CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2
-
Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程