热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Postfix安装配置详解

测试平台:ThinkpadR60RHEL50基础架构图(引用)1配置DNS及主机名,域名2安装mysql#tarxzvfmysql-5.0.45.tar.gz#cdmysql-5.0.45#groupaddmysql#useradd-gmysql-s/sbin/nologinmysql#CFLAGS-O3CXXgccC

    测试平台:

    Thinkpad R60

    RHEL5

    0>基础架构图(引用)

    

    1>配置DNS及主机名,域名

    2>安装mysql

    #tar xzvf mysql-5.0.45.tar.gz

    #cd mysql-5.0.45

    #groupadd mysql

    #useradd -g mysql -s /sbin/nologin mysql

    #CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer"

    ./configure

    --prefix=/usr/local/mysql

    --localstatedir=/usr/local/mysql/var

    --with-unix-socket-path=/tmp/mysql.sock

    --enable-assembler

    --with-mysqld-ldflags=-all-static

    --with-low-memory

    --with-charset=utf8

    --with-extra-charsets=gbk,gb2312

    --enable-thread-safe-client

    #make

    #make install

    #cp support-files/my-medium.cnf /etc/my.cnf

    #cp support-files/mysql.server /etc/rc.d/init.d/mysqld

    #chmod 700 /etc/rc.d/init.d/mysqld

    #chkconfig --add mysqld

    #cd /usr/local/mysql

    #bin/mysql_install_db --user=mysql

    #chown -R root .

    #chown -R mysql var

    #chgrp -R mysql .

    #bin/mysqld_safe --user=mysql &

    or

    #service mysqld start

    #bin/mysqladmin -u root password 'password'

    #bin/mysql -u root -p

    Enter password:

    Welcome to the MySQL monitor. Commands end with ; or \g.

    Your MySQL connection id is 6

    Server version: 5.0.45-log Source distribution

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> select version();

    +------------+

    | version() |

    +------------+

    | 5.0.45-log |

    +------------+

    1 row in set (0.00 sec)

    mysql> quit

    Bye

    #echo '/usr/local/mysql/lib/mysql' >> /etc/ld.so.conf

    #ldconfig

    #export PATH=$PATH:/usr/local/mysql/bin

    3>安装openssl

    #./config shared zlib --prefix=/usr/local/openssl

    #make

    #make test

    #make install

    #mv /usr/bin/openssl /usr/bin/openssl.OFF

    #mv /usr/include/openssl /usr/include/openssl.OFF

    #rm /usr/lib/libssl.so

    #ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

    #ln -s /usr/local/openssl/include/openssl /usr/include/openssl

    #ln -s /usr/local/openssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

    建立libs缓存:

    #echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

    #ldconfig

    4>安装sasl

    #./configure

    --prefix=/usr/local/sasl2

    --disable-gssapi

    --disable-anon

    --disable-sample

    --disable-digest

    --enable-plain

    --enable-login

    --with-authdaemOnd=/usr/local/courier-authlib/var/spool/authdaemon/socket

    #make

    #make install

    建立系统lib链接及缓存:

    #ln -s /usr/local/sasl2/lib/* /usr/lib

    #ln -s /usr/local/sasl2/lib/* /usr/local/lib

    #ln -s /usr/local/sasl2/include/sasl/* /usr/local/include/

    #ln -s /usr/local/sasl2/include/sasl/* /usr/include/

    #echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf

    #echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf

    #ldconfig

    建立启动目录,调试启动测试:

    #mkdir -p /var/state/saslauthd

    #/usr/local/sasl2/sbin/saslauthd -a shadow pam -d

    正式启动,登录测试:

    #/usr/local/sasl2/sbin/saslauthd -a shadow pam

    #/usr/local/sasl2/sbin/testsaslauthd -u uesrname -p password

    加入启动项:

    #echo "/usr/local/sasl2/sbin/saslauthd -a shadow pam">>/etc/rc.local

    5>安装apache2

    #./configure

    --enable-so

    --with-mpm=worker

    --enable-nonportable-atomics=yes

    --enable-ssl

    --with-ssl=/usr/lib/openssl/

    --enable-usertrack

    --enable-rewrite

    --enable-zlib

    --enable-suexec

    --with-suexec-docroot=/var/www

    --with-suexec-caller=daemon

    #make

    #make install

    #echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local

    6>安装php

    #./configure

    --prefix=/usr/local/php

    --with-apxs2=/usr/local/apache2/bin/apxs

    --with-mysql=/usr/local/mysql/

    --with-zlib

    --with-gd

    --enable-mbstring

    #make

    #make test

    #make install

    #vi /usr/local/apache2/conf/httpd.conf

    ==============================================================

    LoadModule php5_module modules/libphp5.so

    AddType application/x-httpd-php .php .phtml

    AddType application/x-httpd-php-source .phps

     DirectoryIndex index.html index.php

    DocumentRoot "/var/www"

    ==============================================================

    #mkdir /var/www

    7>安装postfix

    #groupadd postfix

    #groupadd postdrop

    #useradd -g postfix -s /sbin/nologin -d /dev/null postfix

    #id postfix

    uid=506(postfix) gid=506(postfix) groups=506(postfix) cOntext=user_u:system_r:unconfined_t

    注:记录下postfix的uid及gid,后面的配置文件中会经常用到此id。

    #make tidy

    #make -f Makefile.init makefiles \

     'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl -DUSE_TLS -I/usr/include' \

     'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -L/usr/lib -lssl -lcrypto'

    注:

    上边make的参数中的目录需要根据不同的安装环境选择,推荐ls查看一下相应目录,确认目录下为需要的libs。

    #make

    #make install

    设置postfix:

    #mv /etc/aliases /etc/aliases.OFF

    #ln -s /etc/postfix/aliases /etc/aliases

    注:postfix默认不允许给root发邮件,所以需要给root建立一个别名。

    #echo 'root: sense5@test.edu.cn' >> /etc/postfix/aliases

    #postalias /etc/postfix/aliases

    #postconf -n > /etc/postfix/main.cf.tmp

    #mv /etc/postfix/main.cf /etc/postfix/main.cf.backup

    #mv /etc/postfix/main.cf.tmp /etc/postfix/main.cf

    #vi /etc/postfix/main.cf

    ========================================================================

    command_directory = /usr/sbin

    config_directory = /etc/postfix

    daemon_directory = /usr/libexec/postfix

    debug_peer_level = 2

    html_directory = no

    mail_owner = postfix

    mailq_path = /usr/bin/mailq

    manpage_directory = /usr/local/man

    newaliases_path = /usr/bin/newaliases

    queue_directory = /var/spool/postfix

    readme_directory = no

    sample_directory = /etc/postfix

    sendmail_path = /usr/sbin/sendmail

    setgid_group = postdrop

    unknown_local_recipient_reject_code = 550

    #------------------user specified--------------------

    myhostname = mail.test.edu.cn

    myorigin = $mydomain

    mydomain = test.edu.cn

    mydestination =

    mynetworks = 127.0.0.1,192.168.1.0/24

    local_recipient_maps = unix:passwd.byname $alias_maps

    alias_maps = hash:/etc/postfix/aliases

    alias_database = hash:/etc/postfix/aliases

    ========================================================================

    启动postfix:

    #postfix start

    测试:

    #telnet localhost 25

    Trying 127.0.0.1...

    Connected to ssn (127.0.0.1).

    Escape character is '^]'.

    220 mail.test.edu.cn ESMTP Postfix

    mail from:root@test.edu.cn

    250 2.1.0 Ok

    rcpt to:sense@test.edu.cn

    250 2.1.5 Ok

    data

    354 End data with .

    subject: Mail test

    new test

    .

    250 2.0.0 Ok: queued as 3D574D04C42

    quit

    221 2.0.0 Bye

    Connection closed by foreign host.

    #su - sense

    $mail

    Mail version 8.1 6/6/93. Type ? for help.

    "/var/spool/mail/sense": 1 message 1 new

    >N 1 root@test.edu.cn Sat Nov 3 08:58 15/487 "Mail test"

    & 1

    Message 1:

    From root@test.edu.cn Sat Nov 3 08:58:42 2007

    X-Original-To: sense@test.edu.cn

    Delivered-To: sense@test.edu.cn

    subject: Mail test

    Date: Sat, 3 Nov 2007 08:58:17 +0800 (CST)

    From: root@test.edu.cn

    To: undisclosed-recipients:;

    new test

    & quit

    Saved 1 message in mbox

    8>开启postfix的cyrus-sasl认证

    (1)检测postfix是否支持cyrus-sasl:

    #postconf -a

    cyrus

    dovecot

    如果postconf命令显示上边结果,则说明postfix支持cyrus-sasl认证。

    (2)添加postfix对cyrus-sasl的支持:

    #vi /etc/postfix/main.cf

    ====================================================

    #---------cyrus-sasl--------

    broken_sasl_auth_clients = yes

    smtpd_recipient_restrictiOns=permit_mynetworks,permit_sasl_authenticated, \

    reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain, \

    reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain, \

    reject_unauth_pipelining,reject_unauth_destination

    smtpd_sasl_auth_enable = yes

    smtpd_sasl_security_optiOns= noanonymous

    smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Nonauthorized login is not recommended.

    ====================================================

    (3)添加cyrus-sasl对smtp的认证支持:

    #vi /usr/local/lib/sasl2/smtpd.conf

    ====================================================

    pwcheck_method: saslauthd

    mech_list: PLAIN LOGIN

    ====================================================

    (4)测试认证结果:

    #postfix reload

    #telnet localhost 25

    Trying 127.0.0.1...

    Connected to ssn (127.0.0.1).

    Escape character is '^]'.

    220 Welcome to our mail.test.edu.cn ESMTP,Warning: Nonauthorized login is not recommended.

    ehlo mail.test.edu.cn

    250-mail.test.edu.cn

    250-PIPELINING

    250-SIZE 10240000

    250-VRFY

    250-ETRN

    注:如果有以下两行,则说明认证设置成功。

    250-AUTH PLAIN LOGIN

    250-AUTH=PLAIN LOGIN

    250-ENHANCEDSTATUSCODES

    250-8BITMIME

    250 DSN

    quit

    221 2.0.0 Bye

    Connection closed by foreign host.

    9>添加postfix对虚拟域及虚拟用户的支持(即添加mysql支持)

    #vi /etc/postfix/main.cf

    ==============================================

    #------Virtual Mailbox Settings-------

    virtual_mailbox_base = /var/mailbox

    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

    virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

    virtual_alias_domains =

    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

    virtual_uid_maps = static:506

    virtual_gid_maps = static:506

    virtual_transport = virtual

    maildrop_destination_recipient_limit = 1

    maildrop_destination_concurrency_limit = 1

    #-------QUOTA Settings------

    message_size_limit = 14336000

    virtual_mailbox_limit = 20971520

    virtual_create_maildirsize = yes

    virtual_mailbox_extended = yes

    virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

    virtual_mailbox_limit_override = yes

    virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later.

    virtual_overquota_bounce = yes

    ===============================================

    注:虚拟域及虚拟用户的配置文件在extman的源代码中有提供。在此不一一列出。

    10>安装courier-authlib

    #./configure

    --prefix=/usr/local/courier-authlib

    --without-authpam

    --without-authldap

    --without-authpwd

    --without-authshadow

    --without-authvchkpw

    --without-authpgsql

    --with-mysql-libs=/usr/local/mysql/lib/mysql/

    --with-mysql-includes=/usr/local/mysql/include/mysql/

    #make

    #make install

    配置courier-authlib:

    #chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

    #cp /usr/local/courier-authlib/etc/authlib/authdaemonrc.dist /usr/local/courier-authlib/etc/authlib/authdaemonrc

    #cp /usr/local/courier-authlib/etc/authlib/authmysqlrc.dist /usr/local/courier-authlib/etc/authlib/authmysqlrc

    #vi /usr/local/courier-authlib/etc/authlib/authdaemonrc

    ================================

    authmodulelist="authmysql"

    authmodulelistorig="authmysql"

    daemOns=10

    ================================

    #vi /usr/local/courier-authlib/etc/authlib/authmysqlrc

    ======================================================================

    MYSQL_SERVER localhost

    MYSQL_USERNAME extmail

    MYSQL_PASSWORD extmail

    MYSQL_SOCKET /tmp/mysql.sock

    MYSQL_PORT 3306

    MYSQL_OPT 0

    MYSQL_DATABASE extmail

    MYSQL_USER_TABLE mailbox

    MYSQL_CRYPT_PWFIELD password

    MYSQL_UID_FIELD 506

    MYSQL_GID_FIELD 506

    MYSQL_LOGIN_FIELD username

    MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)

    MYSQL_NAME_FIELD name

    MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)

    ======================================================================

    注:authdaemonrc及authmysqlrc文件中都不能使用空格,间隔用TAB来实现。

    配置libs缓存:

    #echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf

    #ldconfig

    配置开机启动项:

    #cp courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib

    #chmod 755 /etc/init.d/courier-authlib

    #chkconfig --add courier-authlib

    #chkconfig --level 2345 courier-authlib on

    启动courier-authlib

    #service courier-authlib start

    11>安装courier-imap

    #./configure

    --prefix=/usr/local/courier-imap

    --enable-unicode

    --disable-root-check

    --with-trashquota

    --without-ipv6

    CPPFLAGS='-I/usr/local/courier-authlib/include -I/usr/include/openssl'

    LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib'

    COURIERAUTHCOnFIG='/usr/local/courier-authlib/bin/courierauthconfig'

    注:CCPFLAGS中的-I/usr/local/courier-authlib/include必须在最前边,不能放到-I/usr/include/openssl后。

    #make

    #make install

    建立默认配置文件:

    #cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd

    #cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl

    #cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d

    #cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl

    实现IMAP服务:

    #vi /usr/local/courier-imap/etc/imapd

    =================================

    IMAPDSTART=YES

    =================================

    实现POP3服务:

    #vi /usr/local/courier-imap/etc/pop3d

    =================================

    POP3DSTART=YES

    =================================

    建立虚拟用户邮箱目录:

    #mkdir Cp /var/mailbox

    #chown CR postfix /var/mailbox

    建立开机启动项:

    #cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd

    #chmod 755 /etc/rc.d/init.d/courier-imapd

    #chkconfig --add courier-imapd

    #chkconfig --level 2345 courier-imapd on

    启动courier-imapd服务:

    #service courier-imapd start

    12>重新配置smpt认证,使其支持使用courier-authlib从mysql调用用户验证信息:

    # vi /usr/local/lib/sasl2/smtpd.conf

    =========================================

    pwcheck_method: authdaemond

    mech_list:PLAIN LOGIN

    log_level: 3

    authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

    =========================================

    13>安装extmail

    #tar xzvf extmail-1.0.2.tar.gz

    #mkdir /var/www/extsuite

    #mv extmail-1.0.2 /var/www/extsuite/extmail

    #cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf

    #vi /var/www/extsuite/extmail/webmail.cf

    =============================

    SYS_USER_LANG = zh_CN

    SYS_MAILDIR_BASE = /var/mailbox

    SYS_MYSQL_USER = extmail

    SYS_MYSQL_PASS = extmail

    SYS_MYSQL_DB = extmail

    SYS_MYSQL_HOST = localhost

    SYS_MYSQL_SOCKET = /tmp/mysql.sock

    SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket

    =============================

    配置apache支持extmail:

    由于extmail要进行本地邮件的投递操作,故必须将运行apache服务器用户的身份修改为您的邮件投递代理的用户;本例中打开了apache服务器 的suexec功能,故使用以下方法来实现虚拟主机运行身份的指定。此例中的MDA为postfix自带,因此将指定为postfix用户:

    #vi /usr/local/apache2/conf/httpd.conf

    ===================================================================

    NameVirtualHost *:80

    ServerName mail.test.edu.cn

    DocumentRoot /var/www/extsuite/extmail/html/

    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

    Alias /extmail /var/www/extsuite/extmail/html

    #SuexecUserGroup postfix postfix

    ===================================================================

    修改apache对extmail_cgi的访问权限:

    #chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

    去掉extmail的plugin插件(这些插件会在邮件打开时访问其它服务器,进而可能会产生不必要的流量,而且会严重影响速度):

    mv /var/www/extsuite/extmail/html/plugins/ /var/www/extsuite/extmail/html/plugins2/

    14>安装extmail运行时依赖的包

    extmail将会用到perl的DBD::Mysql和Unix::syslogd功能 。

    安装Unix::syslogd:

    #rpm -ivh perl-Unix-Syslog-0.100-1.2.el5.rf.i386.rpm

    Preparing... ########################################### [100%]

     1:perl-Unix-Syslog ########################################### [100%]

    解决安装DBD::Mysql依赖:

    DBD::Mysql会依赖于libmysqlclient.so.10,所以需要先安装以下包:

    #rpm -ivh libmysql10-3.23.52-1mdk.i586.rpm

    Preparing... ########################################### [100%]

     1:libmysql10 ########################################### [100%]

    安装DBD:Mysql:

    #tar xzvf DBD-mysql-3.0008.tar.gz

    #cd DBD-mysql

    #PATH=$PATH:/usr/local/mysql/bin/

    #export PATH

    #perl Makefile.PL

    #make

    #make install

    15>测试extmail及问题解决:

    http://127.0.0.1/ or http://mail.test.edu.cn/

    (1)如果正常显示extmail的登录页面,说明安装成功。现在还不能使用extmail实现登录,登录会出错,因为我们还没有建立extmail需要使用的mysql表。这些表结构将由下边将要安装的extman系统提供。

    (2)如果显示Internal Server Error,可能是Apache的suexec组件出错,可以通过查看apache的logs来发现问题:

    #less /usr/local/apache2/logs/suexec_log

    [2007-11-03 15:04:42]: uid: (506/postfix) gid: (506/506) cmd: index.cgi

    [2007-11-03 15:04:42]: command not in docroot (/var/www/extsuite/extmail/cgi/ind

    如果显示如上错误,则说明suexec的docroot配置错误。(参考apache 2.0 document)

    suexec要求docroot目录下的cgi文件才能使用suexec。

    可以使用以下命令查看suexec默认的docroot:

    #/usr/local/apache2/bin/suexec -V

     -D AP_DOC_ROOT="/usr/local/apache2/htdocs"

     -D AP_GID_MIN=100

     -D AP_HTTPD_USER="daemon"

     -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"

     -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"

     -D AP_UID_MIN=100

     -D AP_USERDIR_SUFFIX="public_html"

    说明当前docroot目录为/usr/local/apache2/htdocs。

    suexec必须在configure编辑时使用--with-suexec-docroot=DIR参数指定docroot目录,如果没有使用此参数,默认是 --datadir 值所指定的带有"/htdocs"的后缀的目录(即apache的默认首页存放目录),也就是上边命令显示的/usr/local/apache2/htdocs。

    解决方案:

    在安装apache时,通过--with-suexec-docroot=DIR参数将docroot目录指向cgi的根目录,此处应为/var/www。

    16>安装extman:

    #tar xzvf extman-0.2.2.tar.gz

    #mv extman-0.2.2 /var/www/extsuite/extman

    #vi /var/www/extsuite/extman/webman.cf

    ==========================================

    SYS_MAILDIR_BASE = /var/mailbox

    SYS_MYSQL_USER = extmail

    SYS_MYSQL_PASS = extmail

    SYS_MYSQL_DB = extmail

    SYS_MYSQL_HOST = localhost

    SYS_MYSQL_SOCKET = /tmp/mysql.sock

    ==========================================

    修改apache的cgi目录运行权限:

    #chown -R postfix.postfix /var/www/extsuite/extman/cgi/

    引入extmail数据库表结构:

    #cd /var/www/extsuite/extman/docs

    #mysql -uroot -p GRANT all privileges on extmail.* TO webman@localhost IDENTIFIED BY 'extmail';

    mysql> GRANT all privileges on extmail.* TO webman@127.0.0.1 IDENTIFIED BY 'extmail';

    复制postfix虚拟域/用户配置文件到/etc/postfix/:

    #cp mysql_virtual_* /etc/postfix/

    配置apache支持extman:

    #vi /usr/local/apache2/conf/httpd.conf

    ====================================================================

    NameVirtualHost *:80

    ServerName mail.test.edu.cn

    DocumentRoot /var/www/extsuite/extmail/html/

    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

    Alias /extmail /var/www/extsuite/extmail/html

    SuexecUserGroup postfix postfix

    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

    Alias /extman /var/www/extsuite/extman/html

    ====================================================================

    去掉extman的plugin插件(这些插件会在邮件打开时访问其它服务器,进而可能会产生不必要的流量,而且会严重影响速度):

    mv /var/www/extsuite/extman/html/plugins/ /var/www/extsuite/extman/html/plugins2/

    17>安装extman中用于显示校验码的插件perl-GD:

    #rpm -ivh perl-GD-2.35-1.el5.rf.i386.rpm

    Preparing... ########################################### [100%]

     1:perl-GD ########################################### [100%]

    修改extman登录时使用的校验码位数:

    #vi /var/www/extsuite/extman/webman.cf

    =========================


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
author-avatar
aguiladesilvo_502
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有