PHP

Mac系统下配置PHP运行环境

Posted by zhouen on 2018-05-10

概述

Mac系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache、PHP和MySQL的安装与配置,为开始进行开发铺好路

操作系统:Mac OS 数据库:mysql8.0.11 PHP7.1.14

Apache

启动Apache服务

在Mac系统中已经安装好了Apache服务,我们只需要通过如下方式启动即可直接使用

在终端中输入如下命令,启动Apache服务
1
sudo apachectl start

注: 因为sudo是系统管理指令,所以需要输入电脑密码(输入字符时不会显示,输入完成敲击回车即可)

在终端中输入如下命令,查看Apache服务版本
1
sudo apachectl -v

在本机中版本信息如下

1
2
Server version: Apache/2.4.29 (Unix)
Server built: Jan 17 2018 18:20:31
在浏览器中输入如下网址,检查Apache服务是否启动成功
1
2
http://localhost
http://127.0.0.1

如果Apache服务启动成功,页面会显示It works!

Apache的其他配置

关闭Apache服务

在终端中输入如下命令,关闭Apache服务

1
sudo apachectl stop
重启Apache服务

在终端中输入如下命令,重启Apache服务

1
sudo apachectl restart
Apache服务安装路径

Apache服务默认安装路径在/private/etc/apache2,属于系统私有目录,我们不可直接在Finder中找到该路径

我们可以通过两种方式进入该路径

  1. 在终端中输入open /etc命令进入etc文件夹
  2. 在Finder -> 前往 -> 前往文件夹中输入/etc即可进入etc文件夹
Apache服务部署路径

Apache服务部署路径在/资源库/WebServer/Documents/,我们的项目需要放置在该路径下

如果想要修改部署路径,可以在/private/etc/apache2目录下找到并打开httpd.conf文件,搜索DocumentRoot并修改部署路径

注1: 笔者使用TextMate文本编辑软件,且该软件可以直接打开该配置文件

注2: 如果提示文本锁定不允许修改,可以将该文件复制到其他文件夹修改之后,在粘贴回来覆盖原文件即可

  1. 将默认的项目路径由 /Library/WebServer/Documents/ 都替换成自己的路径,比如 /Users/zhouen/PHPServer 并将原路径下index.html.en 文件拷贝到新路径下

  2. 修改路径重启apache后http://localhost,报403 Forbidden,You don’t have permission to access/on this server ,解决方案:

    将AllowOverride None改为AllowOverride All

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
DocumentRoot "/Users/zhouen/PHPServer"
<Directory "/Users/zhouen/PHPServe">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options FollowSymLinks Multiviews
MultiviewsMatch Any

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
#AllowOverride None
AllowOverride All

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
Apache服务端口号

Apache服务端口号默认为80,如果想要修改端口号,可以在/private/etc/apache2目录下找到并打开httpd.conf文件,搜索Listen 80并修改端口号

PHP

PHP的启动只需要在Apache服务中进行一下配置即可直接使用

首先,在/private/etc/apache2目录下找到并打开httpd.conf文件

其次,搜索#LoadModule php7_module libexec/apache2/libphp7.so,将前方的#删除

/如果因为权限问题不能修改的话,把它拖到桌面修改,然后把原先的删除,之后再把桌面的拖到里面去就ok*///

再次,重启Apache服务即可

最后,我们在路径下新建一个info.php测试程序试试效果吧

1
2
3
<?php 
phpinfo();
?>

在浏览器中输入如下网址即可查看到PHP的信息

1
http://localhost/info.php

MySQL

安装MySQL

首先,在浏览器中输入如下网址,下载图中所示文件并安装

1
http://dev.mysql.com/downloads/mysql/

安装完成,在终端中输入如下命令,查看MySQL版本

1
mysql --version

在本机中版本信息如下

1
mysql  Ver 8.0.11 for macos10.13 on x86_64 (MySQL Community Server - GPL)

如果提示command not found,这是因为该命令默认访问/usr/local/bin/mysql路径下的mysql,所以我们可以在终端输入如下命令,建立一个软链接即可

1
sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql

再次,利用安装MySQL时给出的用户和密码登录MySQL服务,在终端中输入如下命令,敲击回车后输入密码

1
mysql -u root -p

再次,在终端中输入如下命令,退出MySQL服务

1
exit

如需修改密码,在终端中输入如下命令

1
/usr/local/mysql/bin/mysqladmin -u USER -p password PASSWORD

注: USER为用户名,默认为root;PASSWORD为新密码,回车后输入原密码即可

MySQL的启动与停止

在命令行输入如下指令,启动与停止MySQL服务
1
2
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
在系统偏好设置中启动与停止MySQL服务

在系统偏好设置中有一个MySQL选项,我们可以在这里手动启动与停止MySQL服务

MySQL可视化管理方式phpMyAdmin

首先,在浏览器中输入如下网址,下载图中所示文件

1
https://www.phpmyadmin.net/downloads/

其次,将压缩文件解压到/资源库/WebServer/Documents/路径下(如果修改过路径放入修改后的路径 中),并重命名为phpMyAdmin

再次,将文件夹中的config.sample.inc.php文件重命名为config.inc.php

再次,将config.inc.php文件中的如下代码进行修改

1
2
3
4
5
// 修改前:
$cfg['Servers'][$i]['host'] = 'localhost';

// 修改后:
$cfg['Servers'][$i]['host'] = '127.0.0.1';

最后,在浏览器中输入如下网址进行登录即可直接对MySQL进行可视化管理

1
http://localhost/phpmyadmin/

注: 默认用户名为root

最终登录成功界面如下:


PHP时间配置

以下为系统自带PHP时间的配置

->finder 右键前往文件夹 /private/etc/ 找到php.ini.default 文件拷贝并重命名为 php.ini 打开修改如下

1
2
3
4
5
6
7
8
#1. 如果使用自己安装的PHP需要在apache的配置文件(httpd.conf)中指定php.ini的路径
PHPIniDir "/User/xxx/xxx/xx/php"

#2. 修改php.ini里面原先
;date.timezone

#修改后
date.timezone = PRC

重启Apache之后时间即为正确时间

###配置PHP以执行mysql函数

本文mysql7.2

php作为一门语言,其中也有很多个“模块”,mysql只是其中一个!!!

我们首先得配置mysql模块使之生效,做法如下:

  1. mac系统自带PHP
1
#在 /etc 下拷贝php.ini.default 并重命名为 php.ini

以下两项操作小编都没有操作测试mysqli_connect方法链接数据库成功

  1. 在php.ini文件中,指定mysql模块的位置(实际上,php中的模块,都放在该一个位置):

  1. 在php.ini文件中,“打开”想要的模块(我们现在需要mysql模块 extension=php_pdo_mysql.dll):(本人mac下没有打开也可以链接mysql成功)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#测试
<?php
echo date('y-m-d h:i:s');

$host = "127.0.0.1";
$user = "root";
$pass = "11111111";
$link=mysqli_connect($host,$user,$pass) or die(mysql_error());
if (!$link) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
} else{
echo "sucess";
}
?>

Apache多站点配置

  1. 在apache的主配置文件(conf/httpd.conf)中,“打开”虚拟主机配置文件——其实就是引入

    1
    2
    3
    4
    5
    6
    7
    #终端命令打开httpd.conf
    open /etc/apache2/httpd.conf

    #找到如下配置去掉 Include前#
    # Virtual hosts
    Include /private/etc/apache2/extra/httpd-vhosts.conf
    open /etc/apache2/extra/httpd-vhosts.conf
  2. 打开该虚拟主机配置文件(/etc/apache2/extra/httpd-vhosts.conf),并“一个一个站点配置”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#打开该虚拟主机配置文件
open /etc/apache2/extra/httpd-vhosts.conf

#站点配置如下
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/zhouen/PHPServer"
<Directory "/Users/zhouen/PHPServer">
Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Require all granted

#单独配置主页面
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName oxyxx.com
DocumentRoot "/Users/zhouen/PHPServer2"
<Directory "/Users/zhouen/PHPServer2">
Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Require all granted

#单独配置主页面
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>

重启Apache 后生效