欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mac 安装PHP、nginx、mysql、sublime text3

程序员文章站 2022-05-30 20:10:11
...

安装HomeBrew

BrewMac下面的包管理工具,就像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安装,然后按下图启用

Mac 安装PHP、nginx、mysql、sublime text3

好了,然后鼠标移到菜单栏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

会依次出现下面的各种提示


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测试数据

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 localhost
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1 www.test.ff
设置完成后在地址栏里执行www.test.ff/index.php,就能访问到了。