更多
更多

Mac的Apache+MySQL+PHP配置

Apache配置

macOS Sierra 10.12

Server version: Apache/2.4.23 (Unix)

Mac自带Apache,可通过httpd -v查看版本号。

配置文件:/private/etc/apache2/httpd.conf

默认部署包: /Library/WebServer/Documents


修改默认部署路径

为了方便操作,需要指向特定的文件夹,通过修改httpd.conf来实现。

用编辑器打开httpd.conf,查找(cmd+F) DocumentRoot,将

1
2
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

里面的路径修改为想要设置的路径。


修改默认端口

有时候80端口被占用了,就需要换个端口。

用编辑器打开httpd.conf,查找(cmd+F) 80,将其改为想要设置的端口,比如 81


设置虚拟主机

用编辑器打开httpd.conf,查找#Include /private/etc/apache2/extra/httpd-vhosts.conf,删掉 #

虚拟机配置路径:/private/etc/apache2/extra/httpd-vhosts.conf

修改httpd-vhost.conf文件,该文件默认开启了两个作为例子的虚拟主机:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>

便于以后参考,用#注释它们

如果不注释或删除它们,可能会出现:

1
2
Forbidden
You don't have permission to access /index.php on this server


httpd-vhost.conf文件末尾增加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *:81>
DocumentRoot "/Users/yang/Developer/Code/Web/apacheDocuments"
ServerName localhost
ErrorLog "/private/var/log/apache2/sites-error_log"
CustomLog "/private/var/log/apache2/sites-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

注意:

  • 端口号DocumentRoot路径 必须与 httpd.conf 一致
  • 日志可选


运行

在自定义的DocumentRoot路径下新建一个index.html文件,

打开终端,输入sudo apachectl start 启动Apache.

  • sudo apachectl restart 重启
  • sudo apachectl stop 停止

打开浏览器,输入http://127.0.0.1:81 或者 http://localhost:81访问相关内容。


开启PHP

PHP 5.6.27 (cli)

Mac自带PHP,通过 php -version 查看版本

取消httpd.conf中注释 LoadModule php5_module libexec/apache2/libphp5.so

在index.php中写入 <?php phpinfo(); ?> 测试。

phpMyAdmin配置

  1. 下载phpMyAdmin,解压到Documents目录下。

  2. 文件夹名改名为phpadmin,将phpadmin下的config.sample.inc.php文件名改为config.inc.php

  3. 配置config文件。

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
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/**
* Servers configuration
*/
$i = 0;

/**
* First server
*/
$i++;
/* Authentication type */
# $cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/**
* phpMyAdmin configuration storage settings.
*/

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '127.0.0.1';
$cfg['Servers'][$i]['controlport'] = '3306';
$cfg['Servers'][$i]['controluser'] = ''; #数据库用户名
$cfg['Servers'][$i]['controlpass'] = ''; #数据库密码



mac自带php配置

sudo cp /private/etc/php.ini.default /private/etc/php.ini

  • 启用图像扩展函数库 在php.ini文件中找到;extension=php_gd2.dll,去掉分号 ;,然后重启 apache



数据库

连接mysql

php.ini文件中找到;extension=php_mysql.dll,去掉分号 ;,然后重启 apache

在PHP中,mysql_connect()函数用来建立和mysql的连接,格式为:

resource mysql_connect([string server [,string username [, string password [, bool new_link [, int client_flags]]]]])

如果成功则返回一个mysql连接标识,失败则返回FALSE。

  • server 用于指定要连接的mysql服务器,可以包括端口,如 ‘127.0.0.1’ (建议用127而不是localhost)
  • username 用户名
  • password 密码
  • new_link 是否要建立新的连接

mysql_connect() 通常只需要前三个参数即可,

1
2
3
4
5
<?php 
$link = mysql_connect("127.0.0.1:3306","root","密码")
or die("连接数据库失败".mysql_error());
echo "<p>数据库连接成功!</p>\n";
?>



选择数据库

bool mysql_select_db(string database_name, int [link_identifier]);

  • database_name 数据库名称
  • link_identifier 指定由mysql_connect()函数返回的连接标识
1
2
3
4
5
6
7
8
9
10
<?php 
$id = mysql_connect("127.0.0.1:3306","root","密码");
$ok = mysql_select_db("database_name",$id);
if($ok) {
echo "<p>数据库选择成功!</p>\n"
}
esle {
echo "<p>数据库选择失败,请确定数据库是否存在。</p>\n"
}
?>



对数据库进行操作

向服务器发送指令,使用mysql_query()函数,

resource mysql_query(string $query [, resource $link_identifier])

向指定的连接标识符link_identifier所关联的服务器中的当前活动的数据库发送一条内容为 query 的查询。

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
$id = mysql_connect("127.0.0.1:3306","root","密码");
$ok = mysql_select_db("database_name",$id);
if($ok) {
$result = mysql_query('SELECT * from student');
if(!$result) {
Die('无效查询'.mysql_error());
}
else {
echo "成功执行SQL语句";
}
}
?>


最后程序结束用mysql_close()函数来关闭数据库连接。



开始学习PHP了……    _(:3」∠)_