Mac下的PHP的配置与运行

1,013 阅读2分钟

Mac Apache 服务器

Mac在安装完成Mac系统的时候它已经自带了apache服务器,接下来就是配置和将它启动运行了。

  • 开启 sudo apachectl start
  • 关闭 sudo apachectl stop
  • 重启 sudo apachectl restart

默认的apache的文件根目录在/Library/WebServer/Documents,我们可以从访达进入/etc/apache2/httpd.conf文件里面的DocumentRoot的值DocumentRoot "/Library/WebServer/Documents",可以知道根目录在/Library/WebServer/Documents这里,全局搜索Listen就可以知道端口,一般是Listen 8080 和Listen 80,就是在服务器地址栏敲localhost或者127.0.0.1地址就可以访问;也可以修改根目录的路径,就是把DocumentRoot的路径或者你想要的修改的目录。

image.png

image.png

一般修改httpd.conf配置文件保存的时候都需要提示要输入密码,或者复制一份出来覆盖上去,但是也是需要输密码才能覆盖。

注意:如果根目录不在/User/你的用户名/文件夹下面的话,会出现Forbidden 403错误,You don't have permission to access on this server.


那如何将我们写的代码运行到此服务器上呢。

比如说我们写了一个index.html文件,写好了,里面body写了hello!,那把这个html文件直接放到/Library/WebServer/Documents文件夹下,在浏览器中输入localhost/index.html,就可以看到hello!了。因为这个目录下默认存在三个文件:

截屏2022-06-17下午2.24.18.png

服务器默认直线index.html目录,所以直接敲localhost,浏览器就直接读到 <html><body><h1>It works!</h1></body></html> 出来的就是‘It works!’.


Mac 安装 composer

由于这次我想试试本地运行一下php文件。并且下一下guzzle这个库玩一玩。

所以就涉及到composer包。于是我创建了一个php文件夹,在终端且该目录下,运行composer init初始化一下。

$ composer init
                                            
  Welcome to the Composer config generator                                            

This command will guide you through creating your composer.json config.

# 包的名字 vendor代表生产商,也是识别包的标识
# 包的名字, 当报名相同时,通过vendor来区分
# 系统会默认获取当前登录的用户来做vendor,所在文件夹做包的名字
Package name (<vendor>/<name>) [zxc/frame]: zxc/frame
# 这个是对包的描述
Description []: 这个是包的描述
# 这个是作者的个人信息, 使用git时设置的user.name 和user.email
# 如果没有设置的话,会使用系统给默认的用户名和邮箱
Author [周小川 <zxc_4567@123.com>, n to skip]: 张三 <zxc_1234@123.com>
# 版本 dev, alpha, rc, stable, beta
Minimum Stability []: dev
# 类型
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
# 许可协议
License []:

Define your dependencies.

# 这个是在需要使用到的依赖
Would you like to define your dependencies (require) interactively [yes]? yes
# 这里会根据你输入的关键字对包进行搜索
Search for a package:  dump
#这里会有其他的操作, 自己实验一下哦

# 安装开发扩展, 这个在项目部署的时候不安装不会影响项目的运行
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:

{
    "name": "zxc/frame",
    "type": "library",
    "authors": [
        {
            "name": "张三",
            "email": "zxc_1234@123.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}
# 是否生成composer.json
Do you confirm generation [yes]?
# 是否现在安装依赖
Would you like the vendor directory added to your .gitignore [yes]

当然,在这之前需要在mac上安装一下composer,composer是php的包管理工具,可以再自己的项目中声明所依赖的外部工具库,composer会帮我们安装这些依赖的文件。

下载安装教程在这: pkg.xyz/#how-to-ins…

文档里说:安装前请务必确保已经正确安装了php。php -v 查看是否正确输出版本号。

由于mac自带了Apache和php,不过可能mac版本不同,php自带的版本不同,如果觉得不够新比较低的话,可以brew install一下, 根据brew search PHP查到当前最新版本是@7.3,那可以brew install PHP@7.3 ,然后去~/.bash_profile这里设置一下环境变量: export PATH="/usr/local/opt/php@7.2/bin:$PATH"
然后手动刷新系统对本地变量的读取: source ~/.bash_profile

然后再在终端上输入php -v,就是最新版本号了。

接着来讲在mac上安装composer, 文档上写道:

image.png

这里移过来去掉后缀,发现在终端上输入composer -V提示这个不是command。回头看一下这个目录下刚刚移过来的文件,他是个文本文稿文件。我们需要的应该是Unix可执行文件才对,修改权限sudo chmod a+x composer,然后再去查看版本就有了。


Guzzle 安装与使用

那接着来讲记录这篇文章的最终目的: 在php项目中用一下Guzzle

  • 1、composer init

这一步得到的是composer.json

{
    "name": "kk/php",
    "description": "for test guzzle",
    "authors": [
        {
            "name": "GuanLola",
            "email": "3079756620@qq.com"
        }
    ],
    "require": {
        "guzzlehttp/guzzle": "^7.4"
    }
}
  • 2、composer require guzzlehttp/guzzle

这一步得到一个vendor文件夹,

截屏2022-06-17下午5.21.53.png

  • 3、创建index.php
<?php

require __DIR__ . '/vendor/autoload.php'; 
$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');

echo $response->getStatusCode(); // 200
echo "<pre>";
echo $response->getHeaderLine('content-type'); // 'application/json'
echo "<pre>";
echo $response->getBody(); // '{"id": 14200137, "name": "guzzle", ...}'

?>

效果如下:

截屏2022-06-17下午5.23.24.png