设为首页 收藏本站
查看: 837|回复: 0

[经验分享] 在Mac OS X中配置Apache + PHP + MySQL-Hoarn的博客

[复制链接]

尚未签到

发表于 2018-11-22 11:29:35 | 显示全部楼层 |阅读模式
  内容如下:
  1. 启动Apache
  2. 设置虚拟主机
  3. 运行PHP
  4. 安装MySQL
  5. 使用phpMyAdmin
  6. 配置PHP的MCrypt扩展库
  7. GD库安装
  8. 增加CAPTCHA支持
  9. 增加Zendframework
  ------------------------------------------------------------------------------------------------------------------------------------------------------------------
  一.启动Apache
  有两种方法:
  1. 打开“系统偏好设置(System Preferences)” -> “共享(Sharing)” -> 勾选“Web共享(Web Sharing)”
  2. 打开“终端(terminal)”,然后
  2.1. 运行“sudo apachectl start”,再输入帐号密码,这样Apache就运行了。
  2.2. 运行“sudo apachectl -v”,你会看到Mac OS X 10.6.7中的Apache版本号:
  Server version: Apache/2.2.17 (Unix)
  Server built: Jan 17 2011 20:56:17
  这样在浏览器中输入“http://localhost”,就可以看到出现一个内容为“It works!”的页面,它位于“/Library(资源库)/WebServer/Documents/”下,这是Apache的默认根目录。
  PS:开启了Apache就是开启了“Web共享”,这时联网的用户就会通过“http://[本地IP]/”来访问“/Library(资源库)/WebServer/Documents/”目录,通过“http://[本地IP]/~[用户名]”来访问“/Users/[用户名]/Sites /”目录,可以通过设置“系统偏好设置”的“安全(Security)”中的“防火墙(Firewall)”来禁止这种访问。
  二.设置虚拟主机
  1. 在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apache的配置文件
  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,配置你需要的虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机
  
  ServerAdmin webmaster@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
  
  
  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
  
  而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:
  Forbidden
  You don't have permission to access /index.php on this server
  5. 最简单的办法就是在它们每行前面加上#,注释掉,这样既能参考又不导致其他问题。 然后增加如下配置(比如我将虚拟主机的目录放到我的个人文件夹下的“站点(Sites)”目录下,名为mySite):
  
  ServerName mySite
  DocumentRoot /Users/refresh/Sites/mySite
  //下面这段不是必需的,最好加上,但注意参数根据自己的需要更改
  
  AllowOverride All
  Options All
  
  
  PS.其实这段内容可以参考httpd-vhost.conf给出的示例来设置
  34. 保存退出,并重启Apache。
  35. 运行“sudo vi /etc/hosts”,打开hosts配置文件,加入”127.0.0.1 mySite“,这样就配置完mySite虚拟主机了,就可以用“http://mySite/”访问了,与“http://localhost/~[用户名]/Sites/mySite”完全一致。
  PS:其实也可以在需要设置虚拟主机的目录放置一个httpd.conf文件,其内容和上面所说的一致,然后再修改httpd.conf中
  “Include /private/etc/apache2/extra/httpd-vhosts.conf”为Include /Users/refresh/Sites/mySite
  三.运行PHP(apache增加php支持)
  1. 在终端中运行“sudo vi /etc/apache2/httpd.conf”,打开Apache的配置文件。(如果不习惯操作终端和vi的可以设置在Finder中显示所有的系统隐藏文件,记得需要重启Finder,这样就可以找到对应文件,随心所欲编辑了,但需要注意的是某些文件的修改需要开启root帐号,但整体上还是在终端上使用sudo来临时获取root权限比较安全。)
  2. 找到“#LoadModule php5_module libexec/apache2/libphp5.so”,把前面的#号去掉,保存并退出
  3. 运行“sudo cp /etc/php.ini.default /etc/php.ini”,这样就可以通过php.ini来配置各种PHP功能了。比如:通过下面两项来调整PHP提交文件的最大值,比如phpMyAdmin中导入数据的最大值
  upload_max_filesize = 2M
  post_max_size = 8M
  再比如通过display_errors来控制是否显示PHP程序的报错
  display_errors = Off
  运行“sudo apachectl restart”,重启Apache,这样PHP就可以用了。
  4. 运行“cp /Library/WebServer/Documents/index.html.en ibrary/WebServer/Documents/info.php”,即在Apache的根目录下复制index.html.en文件并重命名为info.php (或者直接创建一个php文件)
  5. 在vi中编辑info.php文件(vi /Library/WebServer/Documents/info.php)或者直接使用你喜欢的文本编辑软件编辑它。加入,保存。这样就可以在http://localhost/info.php中看到有关PHP的信息了。
  四.安装MySQL
  由于Mac OS X中并没有预装MySQL,所以需要自己手动安装。MySQL提供了Mac OS X下的安装说明
  1. 选择合适的版本并下载。
  2. 运行下载的dmg文件,会发现里面有4个文件。首先点击安装“mysql-版本号-osx10.6-x86_64.pkg”,这是MySQL的主安装包。 一般情况下,安装文件会自动把MySQL安装到/usr/local下的同名文件夹下。比如点击运行“mysql-版本号-osx10.6- x86_64.dmg”会把MySQL安装到“/usr/local/mysql-版本号-osx10.6-x86_64”中,一路默认安装完毕即可。
  3. 点击安装第2个文件MySQLStartupItem.pkg,这样MySQL就会自动在开机时自动启动了。
  4. 点击安装第3个文件MySQL.prefPane,这样就会在“系统设置偏好”中看到名为“MySQL”的设置项,通过它就可以设置MySQL开始或停止,以及是否开机时自动运行。到这里MySQL就基本安装完毕了。
  5. 通过运行“sudo vi /etc/bashrc”,在bash的配置文件中加入mysql和mysqladmin的别名
  #mysql
  alias mysql='/usr/local/mysql/bin/mysql'
  alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
  6. 这样就可以在终端中比较简单地通过命令进行相应的操作,比如安装完毕之后MySQL的root默认密码为空,如果要设置密码可以在终端运行“mysqladmin -u root password "mysqlpassword"”来设置,其中mysqlpassword即root的密码,更多相关内容可以参考相关文档。
  PS:Mac OS X的升级或者其他原因可能会导致MySQL启动或者开机自动运行,在MySQL的操作面板上会提示“Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' ”,或者在命令行下提示“Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”,这应该是某种情况下导致/usr/local/mysql/data的宿主发生了改变,只需要运行“sudo chown -R mysql /usr/local/mysql/data”即可。
  五.使用phpMyAdmin
  phpMyAdmin是用PHP开发的MySQL管理程序,非常的流行和实用。能够使用phpMyAdmin管理MySQL是检验前面几步成果的非常有效方式。
  1. 选择合适的版本并下载。
  2. 把刚下载的phpMyAdmin-版本号-all-languages文件夹复制到“/Users/[用户名]/Sites”中,改名为phpmyadmin。
  3. 复制“/Users/[用户名]/Sites/phpmyadmin/”中的config.sample.inc.php,并命名为config.inc.php
  4. 打开config.inc.php,做如下修改:
  用于Cookie加密,随意的长字符串
  $cfg['blowfish_secret'] = ''; (cookie 写上吧)
  当phpMyAdmin中出现“#2002 无法登录 MySQL 服务器”时,  请把localhost改成127.0.0.1就ok了,(这里挺重要),这是因为MySQL守护程序做了IP绑定(bind-address =127.0.0.1)造成的
  $cfg['Servers'][$i]['host'] = 'localhost';
  另外,把false改成true,这样就可以访问无密码的MySQL了,即使MySQL设置了密码也可以这样设置
  $cfg['Servers'][$i]['AllowNoPassword'] = false;
  5. 通过http://localhost/~[用户名]/phpmyadmin访问phpMyAdmin。这个时候就看到一个提示“无法加载 mcrypt 扩展,请检查您的 PHP 配置。”,这就涉及到下一节安装MCrypt扩展了。
  六.配置PHP的MCrypt扩展
  MCrypt是一个功能强大的加密算法扩展库,它包括有22种算法,phpMyAdmin依赖这个PHP扩展库。但是它在Mac OS X下的安装却不那么友善,具体如下:(安装软件前你要先在电脑里安装XCODE,要不编译不了软件)
  1. 下载并解压libmcrypt-2.5.8.tar.bz2
  2. 在终端执行如下命令:
  cd ~/Downloads/libmcrypt-2.5.8/
  ./configure --disable-posix-threads --enable-static
  make
  sudo make install
  3. 下载并解压PHP
  4 在终端执行如下命令:
  cd ~/Downloads/php-5.3.6/ext/mcrypt
  phpize (这是一条命令)
  ./configure
  make
  cd modules
  sudo cp mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
  5. 打开php.ini
  sudo vi /etc/php.ini
  在php.ini中加入如下代 码:
  extension=/usr/lib/php/extensions/no-debug-n on-zts-20090626/mcrypt.so
  保存后退出,然后重启apache。
  当你再访问http://localhost/~[用户名]/phpmyadmin时,你会发现“无法加载 mcrypt 扩展,请检查您的 PHP 配置。”的提示没有了,这就表示MCrypt扩展库安装成功了。
  七.增加gd支持
  mac 自带的php默认是没有启用gd支持的,需要额外编译gd库。
  sudo bash
  Install libjpeg
  PS:安装GD支持安装libjpeg,所以我们先创建一个源代码目录并下载代码编译安装。
  mkdir -p /SourceCache
  cd /SourceCache
  下载并解压
  curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz
  tar xzpf jpegsrc.v8c.tar.gz
  cd /SourceCache/jpeg-8c
  cp /usr/share/libtool/config/config.sub .
  cp /usr/share/libtool/config/config.guess .
  32位的使用:
  ./configure --enable-shared
  64位的使用:
  MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch ppc -arch ppc64
  -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure
  --enable-shared
  最后编译安装:
  make clean
  make mkdir -p /usr/local/include
  mkdir -p /usr/local/bin
  mkdir -p /usr/local/lib
  mkdir -p /usr/local/man/man1
  make install
  这样libjpeg就安装好了。
  下面安装GD库。 (因为之前下载安装了php,在php的ext目录下有gd扩展)
  cd ~/Downloads/libmcrypt-2.5.8/ext/gd
  32位的使用:
  phpize
  ./configure --with-zlib-dir=/usr
  --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6
  --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6
  64位的使用:
  MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch ppc -arch ppc64
  -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch
  ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure
  --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib
  --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6
  --with-xpm-dir=/usr/X11R6
  特别注意执行一下Notice代码,避免出现/usr/X11/lib/libpng.3.0.0.dylib: No such file or directory的错误提示。
  sudo ln -s /usr/X11/lib/libpng.3.dylib /usr/X11/lib/libpng.3.0.0.dylib
  make clean
  make make install
  (上面的命令后如果:/usr/lib/php/extensions/no-debug-non-zts-20090626/ 目录下没有gd.so那就执行下面的命令:
  cd modules
  sudo cp gd.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
  
  配置php加载gd.so:
  编辑/etc/php.ini ,增加一行
  extension=gd.so
  如果没有/etc/php.ini,则使用
  echo -e extension=gd.so > /etc/php.ini 创建它。
  配置 extension_dir="/usr/lib/php/extensions/no-debug-no n-zts-20060613"
  这个目录在make install里也能看到。
  重启httpd :sudo apachectl restart
  八.增加CAPTCHA支持
  在一般的网站注册中我们经常会看到要求根据一副图像来输入一个验证码,从而避免机器注册。在PHP里面,我们可以通过CAPTCHA来完成这种功能,具体方法如下:
  先从http://pear.php.net/上下载一下组件:
  Text_CAPTCHA
  Text_Password
  Image_Text
  然后将组件整合到PHP中,首选需要为PHP添加Pear功能以支持组件扩展,操作步骤如下:
  curl http://pear.php.net/go-pear.phar > go-pear.phar
  sudo php -d phar.require_hash=0 go-pear.phar
  PS:跟着步骤走,让你打安装目录的时候换到/usr/local下(注意看提示),提示要更新php.ini的时候让他更新。
  接下来安装上面的三个组件:
  pear install -f Text_CAPTCHA
  pear install -f Image_Text
  pear install -f Text_Password
  PS:这里-f表明安装非稳定版本,安装过程可能需要等待一段时间安装完成后,屏幕会有提示。另外,在运行上面的命令时可能会提示你说找不到可用版本,并提示有一个带版本号的beta版本,那就在上面的命令后附加上版本号再次执行(注意看提示,安装这三个组件非常简单!)。
  九.配置Zendframework
  安装 Zend Framework 非常简单。只要你下载并解压它,并把发行版里的 /library 文件夹加到你的 include 路径里就行了。 你也可以把 library 文件夹移动到其它可共享的位置。具体可参考官方文档。
  PS:一定要注意将 /library 文件夹加到你的 include 路径里,我就是没有做好这步,始终都没找到无法运行的原因,甚是苦恼!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638181-1-1.html 上篇帖子: Apache using ssl of a install native 下篇帖子: Apache Mod cache usage and configuration
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表