目錄
在Mac OS X中配置Apache + PHP + MySQL
启动Apache
运行PHP
安装MySQL
使用phpMyAdmin
配置PHP的MCrypt扩展
设置虚拟主机
您或许有兴趣:
首頁 php教程 php手册 在Mac OS X中配置Apache + PHP + MySQL

在Mac OS X中配置Apache + PHP + MySQL

Jul 09, 2016 am 09:09 AM
apache mac os x mysql php 程式碼 開源 程式設計 程式設計語言 軟體開發 配置

尊重作者:转自:http://dancewithnet.com/2010/05/09/run-apache-php-mysql-in-mac-os-x/

 

在Mac OS X中配置Apache + PHP + MySQL

Mac OS X 内置Apache 和 PHP,使用起来非常方便。本文以Mac OS X 10.6.3和 10.8.1为例。主要内容包括:

  1. 启动Apache
  2. 运行PHP
  3. 安装MySQL
  4. 使用phpMyAdmin
  5. 配置PHP的MCrypt扩展库
  6. 设置虚拟主机

启动Apache

有两种方法:

  1. 打开“系统设置偏好(System Preferences)” -> “共享(Sharing)” -> “Web共享(Web Sharing)”。注意,从Mac OS X从10.8开始取消了 “Web共享(Web Sharing)”。
  2. 打开“终端(terminal)”,然后(注意,sudo需要的密码就是系统的root帐号密码)
    1. 运行“sudo apachectl start”,再输入帐号密码,这样Apache就运行了。
    2. 运行“sudo apachectl -v”,你会看到Mac OS X的Apache版本信息,如10.8.1中:
      <code>Server version: Apache/2.2.22 (Unix)
      Server built:   Jun 20 2012 13:57:09
      </code>
      登入後複製

如此在浏览器中输入“http://localhost”,就可以看到一个内容为“It works!”的页面,其位于“/Library(资源库)/WebServer/Documents/”下,这就是Apache的默认根目录。

 

注意:开启了Apache就是开启了“Web共享”,这时联网用户就会通过“http://[本地IP]/”来访问“/Library(资源库)/WebServer/Documents/”目录,通过“http://[本地IP]/~[用户名]”来访问“/Users/[用户名]/Sites/”目录。值得注意的是,Mac OS X在10.8中取消”Web共享(Web Sharing)”时,也移除了“/Users/[用户名]/Sites/”目录,所以10.8中访问“http://[本地IP]/~[用户名]”会显示“403 Forbidden”,但http://[本地IP]/依旧可以访问。可以到“系统偏好设置” -> “安全(Security)” -> “防火墙(Firewall)”,开启防火墙,然后在“防火墙选项(Firewall Options)”中勾上“组织所有进入连接(block all incoming connections)”即可。也可以通过设置httpd.conf来只允许localhost和127.0.0.1访问“/Library(资源库)/WebServer/Documents/”。

<code><directory>
    <span>......
    #
    # Controls who can get stuff from this server.
    #</span>
    Order allow,deny
    <span>#Allow from all</span>
    Allow from 127.0.0.1
    Allow from localhost 

</directory>
</code>
登入後複製

运行PHP

  1. 在终端中运行“sudo vi /etc/apache2/httpd.conf”,打开Apache的配置文件。(如果不习惯操作终端和vi,可以设置在Finder中显示所有系统隐藏文件,记得设置完毕后需要重启Finder,然后就可以找到对应文件,随心所欲编辑了,需要注意的是某些文件的修改还是需要开启root帐号,但整体上还是在终端上使用sudo来临时获取root权限比较安全。)
  2. 找到“#LoadModule php5_module libexec/apache2/libphp5.so”,把前面的#号去掉,保存(在命令行输入:w)并退出vi(在命令行输入:q)。
  3. 运行“sudo cp /etc/php.ini.default /etc/php.ini”,这样就可以运行<code>sudo vi /etc/php.ini</code>来编辑php.ini配置各种功能了。比如:
    <code><span>;通过下面两项来调整PHP提交文件的最大值,如phpMyAdmin中导入数据的最大值</span>
    upload_max_filesize = 2M
    post_max_size = 8M
    <span>;通过display_errors来控制是否显示PHP程序的报错信息,这在调试PHP程序时非常有用</span>
    display_errors = Off
    </code>
    登入後複製
  4. 运行“sudo apachectl restart”,重启Apache,这样PHP就可以用了。
  5. 运行“sudo cp /Library/WebServer/Documents/index.html.en /Library/WebServer/Documents/info.php”,即在Apache的根目录下复制index.html.en文件并重命名为info.php。
  6. 在终端中运行“sudo vi /Library/WebServer/Document/info.php”,这样就可以在vi中编辑info.php文件了。在“It’s works!”后面加上“<?php phpinfo(); ?>”,然后保存之。如此就可以在http://localhost/info.php中看到有关PHP的信息,比如10.8中内置PHP版本号是5.3.13。

安装MySQL

Mac OS X没有内置MySQL,所以需要自己手动安装,目前MySQL的最稳定版本是5.5。MySQL提供了Mac OS X下的安装说明。

  1. 下载MySQL 5.5。选择合适版本,如这里选择了mysql-5.5.27-osx10.6-x86_64.dmg。
  2. 运行dmg,会发现里面有4个文件。首先点击安装mysql-5.5.27-osx10.6-x86_64.pkg,这是MySQL主安装包。一般情况下,安装文件会自动把MySQL安装到/usr/local下的同名文件夹下。如运行“mysql-5.5.27-osx10.6-x86_64.dmg”会把MySQL安装到“/usr/local/mysql-5.5.27-osx10.6-x86_64”中,一路默认安装完毕。(注意,从10.8开始Mac OS X的权限更加严格,直接点击会提示“mysql-5.5.27-osx10.6-x86_64.pkg can’t be opened because it is from an unidentified developer. Your security preferences allow installation of only apps from the Mac App Store and identified developers.”阻止了安装,你可以使用双指单击该安装文件,在弹出菜单中选择“用…打开(open with)”,再选择“安装(Installer)”就可以接着安装了。)
  3. 安装第2个文件MySQLStartupItem.pkg,MySQL就会自动在开机时启动了。(注意,10.8的安装方法同上。)
  4. 安装第3个文件MySQL.prefPane,就会在“系统设置偏好”中看到“MySQL”的ICON,通过它就可以控制MySQL是否开启,以及开机时是否自动运行。到这里MySQL就基本安装完毕了。(注意,10.8中用双指单击该安装文件,在弹出的菜单中选择“用…打开(open with)”,然后选择“系统偏好(System Perference)”就可以接着安装了。)
  5. 通过运行“sudo vi /etc/bashrc”,在bash配置文件中加入mysqlstartmysqlmysqladmin的别名(注意:修改完毕之后需要退出“终端(Terminal)”之后重新进入,这些命令才会生效):
    <code>#mysql
    alias mysqlstart='sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart'
    alias mysql='/usr/local/mysql/bin/mysql'
    alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
    </code>
    登入後複製

    这样就可以在终端中比较简单地通过命令进行相应的操作。由于开始安装MySQLStartupItem.pkg到“/Library/StartupItems/MySQLCOM/”来控制MySQL的运行、自动运行、停止、关闭之类。在MySQL没有启动时,直接运行mysqlmysqladmin命令会提示“Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”,所以我们可以通过控制面板或者直接运行mysqlstart命令来启动MySQL,之后再运行mysqlmysqladmin命令就正常了。比如安装完毕后MySQL的root默认密码为空,如果要设置密码可以在终端运行“mysqladmin -u root password "mysqlpassword"”来设置,其中mysqlpassword即root的密码。更多相关内容可以参考B.5.4.1. How to Reset the Root Password。

注意:Mac OS X的升级或其他原因可能会导致MySQL启动或开机自动运行时,在MySQL操作面板上会提示“Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' ”,这应该是某种情况下导致/usr/local/mysql/data的宿主发生了改变,只需要运行“sudo chown -R mysql /usr/local/mysql/data”即可。

另外,使用PHP连接MySQL可能会报错“Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’”,或使用localhost无法连接MySQL而需要127.0.0.1,原因是连接时php默认去找/var/mysql/mysql.sock了,但MAC版的MYSQL改动了文件位置,放在/tmp下了。处理办法是按如下修改php.ini:

<code>mysql.default_socket = /tmp/mysql.sock</code>
登入後複製

使用phpMyAdmin

phpMyAdmin是用PHP开发的管理MySQL的程序,非常的流行和实用。能够使用phpMyAdmin管理MySQL是检验前面几步效果的非常有效方式。

  1. 下载phpMyAdmin。选择合适的版本,比如这里选择phpMyAdmin-3.5.22-all-languages.tar.bz2这个版本。
  2. 把“下载(downloads)”中phpMyAdmin-3.5.22-all-languages.tar.bz2文件解压到“/Library/WebServer/Documents/”中,并改名为phpmyadmin。
    <code>sudo tar -xf ~/Downloads/phpMyAdmin-3.5.2.2-all-languages.tar.bz2 -C
                 /Library/WebServer/Documents/
    sudo mv /Library/WebServer/Documents/phpMyAdmin-3.5.2.2-all-languages
                /Library/WebServer/Documents/phpmyadmin
    </code>
    
    登入後複製
  3. 复制“/Library/WebServer/Documents/phpmyadmin/”中的config.sample.inc.php,并命名为config.inc.php
  4. 编辑config.inc.php,修改如下:
    <code><span>用于Cookie加密,随意的长字符串</span>
    $cfg['blowfish_secret'] = 'a8b7c6d';
    
    <span>当phpMyAdmin中出现“#2002 无法登录 MySQL 服务器(#2002 Cannot log in to the MySQL server)”时,
    请把localhost改成127.0.0.1就ok了,
    这是因为MySQL守护程序做了IP绑定(bind-address =127.0.0.1)造成的</span>
    $cfg['Servers'][$i]['host'] = 'localhost';
    
    <span>把false改成true,这样就可以访问无密码的MySQL了,
    即使MySQL设置了密码也可以这样设置,然后登录phpMyAdmin时输入密码</span>
    $cfg['Servers'][$i]['AllowNoPassword'] = false;
    </code>
    登入後複製
  5. 这样就可以通过http://localhost/phpmyadmin访问phpMyAdmin了。此时会看到一个提示“无法加载 mcrypt 扩展,请检查您的 PHP 配置。(The mcrypt extension is missing. Please check your PHP configuration.)”,这会涉及到下一节安装MCrypt扩展了。

配置PHP的MCrypt扩展

MCrypt是一个功能强大的加密算法扩展库,它包括有22种算法,phpMyAdmin依赖这个PHP扩展库。但在Mac OS X下的安装却不那么友善,具体如下:

  1. 下载libmcrypt-2.5.8.tar.gz。
  2. 在终端执行如下命令(注意如下命令需要安装Xcode支持,可直接去Mac App Store下载,安装完毕后可能会发现在终端运行./configure --disable-posix-threads --enable-static会报错,运行make会提示命令不存在,此时还需要打开Xcode,然后在Xcode的软件“配置(Preference…)”)-> “下载(Downloads)” 中安装 “命令行工具(Command Line Tools)”:
    <code>cd ~/Downloads
    tar -zxvf libmcrypt-2.5.8.tar.bz2
    cd libmcrypt-2.5.8
    ./configure --disable-posix-threads --enable-static
    make
    sudo make install</code>
    登入後複製
  3. 下载PHP源码文件php-5.3.13.tar.bz2,记得选择中国镜像会比较快。Mac OS X 10.6.3中预装的PHP版本是5.3.1,10.8的版本是5.3.13,而现在最新的PHP版本是5.4.6,所以需要依据自己的实际情况选择对应的版本,本文以10.8的PHP版本为例。
  4. 在终端执行如下命令,把php-5.3.13.tar.bz2,并配置autoconf(在新的Mac OS X的Xcode中需要自己配置),然后才能运行phpize命令:
    <code>cd ~/Downloads
    tar -zxvf php-5.3.13.tar.bz2
    
    cd php-5.3.13/ext/mcrypt
    curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
    tar -zxvf autoconf-latest.tar.gz
    cd autoconf-2.69
    ./configure
    make
    sudo make install
    
    cd ..
    phpize
    ./configure
    make
    sudo make install
    </code>
    登入後複製
  5. 打开php.ini
    <code>sudo vi /etc/php.ini</code>
    登入後複製

    在php.ini中加入如下代码,并保存后退出,然后重启Apache

    <code>extension=mcrypt.so</code>
    登入後複製

当你再访问http://localhost/phpmyadmin时,会发现“无法加载 mcrypt 扩展,请检查您的 PHP 配置。”提示没有了,这就表示MCrypt扩展库安装成功了。如果还不能加载,尝试把php.ini中的加入的extension修改为:

<code>extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so</code>
登入後複製

Mac OS X下安装MCrypt扩展的确比较复杂,而且稍微不小心会有各种小问题出现,大家还可以参考How to Install mcrypt for php on Mac OSX Lion 10.8 & 10.7 Development Server和Adding MCRYPT to your OSX Lion PHP install

设置虚拟主机

  1. 在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apche的配置文件
  2. 在httpd.conf中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“”,保存并退出。
  3. 运行“sudo apachectl restart”,重启Apache后就开启了虚拟主机配置功能。
  4. 运行“sudo vi /etc/apache2/extra/httpd-vhosts.conf”,就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:
    <code><virtualhost>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "/usr/docs/dummy-host.example.com"
        ServerName 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>
        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> </code>
    登入後複製

    而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:

    <code>Forbidden
    You don't have permission to access /index.php on this server</code>
    登入後複製

    最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

  5. 增加如下配置
    <code><virtualhost>
        DocumentRoot "/Library/WebServer/Documents"
        ServerName localhost
        ErrorLog "/private/var/log/apache2/localhost-error_log"
        CustomLog "/private/var/log/apache2/localhost-access_log" common
    </virtualhost> 
    
    <virtualhost>
        DocumentRoot "/Users/[用户名]/Sites"
        ServerName sites
        ErrorLog "/private/var/log/apache2/sites-error_log"
        CustomLog "/private/var/log/apache2/sites-access_log" common
        <directory></directory>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order deny,allow
                    Allow from all
          
    </virtualhost> </code>
    登入後複製

    保存退出,并重启Apache。

  6. 运行“sudo vi /etc/hosts”,打开hosts配置文件,加入"127.0.0.1 sites",这样就可以配置完成sites虚拟主机了,可以访问“http://sites”了,在10.8之前Mac OS X版本其内容和“http://localhost/~[用户名]”完全一致。
  7. 注意,记录log的“ErrorLog "/private/var/log/apache2/sites-error_log"”也可以删掉,但记录日志其实是一个好习惯,在出现问题时可以帮助我们判断。如果保留这些log代码,一定log文件路径都是存在的,如果随便修改一个不存在的,会导致Apache无法服务而没有错误提示,这个比较恶心。

这里利用Mac OS X 10.6.3和10.8.1中原生支持的方式来实现的配置,也可以参考“Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(一) ”和“Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二) ”。实际上,还可以使用XAMPP或MacPorts这种第三方提供的集成方案来实现简单的安装和使用。

您或许有兴趣:

  • MySQL&phpMyAdmin安装于Win下
  • 启用Mod Rewrite和.htaccess
  • 从MySQL4.0向MySQL5迁移数据
  • 利用phpMyAdmin把wordpress数据从MySQL4迁移到MySQL5
  • 安装Apache+PHP在Windows+IIS下
  • 升级到Wordpress2.3小结
  • Ajax的小贴士
  • SSI
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
MySQL:數據庫,PHPMYADMIN:管理接口 MySQL:數據庫,PHPMYADMIN:管理接口 Apr 29, 2025 am 12:44 AM

MySQL和phpMyAdmin可以通過以下步驟進行有效管理:1.創建和刪除數據庫:在phpMyAdmin中點擊幾下即可完成。 2.管理表:可以創建表、修改結構、添加索引。 3.數據操作:支持插入、更新、刪除數據和執行SQL查詢。 4.導入導出數據:支持SQL、CSV、XML等格式。 5.優化和監控:使用OPTIMIZETABLE命令優化表,並利用查詢分析器和監控工具解決性能問題。

作曲家:通過AI的幫助開發PHP 作曲家:通過AI的幫助開發PHP Apr 29, 2025 am 12:27 AM

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

session_start()函數的意義是什麼? session_start()函數的意義是什麼? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

怎樣卸載MySQL並清理殘留文件 怎樣卸載MySQL並清理殘留文件 Apr 29, 2025 pm 04:03 PM

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數據目錄;4.驗證卸載是否徹底。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

H5:HTML5的關鍵改進 H5:HTML5的關鍵改進 Apr 28, 2025 am 12:26 AM

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

Apache在行動中:Web服務器和Web應用程序 Apache在行動中:Web服務器和Web應用程序 Apr 28, 2025 am 12:21 AM

ApacheHTTPServer的主要功能包括模塊化設計、虛擬主機配置和性能優化。 1.模塊化設計通過加載不同模塊實現功能,如SSL加密和URL重寫。 2.虛擬主機配置允許在一個服務器上運行多個網站。 3.性能優化通過調整參數如ServerLimit和KeepAlive提升性能。

MySQL批量插入數據的高效方法 MySQL批量插入數據的高效方法 Apr 29, 2025 pm 04:18 PM

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显著提升数据库操作效率。

See all articles