很多朋友不太习惯使用集成包安装,都来问我一些用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培训招生简章
Tags: , , ,
FreeBSD | 评论(0) | 引用(0) | 阅读(6346)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]