FreeBSD+MySql+Postgresql+Apache+PHP+SVN+GD+Memcached
这两天决定把相关的环境从头到尾的配置一次,结果发觉无意之中成了几个小文档出来,所以发出来大家参考参考。大概版本是在FreeBSD7.2下,其它版本可能有所不一样。如果是使用其它版本安装的情况请自行调整情况。
如果你觉得这文档不可靠,请不要经易的按文档去学习,否则走火入魔我一概不负责。高手们要是发现错漏之处请指点(在此先谢过了)。 01.硬盘分区.txt
============================================================================================================ 配置日志
01. 分区,开始安装系统; // OK
02. 配置相关选项; // OK
03. 第一次启动系统; // OK
04. 配置IP/hostname/FTP/SSH; // OK
05. Apache + PHP + SVN + Memcached + Memcache // OK
06. 安装PostgreSQL; // OK
07. 安装MySql; // OK
08. WebMail
============================================================================================================
一、硬盘划分.
/ 8G
/usr/ports/distfiles/ 10G
/work 160G
二、数据存放.
所有数据均放在/work下,其它地方只需要建立link即可. 02.基本安装.txt
最小化安裝 + Ports 03.基本配置.txt
=====================================================================================================================================
1.FreeBSD指定ports下载地址.
MASTER_SITE_OVERRIDE=ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
2.RamDisk.
vi /etc/fstab // 添加一行:md /tmp mfs rw,noatime,-s256M 0 0
3.光驱的使用.
mount /cdrom # 挂载光驱
umount /cdrom #
mount -t cd9660 /dev/acd0 /mnt # 挂载光盘
cp /dev/acd0 /home/my.iso # 制作ISO
id li # 查看用户id
sockstat # 查看端口所对应的程序
===================================================================================================================================== 默认配置
一、IP及路由配置.
vi /etc/rc.conf
ifconfig_le0="DHCP"
ifconfig_le0="inet 192.168.11.21 netmask 255.255.255.0"
ifconfig_le1="inet 192.168.18.21 netmask 255.255.255.0"
defaultrouter="192.168.18.2"
ifconfig le0 192.168.11.21
ifconfig le0 down
ifconfig le0 up
vi /etc/resolv.conf
nameserver 192.168.18.2
二、SSH的打開.
vi /etc/ssh/sshd_config
/etc/rc.d/sshd restart
三、FTP的配置.
/etc/ftpusers
/etc/inetd.conf
/etc/ftpchroot
/usr/libexec/ftpd -4DU
/etc/rc.d/sshd reload
/etc/rc.d/inetd restart
1、禁止登录用户列表. vi /etc/ftpusers
2、不知道是啥意思. vi /etc/inetd.conf 去掉第一行ftp前面的#号
3、指定用户登录后的目录(如果不指定则用户可到处乱走).
vi /etc/ftpchroot
root /
4、查看允许登录SSH的用户(FTP用户不允许登录,如只允许root用户登录,则在最后添加一行:AllowUsers root)
vi /etc/ssh/sshd_config
AllowUsers fang
AllowUsers li
AllowUsers root // root 可从任何地方登录
AllowUsers [email]admin@192.168.1.180[/email] // admin 可从192.168.1.180登录
5、添加FTP用户.
adduser
username : fang
Full name : fang
用户组 : ftp
6、开机启动ftp
vi /etc/rc.conf 加入 inetd_enable="YES"
N、使变更有效:重启ftp和sshd
/usr/libexec/ftpd -4DU
/etc/rc.d/sshd reload
/etc/rc.d/inetd restart 04.PostgreSQL.txt
/usr/local/etc/rc.d/postgresql start
/usr/local/etc/rc.d/postgresql restart
########################################################################################################################
1、 用Ports方式安装,所有先项先默认.
cd /usr/ports/databases/postgresql84-server/
make install celan
rehash
2、 基本配置,进入pgsql用户:
su pgsql
mkdir /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
# 启动
postgres -D /usr/local/pgsql/data
# 用pgsql登陆psql环境
psql postgres
\du #显示当前数据库用户,当前只有一个pgsql这样的超级用户
\l #显示当前所有数据
\q #退出psql环境
# 創建用戶
CREATE USER pgsql WITH PASSWORD '111111'
# 修改密码
ALTER USER pgsql WITH PASSWORD '111111';
3、开启postgresql的网路访问.
vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = 'localhost' => listen_addresses = '*'
vi /usr/local/pgsql/data/pg_hba.conf
host all all 127.0.0.1/32 trust
host all all 192.168.18.0/24 md5
host testdb all 192.168.11.0/24 md5
更详细的在后面的
4、 让PostgreSQL自动启动.
vi /etc/rc.conf
postgresql_enable="YES"
reboot // 需要马上重起,否则...嘿嘿
########################################################################################################################
# 允许在本机上的任何用户使用 Unix 域套接字(本地连接的缺省),以任何数据库用户身份联接任何数据库
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all trust
########################################################################################################################
# 和上面相同,但是使用的是自环的(loopback)TCP/IP 连接
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 127.0.0.1/32 trust
########################################################################################################################
# 和上面一行相同,但是用的是独立的掩码字段
# TYPE DATABASE USER IP-ADDRESS METHOD
host all all 127.0.0.1 255.255.255.255 trust
########################################################################################################################
# 允许IP地址为192.168.11.x的任何主机与数据库testdb相连,用与他们在自己的主机上相同ident的用户名标识他自己(通常是他的Unix用户名)
# TYPE DATABASE USER CIDR-ADDRESS METHOD
#host testdb all 192.168.11.0/24 ident sameuser
#host all all 192.168.18.0/24 ident sameuser
########################################################################################################################
# 允许来自主机192.168.11/18.1的用户与testdb数据库联接,只要该用户提供了在正确的口令。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 192.168.18.0/24 md5
host all all 192.168.11.0/24 md5
######################################################################################################################## 05.MySql.txt
====================================================== Ports安装 ======================================================
# 安装
cd /usr/ports/databases/mysql50-server/
make install clean
# 配置
# 第一句好像才是正确的
cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
cp /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf // 不确认这句是否有效,之前是写放到这里的,后来使用了上面那一句
# 说明:服务器与apache在一起,在/usr/local/share/mysql下面有5个my-xxxx.cnf文件:
my-small.cnf 最小配置安装,内存<=64M,数据数量最少
my-large.cnf 内存=512M
my-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存
my-huge.cnf 1G<内存<2G,服务器主要运行mysql
my-innodb-heavy-4G.cnf 最大配置安装,内存至少4G
# 初始化
/usr/local/bin/mysql_install_db
chown -R mysql:mysql /var/db/mysql
/usr/local/bin/mysqld_safe -u mysql &
# 将mysql端口绑定到127.0.0.1主要因为该服务器只为本站提供服务,为了增加安全性,所以这样做。
vi /usr/local/etc/my.cnf
[mysqld]
bind_address=127.0.0.1
# 启动MySQL
/usr/local/etc/rc.d/mysql-server start
# 修改密码
/usr/local/bin/mysql // 默认没有密码,这一句就完全的OK了
/usr/local/bin/mysql -u root -p
grant all privileges on *.* to root@'%' identified by "111111" with grant option;
FLUSH PRIVILEGES;
exit;
# 开机启动
mysql_enable="YES"
====================================================== 二进制安装 ======================================================
/usr/local/mysql/support-files/mysql.server start // 能启动
/usr/local/mysql/bin/mysqld_safe --user=mysql & // 一起无法启动,郁闷中
1、創建用戶: adduser -> mysql
2、鏈接.
mkdir -p /work/webService/mysql-5.1.37-freebsd7.0-i386
ln -s /work/webService/mysql-5.1.37-freebsd7.0-i386 /usr/local/mysql
3、進入目錄設置.
cd /usr/local/mysql
chmod -R 0777 /usr/local/mysql
chmod -R 0777 /work/webService/mysql-5.1.37-freebsd7.0-i386
chown -R mysql .
chgrp -R mysql .
// 下面这一步要执行一两次才成功,奇怪
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
// 没有这个会报提示
chown mysql:mysql /usr/local/mysql/my.cnf
chmod 644 /usr/local/mysql/my.cnf
./support-files/mysql.server start
./bin/mysqld_safe --user=mysql &
4、配置my.cnf,有必要的話.
cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
5、配置登錄帳號密碼.
/usr/local/mysql/bin/mysql
grant all privileges on *.* to root@'%' identified by "111111" with grant option;
FLUSH PRIVILEGES;
exit;
6、开机启动.
/usr/local/mysql/support-files/mysql.server start 06.Apache.PHP.Memcached.txt
====================================================== Ports安裝相關軟體 ======================================================
// 只適合於順序安裝
cd /usr/ports/www/apache22 // 如果需要SVN服務,則(這樣SVN才可以使用DBA): make WITH_BERKELEYDB=db4 install clean
cd /usr/ports/lang/php5 // 記得選擇Apache模塊,不然又要重新安裝嘿嘿
cd /usr/ports/lang/php5-extensions/
cd /usr/ports/databases/memcached/
cd /usr/ports/databases/pecl-memcache/
cd /usr/ports/devel/ZendOptimizer/ // 暫不安裝,這玩意能用上的可能性並不是很大
====================================================== 配置 Apache ======================================================
1、安裝配置.
vi /usr/local/etc/apache22/httpd.conf
ServerName 127.0.0.1:80
AddType application/x-httpd-php .php
LoadModule php5_module libexec/apache/libphp5.so // 如果這一行不存在也給加上
DirectoryIndex index.htm index.html index.php default.htm default.html default.php
2、开机启动.
apache22_enable="YES"
3、vi /boot/loader.conf
accf_data_load="YES"
accf_http_load="YES"
====================================================== 配置 PHP ======================================================
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
根據情況判斷是否需要配置php.ini
# GD庫安裝
cd /usr/ports/graphics/php5-gd/
# GD庫加載
vi /usr/local/etc/php/extensions.ini
extension=gd.so
/usr/local/etc/rc.d/apache22 restart
====================================================== 配置 memcached ======================================================
创建用户:memcached
ln -s /usr/local/lib/libevent-1.4.so.3 /usr/lib
/usr/local/bin/memcached -u memcached -f 1.25 -p 12345 -m 1m -d
/usr/local/bin/memcached -u memcached -f 1.25 -p 12346 -m 3m -d
/usr/local/bin/memcached -u memcached -f 1.25 -p 12347 -m 5m -d
/usr/local/bin/memcached -u memcached -f 1.25 -p 12348 -m 7m -d
/usr/local/bin/memcached -u memcached -f 1.25 -p 12349 -m 9m -d
/usr/local/sbin/httpd -k start
/usr/local/sbin/httpd -k restart 08.SVN.txt
# 所有用戶的密碼都是:111111
mkdir -p /work/SvnRoot
chown -R www:www /work/SvnRoot
chmod -R 0777 /work/SvnRoot
# 初始化
mkdir -p create /work/SvnRoot/CCode
mkdir -p /work/SvnRoot/PhpCode
svnadmin create /work/SvnRoot/CCode
svnadmin create /work/SvnRoot/PhpCode
chown -R www:www /work/SvnRoot/
chmod -R 0777 /work/SvnRoot
# 創建刪除帳號
htpasswd -cm /work/SvnRoot/SvnUserList test # 第一次建立SVN帐号
htpasswd -m /work/SvnRoot/SvnUserList root # 第二个以后的帐号都不要 -c
htpasswd -m /work/SvnRoot/SvnUserList admin # 第二个以后的帐号都不要 -c
htpasswd -D /work/SvnRoot/SvnUserList test # 删除用户
# 建立 SVN 权限控制文件
# vi /work/SvnRoot/SvnUserAccess
[/]
# 一般情況下呢所有人都是可以訪問的的,不過不裏測試,誰也不可以訪問
# * = r
[/CCode]
root = rw
[/PhpCode]
admin = rw
# 配置apache
# 以下這三項一般情況下應該在安裝SVN的時候就會自動加上了的,如果找不到這三項說明安裝時出了點小意外了
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module modules/mod_authz_svn.so
#<Location /test1> # "/repos"是在url上指定的访问路径,客户访问需要键入这个路径。
# DAV svn # 声明svn
# SVNPath create /work/SvnRoot/CCode # "E:\svn"是服务器上svn的repository的目录。
# SVNListParentPath On
# # SVNParentPath /work/SvnRoot # 对于一个目录下存在多个工程的情况,可以声明这个变量。
# AuthType Basic
# AuthName "test1" # 认证的名字
# AuthUserFile /work/webService/SVNUserList1 # D:\svn_auth_file里面存放的是使用htpasswd -m D:\svn_auth_file user
# 生成的用户名与密码的加密文件。注意,此处的路径不能有空格。
# #AuthzSVNAccessFile /work/webService/SvnUserAccess # D:\svn_authz文件是根据%respository%/conf/authz的规则编写,其实就
# 是svn对用户权限读取的文件格式,mod_authz_svn.so要求的格式。
# SVNIndexXSLT "d:\svnindex.xsl" # d:\svnindex.xsl是用户可以自定义的显示模版,设计好模板,html上的显
# 会更漂亮。
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user # 声明,必须是有效的用户才可以访问
# </LimitExcept>
#</Location>
<Location /svn>
DAV svn
# SVNPath create /work/SvnRoot/CCode
SVNListParentPath On
SVNParentPath /work/SvnRoot
AuthType Basic
AuthName "svn"
AuthUserFile /work/SvnRoot/SvnUserList
#AuthzSVNAccessFile /work/SvnRoot/SvnUserAccess
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
/usr/local/sbin/httpd -k start
/usr/local/sbin/httpd -k restart 好全呀 晕。简繁结合的。 不错 不错地 咋会有繁体字呢?最好把你用的安装包版本列一下 技术资料
收藏下 [url]http://html.vcn2008.com/notes/[/url]
页:
[1]