喜悦国际村 专业PHP开发者社区's Archiver

游戏人间 发表于 2009-11-29 08:19 PM

FreeBSD+MySql+Postgresql+Apache+PHP+SVN+GD+Memcached

这两天决定把相关的环境从头到尾的配置一次,结果发觉无意之中成了几个小文档出来,所以发出来大家参考参考。

大概版本是在FreeBSD7.2下,其它版本可能有所不一样。如果是使用其它版本安装的情况请自行调整情况。

如果你觉得这文档不可靠,请不要经易的按文档去学习,否则走火入魔我一概不负责。高手们要是发现错漏之处请指点(在此先谢过了)。

游戏人间 发表于 2009-11-29 08:19 PM

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即可.

游戏人间 发表于 2009-11-29 08:20 PM

02.基本安装.txt

最小化安裝 + Ports

游戏人间 发表于 2009-11-29 08:20 PM

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

游戏人间 发表于 2009-11-29 08:20 PM

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

########################################################################################################################

游戏人间 发表于 2009-11-29 08:20 PM

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

游戏人间 发表于 2009-11-29 08:21 PM

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

游戏人间 发表于 2009-11-29 08:21 PM

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

zzw45 发表于 2009-12-10 02:21 PM

好全呀

jtfy 发表于 2009-12-10 02:33 PM

晕。简繁结合的。

c1a1o1 发表于 2009-12-17 08:06 AM

不错 不错地

kuye3131 发表于 2009-12-24 09:08 AM

咋会有繁体字呢?最好把你用的安装包版本列一下

niexa123 发表于 2010-2-19 08:34 PM

技术资料
收藏下

游戏人间 发表于 2010-3-21 04:28 PM

[url]http://html.vcn2008.com/notes/[/url]

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.