标题:MAC 下配置 Apache PHP Mysql 完整版 新手0基础 看这篇就够了

-------------------------------------------------------------------------------------------------------------------------------

时间:2017/5/21 17:56:16

-------------------------------------------------------------------------------------------------------------------------------

内容:

引言

本人从新手的角度运用简单通俗的语言加上详细的描述和形象的比喻,讲解了如何在mac电脑上安装和使用php+mysql 编程和运行的方法


Mac 系统预装了 Apache PHP程序,但是mysql没有,需要额外安装。但是安装了不代表就可以使用,需要手动启动;启动了不代表使用正确,还需要进行配置。

首先PHP是运行在Apache环境下的,所以只有启用了Apache并且配置好,PHP才能运行,默认情况下Apache是不能解析PHP脚本的,所以我们需要先启动Apache,再配置Apache后才能运行PHP,最后才是mysql的安装启用及配置

 

启动Apache

要启用apache需要做2个设置

打开系统设置偏好(System Preferences” -> “共享(Sharing” -> “Web共享(Web Sharing

打开终端(terminal,然后输入启动命令

 

启动:sudo apachectl start   或者命令 sudo httpd –k start 

输入root密码即可

 

sudo是以管理员身份执行命令,因为启动系统服务是需要级别比较高的权限的。apachectl 其实是一个脚本命令(类似txt文件中放置format c命令一样)真正运行的是httpd这个程序,apachectl start就是httpd程序的快捷键方式并且传递一个start 参数

 

停止:sudo apachectl stop或者命令  sudo httpd -k stop

重启:sudo apachectl restart  或者命令  sudo httpd -k restart

 浏览器打开 http://localhost 可以看到 It works! 的页面即可

Apache Works

配置Apache

Apache的配置是通过一个文本配置文件来设置的 名称叫httpd.conf 

查找httpd.conf 文件位置

可以使用httpd –V命令会显示httpd.conf的文件路径

SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

一般位于/etc/apache2/httpd.conf 下,但是finder直接无法直接点击访问

必须使用findergo菜单下的goto folder命令,找到后收藏文件夹到左侧finder收藏栏 以后关于apache的修改都需要在这个文件里面完成

查看所有命令 可以使用httpd

配置httpd.conf 文件

httpd.conf是一个文本文件,里面记录了apache所有的参数

默认情况很多我们要使用功能不支持,是必须要修改的

 

? 配置httpd.conf 支持php

在文件中搜索php 找到 #LoadModule php5_module libexec/apache2/libphp5.so,去掉#注释符 (需要重新httpd

? 配置httpd.conf 支持以列表方式限制目录下文件

在文件中搜索Multiviews  Options FollowSymLinks Multiviews 修改为 Options Indexes FollowSymLinks Multiviews(需要重启httpd

 

 

? 配置httpd.conf 修改网页代码的目录或者查看当前网页默认目录

默认情况下访问本机localhost网页代码都在/Library/WebServer/document/

有时候你修改过 却不记得了,就可以在文件中 搜索 document

找到document/Root "/Library/WebServer/document/" 修改引号中位置即可

 

? 配置httpd.conf 支持内网其他电脑通过内网ip访问本机

文件搜索deny 找到    Require all denied

增加 Allow from 192.168.*.* 既可让内网192.168的用户通过ip访问本地

 

? 配置httpd.conf 启用重定向 .htaccess

搜索AllowOverride  删除 AllowOverride all 前的注释 #

重启httpd即可 sudo httpd –k restart 才能让修改后的httpd.conf生效

另外如何访问不了页面 提示没有权限可以使用下面方法

1.文件系统中该目录没有权限,方法是 sudo chmod -R 777 目录名

2.在Apache中没有该ip的访问权限,方法是 在<Directory>中添加 Allow from All (All为所有ip)

3.如果访问的是目录而不是文件,需要有列出文件的权限, 方法是在<Directory>中添加Options Indexes

4.Apache配置中可能存在Require all denied禁止了所有请求, 需要在访问的目录中使用 Require all granted来赋权限.

PHP的启动和配置

 

OSX 1已经预装了 PHP ,可以通过terminal 目录 php  -v

查看版本号

 

Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc/php.ini/default ,可以自行拷贝一份进行修改。

可以把文件目录收藏到finder左侧收藏栏

也可以运行php文件,加入php参数

 

 

<?php phpinfo(); ?>

查看php.ini位置


这里列举几个常见修改

  1. 常用PHP.INI配置项。  
  2. 1--设置上传文件大小  
  3. file_uploads = on  
  4. upload_max_filesize = 8M  
  5. post_max_size = 8M  
  6. ps--post的数值要大于等于upload,否则upload不起作用。  
  7.   
  8. 2--设定一个脚本使用的最大内存  
  9. memory_limit = 128M  
  10.   
  11. 3--启用全局变量  
  12. register_gloables = on  
  13. ps--有些程序例如OSC需要启用全局变量.  
  14.   
  15. 4--设置默认编码  
  16. default_charset = 'iso--8859-1'  
  17. ps--这个一般不需要设置,因为大部分页面都有制定编码。  
  18.   
  19. 5--是否允许打开远程文件  
  20. allow_url_fopen = on  
  21.   
  22. 6--是否允许包含远程文件(include/require)  
  23. allow_url_include = false  
  24.   
  25. 7--时区  
  26. date.timezone = Asia/Shanghai  
  27. ps--php默认采用配置项中的时区,如果项目中涉及时区,请用date_default_timezone_get()/date_default_timezone_set(utc)来设定自己想要的时区。  
  28.   
  29. 8--禁用类/方法  
  30. disable_classes =   
  31. disable_functions =   
  32. ps-- 我的php.ini原来禁用了很多方法,会影响一些功能的使用,比如远程链接之类的。发送email应该回应想到。  
  33.   
  34. 9--设置错误报告级别  
  35. error_reporting =   
  36. ps--日志级别是一些常量,在php.ini中有写,推荐使用 E_ALL | E_STRICT,即所有级别。  
  37.   
  38.   
  39. 10--输出错误信息  
  40. display_error = off  
  41. ps--是否将错误信息作为输出的一部分,站点发布后应该关闭这项功能,以免暴露信息。  
  42.   
  43.   
  44. 11--定义各个级别系统日志变量  
  45. define_syslog_variables = off  
  46. ps--建议关闭,以提高性能。  
  47.   
  48. 12--错误日志  
  49. error_log =   
  50. ps-- 错误日志的位置,必须对web用户可写入,如果不定义则默认写入到web服务器的错误日志中去.  
  51. log_errors = on  
  52. ps--如上所说,建议将错误日志输出到文件,而不是直接输出到前端。  
  53. log_errors_max_length = 1024  
  54. ps--错误日志关联信息的最大长度,设为0表示无限长度。  
  55.   
  56. 13--默认socket时长  
  57. default_socket_timeout = 60  
  58.   
  59. 14--脚本最大执行时长  
  60. max_execution_time = 30  
  61. ps--设定每个脚本的最大执行时长,有助于阻止劣质脚本无限制占用服务器资源;0表示没有限制。  
  62.   
  63.   
  64. 15--脚本最大输入时间  
  65. max_input_time = 60  
  66. ps--单个脚本最大输入时长  
  67.   
  68. 16--文件上传临时目录  
  69. upload_tmp_dir =   
  70. ps--php进程用户可写目录,如果不设置,则采用系统临时目录。(tmp)  
  71.   
  72.   
  73. 17--输出后自动刷新数据  
  74. implicit_flush = off  
  75. ps--是否在echo();printf();等输出数据块之后刷新;对性能影响严重,只建议在调试状态下开启

 

MySQL

Mysql下载和安装

Mac 没有自带mysql,需要单独安装 MySQL下载地址 如下

https://dev.mysql.com/downloads/mysql/

MySQL分为商业版(Enterprise)和社区版(Community),商业版是要收费的,社区版是免费的。

MySQLMac版安装包分为两种一种是DMG Archive,另一种是Compressed TarDMG的安装比较简单,只需要双击安装文件即可

 

选择 Mac OS X ver. 10.7 x86 64-bit), DMG Archive 。(下载无需注册,点击下边小字部分的「_ No thanks just take me to the downloads!_」即可)

三个文件都需要安装。其中第二个会在「系统偏好设置」中添加一个 MySQL 设置项:开机自动启动、启动/关闭 MySQL

MySQL 安装

三个文件都需要安装。其中第二个会在「系统偏好设置」中添加一个 MySQL 设置项:开机自动启动、启动/关闭 MySQL

安装后会自动生成一个root的密码 在Mac的系统提示中,后面会讲到如过忘记密码如何充值

命令行启动 MySQL

sudo /usr/local/mysql/support-files/mysql.server start

查看 MySQL 版本

/usr/local/mysql/bin/mysql –V

 

Mysql配置

 

 

Mysql配置路径快捷访问

MAC系统下的MySQL路径是/usr/local/mysql如果想使用简化命令不带路径就用 有下面2种办法

第一别名法重启后失效

alias mysql=/usr/local/mysql/bin/mysql

alias mysqladmin=/usr/local/mysql/bin/mysqladmin

 

第二环境变量法(永久的)

MAC系统下的MySQL路径是/usr/local/mysql,所以需要把/usr/local/mysql/bin加入到环境变量中即可,具体的操作流程:

打开终端输入: cd ~ 回车,会进入~文件夹 
然后输入:touch .bash_profile,回车执行后如果电脑上不存会建立这个文件
 
再输入:open -e .bash_profile 回车

会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这应该是一个空白文档)。如果有内容,请在结束符前输入,如果没有内容,请直接输入如下语句:

export PATH="/usr/local/sbin:$PATH” 
然后保存文件,新开一个终端就可以了

source ~/.bash_profile(重新加载)

这样就只用输入mysql+参数即可 比如 mysql –V

 

Mysql重置密码

新版本的mysql会自动生成一个密码 如果没记住 就要重置密码 以下是方法

您是否忘记了Mac OS MySQLroot密码? 通过以下4步就可重新设置新密码:


1.  
停止 mysql server.  通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'


2.  
打开终端,输入:


     sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables


3.  
打开另一个新终端,输入:


     sudo /usr/local/mysql/bin/mysql -u root


     UPDATE mysql.user SET authentication_string=PASSWORD
'新密码' WHERE User='root';


     FLUSH PRIVILEGES;


     \q

4.  重启MySQL.

 

*以上方法针对 MySQL V5.7.9 旧版的mysql请使用:UPDATE mysql.user SET Password=PASSWORD'新密码' WHERE User='root';

 

 

设置 MySQL 密码

修改 mysql root 账户密码:

/usr/local/mysql/bin/mysqladmin -u root password 'yourpasswordhere'

 

mysql> SET PASSWORD = PASSWORD('123456');
mysql> quit

注意使用单引号包裹密码


phpMyAdmin

安装前必须先如上操作修复 2002 MySQL Socket 错误。

下载 phpMyAdmin ,解压后放在 ~/Sites 目录下,新建 config 文件夹

mkdir ~/Sites/phpmyadmin/config

修改权限

chmod o+w ~/Sites/phpmyadmin/config

打开 http://127.0.0.1/~username/phpmyadmin/
输入 mysql 的用户名和密码就可以登陆进去了。

然后删除 /config 目录。

phpMyAdmin 可能会提示:配置文件现在需要一个短语密码。
此时修改文件:
phpMyAdmin/libraries/config.default.php
找到:
$cfg['blowfish_secret'] = '';
修改为:
$cfg['blowfish_secret'] = 'rpsh.net'; (rpsh.net 可以为任意字符)

访问 http://127.0.0.1/~username/phpmyadmin/ 就可以管理你的 mysql 了。

权限

为了方便程序在 ~/Sites 目录下读写

sudo chmod -R a+w ~/Sites/testsite

若担心安全问题,可以使用 _www 权限,若这样做当需要 admin 权限需做验证:

sudo chown -R _www ~/Sites/testsite

引言

本人从新手的角度运用简单通俗的语言加上详细的描述和形象的比喻,讲解了如何在mac电脑上安装和使用php+mysql 编程和运行的方法


Mac 系统预装了 Apache PHP程序,但是mysql没有,需要额外安装。但是安装了不代表就可以使用,需要手动启动;启动了不代表使用正确,还需要进行配置。

首先PHP是运行在Apache环境下的,所以只有启用了Apache并且配置好,PHP才能运行,默认情况下Apache是不能解析PHP脚本的,所以我们需要先启动Apache,再配置Apache后才能运行PHP,最后才是mysql的安装启用及配置

 

启动Apache

要启用apache需要做2个设置

打开系统设置偏好(System Preferences” -> “共享(Sharing” -> “Web共享(Web Sharing

打开终端(terminal,然后输入启动命令

 

启动:sudo apachectl start   或者命令 sudo httpd –k start 

输入root密码即可

 

sudo是以管理员身份执行命令,因为启动系统服务是需要级别比较高的权限的。apachectl 其实是一个脚本命令(类似txt文件中放置format c命令一样)真正运行的是httpd这个程序,apachectl start就是httpd程序的快捷键方式并且传递一个start 参数

 

停止:sudo apachectl stop或者命令  sudo httpd -k stop

重启:sudo apachectl restart  或者命令  sudo httpd -k restart

 浏览器打开 http://localhost 可以看到 It works! 的页面即可

Apache Works

配置Apache

Apache的配置是通过一个文本配置文件来设置的 名称叫httpd.conf 

查找httpd.conf 文件位置

可以使用httpd –V命令会显示httpd.conf的文件路径

SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

一般位于/etc/apache2/httpd.conf 下,但是finder直接无法直接点击访问

必须使用findergo菜单下的goto folder命令,找到后收藏文件夹到左侧finder收藏栏 以后关于apache的修改都需要在这个文件里面完成

查看所有命令 可以使用httpd

配置httpd.conf 文件

httpd.conf是一个文本文件,里面记录了apache所有的参数

默认情况很多我们要使用功能不支持,是必须要修改的

 

? 配置httpd.conf 支持php

在文件中搜索php 找到 #LoadModule php5_module libexec/apache2/libphp5.so,去掉#注释符 (需要重新httpd

? 配置httpd.conf 支持以列表方式限制目录下文件

在文件中搜索Multiviews  Options FollowSymLinks Multiviews 修改为 Options Indexes FollowSymLinks Multiviews(需要重启httpd

 

 

? 配置httpd.conf 修改网页代码的目录或者查看当前网页默认目录

默认情况下访问本机localhost网页代码都在/Library/WebServer/document/

有时候你修改过 却不记得了,就可以在文件中 搜索 document

找到document/Root "/Library/WebServer/document/" 修改引号中位置即可

 

? 配置httpd.conf 支持内网其他电脑通过内网ip访问本机

文件搜索deny 找到    Require all denied

增加 Allow from 192.168.*.* 既可让内网192.168的用户通过ip访问本地

 

? 配置httpd.conf 启用重定向 .htaccess

搜索AllowOverride  删除 AllowOverride all 前的注释 #

重启httpd即可 sudo httpd –k restart 才能让修改后的httpd.conf生效

另外如何访问不了页面 提示没有权限可以使用下面方法

1.文件系统中该目录没有权限,方法是 sudo chmod -R 777 目录名

2.在Apache中没有该ip的访问权限,方法是 在<Directory>中添加 Allow from All (All为所有ip)

3.如果访问的是目录而不是文件,需要有列出文件的权限, 方法是在<Directory>中添加Options Indexes

4.Apache配置中可能存在Require all denied禁止了所有请求, 需要在访问的目录中使用 Require all granted来赋权限.

PHP的启动和配置

 

OSX 1已经预装了 PHP ,可以通过terminal 目录 php  -v

查看版本号

 

Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc/php.ini/default ,可以自行拷贝一份进行修改。

可以把文件目录收藏到finder左侧收藏栏

也可以运行php文件,加入php参数

 

 

<?php phpinfo(); ?>

查看php.ini位置


这里列举几个常见修改

  1. 常用PHP.INI配置项。  
  2. 1--设置上传文件大小  
  3. file_uploads = on  
  4. upload_max_filesize = 8M  
  5. post_max_size = 8M  
  6. ps--post的数值要大于等于upload,否则upload不起作用。  
  7.   
  8. 2--设定一个脚本使用的最大内存  
  9. memory_limit = 128M  
  10.   
  11. 3--启用全局变量  
  12. register_gloables = on  
  13. ps--有些程序例如OSC需要启用全局变量.  
  14.   
  15. 4--设置默认编码  
  16. default_charset = 'iso--8859-1'  
  17. ps--这个一般不需要设置,因为大部分页面都有制定编码。  
  18.   
  19. 5--是否允许打开远程文件  
  20. allow_url_fopen = on  
  21.   
  22. 6--是否允许包含远程文件(include/require)  
  23. allow_url_include = false  
  24.   
  25. 7--时区  
  26. date.timezone = Asia/Shanghai  
  27. ps--php默认采用配置项中的时区,如果项目中涉及时区,请用date_default_timezone_get()/date_default_timezone_set(utc)来设定自己想要的时区。  
  28.   
  29. 8--禁用类/方法  
  30. disable_classes =   
  31. disable_functions =   
  32. ps-- 我的php.ini原来禁用了很多方法,会影响一些功能的使用,比如远程链接之类的。发送email应该回应想到。  
  33.   
  34. 9--设置错误报告级别  
  35. error_reporting =   
  36. ps--日志级别是一些常量,在php.ini中有写,推荐使用 E_ALL | E_STRICT,即所有级别。  
  37.   
  38.   
  39. 10--输出错误信息  
  40. display_error = off  
  41. ps--是否将错误信息作为输出的一部分,站点发布后应该关闭这项功能,以免暴露信息。  
  42.   
  43.   
  44. 11--定义各个级别系统日志变量  
  45. define_syslog_variables = off  
  46. ps--建议关闭,以提高性能。  
  47.   
  48. 12--错误日志  
  49. error_log =   
  50. ps-- 错误日志的位置,必须对web用户可写入,如果不定义则默认写入到web服务器的错误日志中去.  
  51. log_errors = on  
  52. ps--如上所说,建议将错误日志输出到文件,而不是直接输出到前端。  
  53. log_errors_max_length = 1024  
  54. ps--错误日志关联信息的最大长度,设为0表示无限长度。  
  55.   
  56. 13--默认socket时长  
  57. default_socket_timeout = 60  
  58.   
  59. 14--脚本最大执行时长  
  60. max_execution_time = 30  
  61. ps--设定每个脚本的最大执行时长,有助于阻止劣质脚本无限制占用服务器资源;0表示没有限制。  
  62.   
  63.   
  64. 15--脚本最大输入时间  
  65. max_input_time = 60  
  66. ps--单个脚本最大输入时长  
  67.   
  68. 16--文件上传临时目录  
  69. upload_tmp_dir =   
  70. ps--php进程用户可写目录,如果不设置,则采用系统临时目录。(tmp)  
  71.   
  72.   
  73. 17--输出后自动刷新数据  
  74. implicit_flush = off  
  75. ps--是否在echo();printf();等输出数据块之后刷新;对性能影响严重,只建议在调试状态下开启

 

MySQL

Mysql下载和安装

Mac 没有自带mysql,需要单独安装 MySQL下载地址 如下

https://dev.mysql.com/downloads/mysql/

MySQL分为商业版(Enterprise)和社区版(Community),商业版是要收费的,社区版是免费的。

MySQLMac版安装包分为两种一种是DMG Archive,另一种是Compressed TarDMG的安装比较简单,只需要双击安装文件即可

 

选择 Mac OS X ver. 10.7 x86 64-bit), DMG Archive 。(下载无需注册,点击下边小字部分的「_ No thanks just take me to the downloads!_」即可)

三个文件都需要安装。其中第二个会在「系统偏好设置」中添加一个 MySQL 设置项:开机自动启动、启动/关闭 MySQL

MySQL 安装

三个文件都需要安装。其中第二个会在「系统偏好设置」中添加一个 MySQL 设置项:开机自动启动、启动/关闭 MySQL

安装后会自动生成一个root的密码 在Mac的系统提示中,后面会讲到如过忘记密码如何充值

命令行启动 MySQL

sudo /usr/local/mysql/support-files/mysql.server start

查看 MySQL 版本

/usr/local/mysql/bin/mysql –V

 

Mysql配置

 

 

Mysql配置路径快捷访问

MAC系统下的MySQL路径是/usr/local/mysql如果想使用简化命令不带路径就用 有下面2种办法

第一别名法重启后失效

alias mysql=/usr/local/mysql/bin/mysql

alias mysqladmin=/usr/local/mysql/bin/mysqladmin

 

第二环境变量法(永久的)

MAC系统下的MySQL路径是/usr/local/mysql,所以需要把/usr/local/mysql/bin加入到环境变量中即可,具体的操作流程:

打开终端输入: cd ~ 回车,会进入~文件夹 
然后输入:touch .bash_profile,回车执行后如果电脑上不存会建立这个文件
 
再输入:open -e .bash_profile 回车

会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这应该是一个空白文档)。如果有内容,请在结束符前输入,如果没有内容,请直接输入如下语句:

export PATH="/usr/local/sbin:$PATH” 
然后保存文件,新开一个终端就可以了

source ~/.bash_profile(重新加载)

这样就只用输入mysql+参数即可 比如 mysql –V

 

Mysql重置密码

新版本的mysql会自动生成一个密码 如果没记住 就要重置密码 以下是方法

您是否忘记了Mac OS MySQLroot密码? 通过以下4步就可重新设置新密码:


1.  
停止 mysql server.  通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'


2.  
打开终端,输入:


     sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables


3.  
打开另一个新终端,输入:


     sudo /usr/local/mysql/bin/mysql -u root


     UPDATE mysql.user SET authentication_string=PASSWORD
'新密码' WHERE User='root';


     FLUSH PRIVILEGES;


     \q

4.  重启MySQL.

 

*以上方法针对 MySQL V5.7.9 旧版的mysql请使用:UPDATE mysql.user SET Password=PASSWORD'新密码' WHERE User='root';

 

 

设置 MySQL 密码

修改 mysql root 账户密码:

/usr/local/mysql/bin/mysqladmin -u root password 'yourpasswordhere'

 

mysql> SET PASSWORD = PASSWORD('123456');
mysql> quit

注意使用单引号包裹密码


phpMyAdmin

安装前必须先如上操作修复 2002 MySQL Socket 错误。

下载 phpMyAdmin ,解压后放在 ~/Sites 目录下,新建 config 文件夹

mkdir ~/Sites/phpmyadmin/config

修改权限

chmod o+w ~/Sites/phpmyadmin/config

打开 http://127.0.0.1/~username/phpmyadmin/
输入 mysql 的用户名和密码就可以登陆进去了。

然后删除 /config 目录。

phpMyAdmin 可能会提示:配置文件现在需要一个短语密码。
此时修改文件:
phpMyAdmin/libraries/config.default.php
找到:
$cfg['blowfish_secret'] = '';
修改为:
$cfg['blowfish_secret'] = 'rpsh.net'; (rpsh.net 可以为任意字符)

访问 http://127.0.0.1/~username/phpmyadmin/ 就可以管理你的 mysql 了。

权限

为了方便程序在 ~/Sites 目录下读写

sudo chmod -R a+w ~/Sites/testsite

若担心安全问题,可以使用 _www 权限,若这样做当需要 admin 权限需做验证:

sudo chown -R _www ~/Sites/testsite