标题:跟着ArthurXF学FreeBSD36——ports安装apache+mysql+php 出处:BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 时间:Wed, 02 Jan 2008 15:42:41 +0000 作者:ArthurXF 地址:http://www.bizeway.net/read.php/277.htm 内容:   很多朋友不太习惯使用集成包安装,都来问我一些用ports安装apache+mysql+php的问题,我这里就重新写一篇文章,来解决这些问题。此文章由ArthurXF倾情奉献,谢谢支持。 一、安装mysql51 引用 先添加mysql组和mysql用户 pw addgroup mysql pw adduser mysql 开始安装 cd /usr/ports/databases/mysql51-server/ make make thread-safe-client=enable dtrace=disable assembler=enable with_big_tables=yes with_embedded_server=yes with_local_infile=yes with_plugins=partition,innobase,myisammrg WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes install clean  // 设定编码字符集为utf-8 cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf //服务器内存1G,但是与apache在一起/usr/local/share/mysql下面有5个my-xxxx.cnf文件 my-small.cnf               最小配置安装,内存<=64M,数据数量最少 my-medium.cnf             32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存 my-large.cnf               内存=512M my-huge.cnf               1G<内存<2G,服务器主要运行mysql my-innodb-heavy-4G.cnf   innodb格式数据大于4G的 因为如果你安装系统的时候默认分配空间的话/var一般的空间比例很小,也就3G,对于大数据库的话,肯定是不够用的,所以我们这里把数据库搬到/usr去,一般/usr的空间都是最大的,这样可以保证数据库空间充足。 搬mysql数据库需要操作下面的命令,如果不搬这个可以跳过。本文适合最新的FreeBSD6.2,其他版本可能文件名会有变化,请自行查找 vi /etc/rc.conf 增加 mysql_dbdir="/usr/local/db/mysql" 重起服务器,再执行下面的命令。 cd  /usr/local mysql_install_db --user=mysql --datadir=/usr/local/db/mysql/data #建立数据库目录 mysqld_safe & #启动mysql 二、安装apache22+php5 引用 #cd /usr/ports/www/apache22/ 选择你需要安装的模块 #make config 如果你的服务器是多个CPU的,可以把Apache以worker模式运行,则需要修改Makefile文件。 # ee Makefile 将WITH_MPM?=      prefork # or worker, event, itk改成: WITH_MPM?=      worker # or worker, event, itk 开始安装了 # make install clean 安装php5 cd /usr/ports/lang/php5/ make config #选择php的模块,一定要选择apache module,否则不会自动安装到apahce里面的,那样php就不会执行的。 make make install clean 安装php5-extensions cd /usr/ports/lang/php5-extensions/ make config #选择php的扩展模块 make make install clean 配置/usr/local/etc/apache/httpd.conf: 修改    DirectoryIndex index.html index.htm index index.php index.phps 如果你需要修改网站根目录,就修改下面两个地方,下面仅仅是个例子,大家可根据需要自行修改,确保一致即可。 DocumentRoot "/usr/local/www/web"  Options Indexes FollowSymLinks 去掉Indexes可以限制浏览你的主页目录 加入 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps #可不加 *注意:第二行主要为查看php代码用,加上的话web目录下的所有扩展名为.phps的文件在被浏览器访问时都显示其源代码 配置/usr/local/etc/php.ini: cd /usr/local/etc/ cp php.ini-recommended php.ini vi php.ini 在error_reporting  =  E_ALL前面加上; 将error_reporting = E_ALL & ~E_NOTICE前面的;去掉 *将报错信息设置改成去掉notice upload_max_filesize = 2M 上传最大文件尺寸可根据需要修改 date.timezone = CST 设置服务器时区为中国的时区 apachectl start echo "" > /usr/loacl/www/data/info.php 可能你的apache启动的时候和我一样会报这样的错误: [Wed Jan 02 19:54:30 2008] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter 解决这个错误,执行如下操作: kldload accf_http grep accf /boot/defaults/loader.conf 显示内容如下 accf_data_load="NO" # Wait for data accept filter accf_http_load="NO" # Wait for full HTTP request accept filter #将这个"NO"改成"YES" vi /boot/defaults/loader.conf 找到Other modules 就可以找到accf_http_load了。 访问http://服务器的IP/info.php,如果有php的说明文件说明基本的php+apache2已经工作正常! 开机后自动启动: echo 'mysql_enable="YES" ' >> /etc/rc.conf echo 'apache22_enable="YES" ' >> /etc/rc.conf 以便开机后自动启动mysql apache 如果启动不了,就执行下面的命令 cp /usr/local/share/mysql/mysql.server /usr/local/etc/rc.d/mysql.sh 这样mysql就可以自动执行了。 以上文章是由ArthurXF倾情奉献,谢谢支持! 现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。 PHP培训招生简章 Generated by Bo-blog 2.0.3 sp1