如何在Mac OS X上安装Apache,PHP和MySql
我已经写教程 很长时间了,不时使用Apache和PHP来更改我的Web Host服务器设置或者对UI布局进行一些更改。
因此,最终我决定学习PHP,并且将Mac用于个人用途,因此第一步是在Mac OS X上安装Apache,PHP和MySql。
我的Mac OS是Mountain Lion(10.8),因此对于早期版本,您可能需要在下面提供的步骤中进行一些更改。
为Mac OS X安装Apache
Mac OS最终基于Unix构建,因此非常容易安装任何Unix支持的软件。
更好的是Mac OS X附带了apache Web服务器,我们只需要启动它并进行一些更改即可设置我们的开发环境。
我们将以root用户启动apache服务器,以避免任何权限问题。
hyman@hymans-MacBook-Pro:~/$sudo su Password: hymans-MacBook-Pro:~ root# apachectl start hymans-MacBook-Pro:~ root#
这就是在Mac OS X上启动Apache Web服务器所需要的全部,现在您需要通过启动浏览器并访问https://localhost /
来对其进行验证。
您应该获得一个带有消息"它有效!"的页面。
现在,我们可以继续进行设置PHP和MySql的工作,但是在此之前,我想进行一些调整以设置开发环境。
创建Apache VirtualHost
Apache Web服务器项目文件的默认位置是/Library/WebServer/Documents /,这不是保存项目文件的方便位置,我们也必须使用localhost在浏览器中对其进行访问,因此我决定创建自己的虚拟机主机指向我的开发目录。
要启用VirtualHosts,我们需要在Apache配置文件(httpd.conf)中进行一些更改。
hymans-MacBook-Pro:~ root# vi /etc/apache2/httpd.conf Uncomment below lines and save it. # Virtual hosts Include /private/etc/apache2/extra/httpd-vhosts.conf
现在,当Apache加载配置文件时,它还将加载虚拟主机配置文件。
现在,我们可以继续进行HTTPD虚拟主机文件。
hymans-MacBook-Pro:~ root# vi /etc/apache2/extra/httpd-vhosts.conf Add following configuration for a new VirtualHost and save it. <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/Users/hyman/CODE/example.com" ServerName example.com ServerAlias www.example.com ErrorLog "/private/var/log/apache2/example.com-error_log" CustomLog "/private/var/log/apache2/example.com-access_log" common <Directory "/Users/hyman/CODE/example.com"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
确保根据需要更改DocumentRoot,ServerName和Directory的位置。
添加了Directory指令以避免任何权限问题。
我们需要做的下一件事是将服务器URL添加到已知主机文件中,否则它将转到DNS服务器,并且该请求将被重定向到Internet,而不是从本地计算机加载它。
hymans-MacBook-Pro:~ root# vi /etc/hosts Add below line and save it. 127.0.0.1 example.com
我们的虚拟主机设置现已完成,只需使用命令" apachectl restart"重新启动apache即可。
只需将简单HTML文件(abc.html)放在服务器目录中,然后尝试在浏览器https://example.com/abc.html
。
如果请求仍在访问Internet,请尝试使用dscacheutil -flushcache命令刷新DNS缓存。
有时,Apache可能会因为繁重的负载而崩溃,请使用apache restart脚本自动启动它。
在Mac OS X上安装PHP
要启用对Apache的PHP支持,我们需要在其配置文件中进行更改。
hymans-MacBook-Pro:CODE root# vi /etc/apache2/httpd.conf Uncomment below line and save it. LoadModule php5_module libexec/apache2/libphp5.so
现在重新启动服务器,它应该能够处理PHP文件。
为了测试它,我们可以创建一个简单的PHP文件,如下所示。
test.php
<?php echo phpinfo(); ?>
使用URLhttps://example.com/test.php
在浏览器中加载PHP文件,您应该会看到一个包含所有PHP配置的大页面。
现在开始在Mac OS X上安装MySql数据库服务器。
在Mac OS X上安装MySql
从MySql下载下载MySql DMG文件。
打开DMG文件并安装MySql服务器和首选项窗格,以轻松启动和停止MySql服务器。
如果MySql服务器未运行,请启动它,还可以选择选中该复选框以在启动时自动启动MySql服务器。
您可以使用许多Mac OS软件进行MySql数据库管理,但我最喜欢SequelPro,它易于安装和使用,并且占用的内存很少。
您可以从SequelPro下载它。
在继续从PHP程序测试MySql连接之前,我将创建一个数据库和用户。
为了更轻松地访问MySql脚本,我将MySql bin目录添加到了PATH并导出了它。
hyman@hymans-MacBook-Pro:~$export PATH=$PATH:/usr/local/mysql/bin hyman@hymans-MacBook-Pro:~$mysql -h localhost -u root -p Enter password: <ENTER> Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5128 Server version: 5.5.25 MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names Jan be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create user 'myuser'@'localhost' identified by 'pwd123'; Query OK, 0 rows affected (0.03 sec) mysql> GRANT ALL ON *.* TO 'myuser'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> create database Test; Query OK, 1 row affected (0.00 sec) mysql> exit; Bye hyman@hymans-MacBook-Pro:~$
将PHP与MySql连接
当我们安装MySql时,它的套接字文件位于/tmp/mysql.sock
中,但是当PHP尝试找到它时,它查看/var/mysql
目录。
较简单的解决方案是建立一个指向实际MySql套接字文件的符号链接。
hyman@hymans-MacBook-Pro:~/$sudo su Password: hymans-MacBook-Pro:~ root#cd /var hymans-MacBook-Pro:var root# mkdir mysql hymans-MacBook-Pro:var root# cd mysql hymans-MacBook-Pro:mysql root# ln -s /tmp/mysql.sock mysql.sock
这是连接到MySql服务器的示例PHP文件。
testdb.php
<php> <?php $con = mysqli_connect(" localhost"," myuser"," pwd123"," Test");
//检查连接是否(mysqli_connect_errno($con)){echo"无法连接到MySQL:"。
mysqli_connect_error(); } else {echo"已连接到MySql测试数据库"; }
mysqli_close($con); ?>
只需将此文件放在" example.com"目录中,然后尝试访问URL" https://example.com/testdb.php"即可。
您应该会看到该消息。
<p>Connected to MySql Test DB</p>
如果您看到以下错误消息。
警告:mysqli_connect()[function.mysqli-connect]:[2002] /Users/hyman/CODE/example.com中没有这样的文件或者目录(试图通过unix:///var/mysql/mysql.sock连接) /testdb.php在第2行
警告:mysqli_connect()[function.mysqli-connect]:(HY000/2002):在第2行的/Users/hyman/CODE/example.com/testdb.php中没有此类文件或者目录无法连接到MySQL:否这样文件或者目录警告:mysqli_close()期望参数1为mysqli,布尔值在第10行的/Users/hyman/CODE/example.com/testdb.php中给出
请检查两个位置中的MySql套接字文件,并确保MySql服务器已启动。
如果您收到以下错误消息:
警告:mysqli_connect()[function.mysqli-connect]:(28000/1045):在/Users/hyman/CODE/example.com/testdb中,对用户'myuser'@'localhost'(使用密码:是)的访问被拒绝。
第2行中的php无法连接到MySQL:用户'myuser'@'localhost'的访问被拒绝(使用密码:是)警告:mysqli_close()期望参数1为mysqli,在/Users/hyman/CODE/example中给出布尔值.com/testdb.php,第10行
这是用户创建时遇到的问题,请在上面检查用于创建用户的正确语法。