在FreeBSD环境下搭建Web服务器,很多朋友会先装MySQL,理由也简单——不少教程提到,如果PHP装在前、MySQL装在后,后续配置可能会绕些弯路。其实Apache和MySQL谁先谁后问题不大,不过既然有这种说法,那咱们就先从MySQL开始。动手之前,建议先创建好系统用户和组: pw addg
在FreeBSD环境下搭建Web服务器,很多朋友会先装MySQL,理由也简单——不少教程提到,如果PHP装在前、MySQL装在后,后续配置可能会绕些弯路。其实Apache和MySQL谁先谁后问题不大,不过既然有这种说法,那咱们就先从MySQL开始。动手之前,建议先创建好系统用户和组:
pw addgroup mysql
pw adduser mysql
然后进入ports树,开始安装MySQL 5.1版本:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
cd /usr/ports/databases/mysql51-server/
make install clean # 这段编译时间不短,耐心等
rehash
cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
这里多说一句,服务器内存1GB,但和Apache共用,所以选my-large.cnf比较合适。其实/usr/local/share/mysql下预置了5个配置模板,根据内存和用途选一个就行:
配置文件搞定后,初始化数据库并启动MySQL:
mysql_install_db -u mysql ; mysqld_safe -u mysql &
这一步会建立MySQL的数据目录。
接下来安装Apache 2.2和PHP 5。还是通过ports走:
cd /usr/ports/www/apache22/
make install clean
cd ../mod_php5
make install clean
两个装完之后,需要编辑Apache的配置文件/usr/local/etc/apache/httpd.conf。加入两行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps # 可不加
第二行的作用:让.phps文件在浏览器中直接显示源代码,调试时挺方便。但注意字母别写错——我就因为少写了个s郁闷了半天。
接着找到DocumentRoot和对应的配置:
DocumentRoot "/usr/local/www/apache22/data"
这两个路径是默认的主页目录,可以根据需要修改,但要保持一致。另外,如果想要限制客户端浏览目录结构,可以把Options Indexes FollowSymLinks里的Indexes去掉。
准备工作做完,启动Apache:
rehash
apachectl start
echo "" > /usr/loacl/www/data/info.php
如果启动时出现这样的警告:
[Wed Apr 12 21:48:09 2006] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
别急,这是FreeBSD的accf_http模块没加载。执行以下操作:
kldload accf_http
grep accf /boot/defaults/loader.conf
# 找到以下两行
accf_data_load="NO"
accf_http_load="NO" # 把这个"NO"改成"YES"
至于accf到底是做什么的,说实话我也没完全吃透,欢迎懂行的朋友补充。
启动成功后,访问http://服务器IP/info.php,如果能看到PHP的说明页面,就说明Apache+PHP已经正常工作了。
最后是PHP扩展的安装。很多功能模块都可以通过ports批量搞定:
cd /usr/port/lang/php5-extensions/
make install clean # 如果是第一次安装会弹出选择框,否则先 make conf 设置
# 根据需要勾选模块,也可以先选最基础的,日后随时添加
apachectl restart
再次刷新info.php页面,如果看到扩展列表有变化,恭喜你,全部安装成功!
最后别忘了设置开机自启动:
echo 'mysql_enable="YES"' >> /etc/rc.conf
echo 'apache22_enable="YES"' >> /etc/rc.conf
这样下次重启后MySQL和Apache就会自动运行,省去手动启动的麻烦。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述