hexagram 发表于 2008-04-10 21:11

[转载]Apache+PHP4+MYSQL5+Zend Optimizer配制详细步骤

Apache+PHP4+MYSQL5+Zend Optimizer配制详细步骤

作者:董鹏 ( John Constantine)转贴请注明谢谢
attack520@gmail.com
说明:以下只是本人的操作心得,适用于OS X 10.4版本
我尽量把过程写得完整易懂,但有部分操作还是要在Terminal下完成,不过不用担心只是很容易的操作我会给出完整的命令,但请注意shell>是指在Terminal下输入的命令,return>指Terminal返回的内容,在文章里出现的目录都可以用转到文件夹直接找到

第一章 服务器软件 Apache Web Server
简单的说 Apache就是提供基本的Web 服务,你如果想实现在本机浏览网站必须要有这个东西,在Mac OS tiger内部已经集成了 Apache 1.33所以不用我们去安装,只要在系统预制(system perferences)的共享选项中打开个人网站共享。
然后打开终端(terminal)执行
shell>cat /etc/hostconfig
如果在返回的信息里面看到WEBSERVER=-YES-的字样说明你的网络服务器已经装好了,并且工作正常。这时你可以通过更改/etc/httpd/httpd.conf文件中
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm
</IfModule>
来确定主页的引导顺序。当完成以上的任务后你的MAC已经具备了基本的静态网站服务功能,把位于/Library/WebServer/Documents/里面的文件删掉,放上你自己的内容别人就可以用你的ip(http://yourip/)访问你的网络资源了。

第二章 PHP+Mysql
第一章过后相信你已经完成基本的WEB服务器了,但是只有HTML是不够的,现今的网站十有八九都是动态的,同时PHP语言又是网络编程中非常重要的角色,很多情况下大家都是为了在本机测试PHP程序才架设本机服务器的,所以下面我们就来架设本机的php服务。
这里我会说在MAC上假设PHP服务简直就是享受,因为操作系统已经为我们内置了PHP 4.4.1 也就是说我们不用安装任何的软件只要更改相应的设置就OK了。
转到/private/etc/httpd/下,找到httpd.conf备份到桌面上用记事本打开,搜索“PHP”
你会找到
#LoadModule php4_module libexec/httpd/libphp4.so
.
.
.
.
#AddModule mod_php4.c
将以上两行的#去掉,然后保存在把文件覆盖回去,系统会要求验证,输入用户密码。
然后打开终端重新启动 Apache Web Server
shell>sudo apachectl restart
return>httpd restarted
确认PHP启动
shell>tail /var/log/httpd/error_log
在返回的内容里面找到
Apache/1.3.33 (Darwin) PHP/4.4.1 configured -- resuming normal operations
就说明你的PHP已经成功安装好了
那么编写一个PHP信息探针看看
打开记事本编写一个info.php文件内容如下
<html>
<body>
<h1>PHP Test Page</h1>
<? phpinfo()?>
</body>
</html>
保存在你的 /Library/WebServer/Documents/里面然后打开浏览器访问
http://localhost/info.php看看如果有PHP信息返回来那么恭喜你你的PHP已经正常工作了,下面把你的PHP代码防到 /Library/WebServer/Documents/里面运行试试看
光有PHP还是不完整,许多的网站的登陆和搜索功能都需要有数据库的支持,这里我们选择Mysql5原因有两个,一来它是一款非常好的数据库软件,执行效率高,与MAC的兼容性非常好,二来它是免费的你可以从http://dev.mysql.com/downloads/mysql/5.0.html上免费得到它,下载时候选择给10.4的安装包同时注意选择和你的机器配制一样的安装包intel的用户选择x86版本G4的用户选择PowerPC版本,建议G5用户选择64-Bit版本。同时建议选择MAX版本。下载完成后dmg文件会自动装载,里面有两个pkg文件先安装Mysql主程序再安装MySQLStartupItem.pkg,之后将控制版面文件打开安装到系统预制项目中。
接下来就是配制Mysql了。
在/usr/local/mysql/bin/里面有两个很重要的shell命令mysql和mysqladmin
每次使用他们都要打很长的目录所以我们修改系统PATH

shell>PATH= /usr/local/mysql/bin:$PATH
shell>echo $PATH

可以看到
Supers-Apple:~ John$ echo $PATH
/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:
系统目录增加了这时候就可以直接使用mysql和mysqladmin了
第一步我们先要设定root用户密码
shell> mysqladmin -u root password *******
shell> mysqladmin -u root -h localhost password *******
确保两行密码一致
然后
shell>mysql –u root –p
输入密码回车
这时候你会发现提示符变成了mysql>
说明root用户密码已经设定完毕确保不要忘记!
当然通过shell管理数据库并不方便所以我介绍一个外部管理软件,phpMyadmin可以从
http://www.phpmyadmin.net/home_page/下载最新的版本,下载好了以后就可以把整个解压好的文件夹防到你的 /Library/WebServer/Documents/下面
运行前还要进行一下配制修改目录下config.inc.php
$cfg['blowfish_secret'] = 'cookie';

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['auth_type'] = 'cookie';

然后访问http://localhost/phpMyAdmin/index.php 管理你的数据库。
通过外部程序调用mysql数据库可能会出现一个问题,不能正确调用或者出现错误提示
· Error: 1251 SQLSTATE: 08004 (ER_NOT_SUPPORTED_AUTH_MODE)
Message: Client does not support authentication protocol requested by server;
consider upgrading MySQL client

解决办法在终端下
mysql>USE mysql;
mysql>UPDATE user SET password = old_password ('*******')
WHERE user = 'username';
mysql>FLUSH PRIVILEGES;
逐一处理用户就可以解决。
至此你的服务器基本配制就算结束了,enjoy!


附录:ZendOptimizer 安装使用
ZendOptimizer 是Zend公司针对PHP语言知识产权加密的一款解释软件,他可以将被编译过的PHP文件解释运行,在现今的许多PHP软件产品都经过了Zend加密所以只有安装了ZendOptimizer的服务器才能运行。

安装方法:
ZendOptimizer没有提供安装程序,提供的是在终端下的安装脚本,所以我们需要激活root用户来得到最高权限来进行安装。激活root有三种方法
1:用系统安装盘启动计算机运行重设密码来设定root密码之后在重新启动计算机
2:进入实用工具NetInfo Manager>security选项里面启用
3:比较麻烦不建议用

准备php.ini文件
将/etc/php.ini.default改名为php.ini

启用root用户之后准备好 ZendOptimizer安装包(可以在http://www.zend.com)免费下载,建议版本ZendOptimizer-2.6.2-Mac_OS_X.tar.gz
下载后解压缩得到一个包含诸多文件的文件夹,打开终端
shell>login root
return>password:
输入密码回车提示符变成root#
之后将刚才解压缩得到的文件夹中的
install-tty拖如终端窗口中(建议解压缩到没有中文的目录下比如放在桌面上)
root#/ZendOptimizer-2.6.2-darwin7.8-ppc/install-tty
return>
Please, wait ...

Welcome to the Zend Optimizer 2.6.2 Installation!

For more information regarding this procedure, please see the
Zend Optimizer Installation Guide.



回车继续
之后显示的是LICENSE一直按回车直到
return>
Do you accept the terms of this license?
Answer (yes or no) :
回车同意
然后输入安装路径
Please specify the location for installing Zend Optimizer :
回车保持默认设置
return>Confirm the location of your php.ini file :
回车默认
return>
Are you using Apache Web server?
Answer (yes or no) :
回车继续
return>
Specify the full path to the Apache control utility (apachectl) :
回车继续
return>
Trying to determine the version of PHP.
Please wait... (this may take a few seconds)

Detecting ... \



Installing 4_3_x_comp/ZendOptimizer.so \


The following configuration changes have been made:


- The original php.ini was backed up to
/usr/local/Zend/etc/php.ini-zend_optimizer.bak


回车继续
return>
The installation has completed successfully.
Zend Optimizer is now ready for use.
You must restart your Web server for the modifications to take effect.

回车继续
Restart the Web server now?
Answer (yes or no) :
回车继续
Restarting Apache ...
Please wait... (this may take a few seconds)

Restarting ... \


Apache has restarted successfully.

回车继续
return>
root#

shell>logout
return>user$

shell>logout
return>
退出终端

这时访问PHP探针
在信息中如果看到
Zend Optimizer
Optimization Pass 1 enabled
Optimization Pass 2 enabled
Optimization Pass 3 enabled
Optimization Pass 4 enabled
Optimization Pass 9 enabled
Zend Loader enabled
License Path no value

说明你的 Zend Optimizer安装完毕正常工作了!!恭喜你基本上你的MAC已经具备了一台WEB服务器应有的一切功能,请尽情享用!!enjoy!!







吃西瓜不吐骨头,不吃西瓜倒吐红烧肉

顶!!

这样的实用文章非常适合初学开发的朋友,谢谢楼主共享,精华!!

请教一下:
按照你的步骤到了MYSQL设置的地方:
我键入:shell> mysqladmin -u root password *******
但是系统显示:error: 'Access denied for user 'root'@'localhost' (using password: NO)'
请问这是什么原因?我该如何设置解决呢?
另外,在phpMyAdmin页面中,用户的名称是指什么?是我登陆Mac用的名称么?
非常感谢!

问题已经解决了,参考这里:http://www.macx.cn/a/a5544I204630.mac
用LINK~~~~呵呵

承让,承让。
幸好是一个*nix系统,不然在windows还没有办法

在mac还有一个原生程序MySQL Administrator,比phpMyAdmin漂亮,还在图形界面可以操作foreign key(phpMyAdmin不行,只能用SQL语句)。不过只有PPC版本。而且通常都是在linux服务器上用phpmyadmin,习惯了。

为什么我的php升级到5 后反而不能用了呢??

这样的帖子不多的,一般windows的多。
顶!

最简单的办法:

使用XAMPP,解压就能用,楼主说的功能都有了。

回家看看自己的孩子,谢谢大家照顾!

php连mysql找不到socket最终解决-使用link

刚拿到macbook的兴奋之后,要马上开始工作,于是着手开始搭建预装的mac os x10.4.6上apache+php+mysql环境,颇费了一番周折,于是写下注意细节,供大家参考。

正文之前:
1。本文写给那些刚转到mac平台特别是10.4.6下的php程序员,假设你有一定的amp配置经验,windows和linux上。
2。本文不适合想在mac上学习web开发的初学者。如果还不清楚这几者是怎么地位如何互相配合工作,建议先看看其他资料
3。本文目的只在于帮助程序员搭建个人开发环境,很多设置都不能作为正规服务器维护的参考。

10.4.6自带了apache 1.3和php 4.4,看得出都是stable版本。关于apache与php的启动,前面有文说的很详细。提一下就是apache的配置文件在/etc/httpd/httpd.conf。在/etc下面有php.ini.default,将其cp为php.ini,然后像往常一样,确认一下里面的 error_reporting=E_ALL & ~E_NOTICE,以及 upload_max_filesize,include_path等项

下面是mysql,这是最费的。到mysql.com官网上下载,要和php4相配,所以只能mysql4不能5。当然咱们可以下源码编译,不过官方提供mac的安装版本,而且还有mac x86的,这不就是为我准备的么。大陆的一个镜像在上海,不过好像连不上,选择了Asia里面台湾的国立中山大学,感谢学校明德楼飞快的网速,800k/s。直接一个dmg下下来安装,还有一个系统预置面板可以安装,这样就有图形的方式可以启停mysqld。然后咱们开命令行:
cd /usr/local/mysql/bin
./mysql -hlocalhost -uroot –p
可以看到从命令行正常进去了

似乎大功告成了,但别高兴太早,一用php连,就不行了,那个常见的提示不能通过/var/mysql/mysql.sock连接的错误。我看网上论坛中很多同志到了这里就进行不下去了。
我们来分析一下。首先php期望在/var/mysql下面找到mysql.sock文件,这并没有在php.ini中配置,从phpinfo()可以看到,这是php编译进mysql client时候参数写死了,除非我们重新编译php,否则/var/mysql/mysql.sock这个位置是不能改了。
那么在mysql那一方面,mysqld启动时在/tmp创建mysql.sock,我们可以通过在mysqld运行的命令行指定 –socket=/var/mysql/mysql.sock参数来达到目的,还可以修改my.conf(/etc下面本来没有,自己vi新建一个)但我尝试了都不好使,最关键的是系统预置那个图形化的启停,我们根本都不知道那个命令行是什么了。同时用GUI和命令行把mysql搞崩溃了。

怎么办,谢天谢地,这是一个unix内核,有一种东西叫link,类似于快捷方式或替身,当然我也很傻的把/tmp/mysql.sock做了个替身放在/var/mysql下面,当然不行了。
保持/tmp/mysql.sock存在(mysqld不停),/var/mysql下面没有sock,命令行:
su root
link /tmp/mysql.sock /var/mysql/mysql.sock
然后再试试php的mysql_connect(),别忘了改mysql的root空密码

至此才是大功告成了,配mysql很费神,搞到天亮。最后就是一个link,希望能够解决以后大家mysql找不到socket的问题。



支持原创!设为精华:)

谢谢斑竹:)
初来乍到,请多关照
拿到macbooc才4天

呵呵,欢迎以后多到MacX交流!

补充:mysql服务重启之后,需要重新link一次……看来还没有治本

下面引用由oxware发表的内容:

补充:mysql服务重启之后,需要重新link一次……看来还没有治本


比起不能用,这就不错了,,再一次多谢楼主。。这个问题我晕了几个月

其实先安装MySQL再安装PHP就不会出现这个问题的,系统自带了PHP4,我们安装完MySQL后,可以运行第三方的PHP安装,如Entropy的PHP4或PHP5(可以和系统自带的PHP共存)。

其实先安装MySQL再安装PHP就不会出现这个问题的
恩,这个和我里面说的重新编译php是一个道理了

下面引用由mcSpark发表的内容:

其实先安装MySQL再安装PHP就不会出现这个问题的,系统自带了PHP4,我们安装完MySQL后,可以运行第三方的PHP安装,如Entropy的PHP4或PHP5(可以和系统自带的PHP共存)。
想问一下,既然两个php在一起不冲突,那他们的配置文件是否独立?
我现在系统自带php用不起来。前天装了zend studio+zend platform,zend platform包括了php5,刚装完时两个版本的php都是可以的(一个使用apache1.3,一个使用apache2)。后来不知道修改了什么,现在只有php5(apache2)可以用。系统的那个怎么都没反应,感觉是php.ini的问题。

那个……zend studio有免费的mac版本么?

下面引用由oxware发表的内容:

补充:mysql服务重启之后,需要重新link一次……看来还没有治本

link -s

cliff1235 发表于 2008-04-11 09:41

好东西呀!值得顶置!
页: [1]
查看完整版本: [转载]Apache+PHP4+MYSQL5+Zend Optimizer配制详细步骤