mysql5.5.10源码安装教程
[ 2011/04/02 09:31 | by admin ]
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com
系统为centos5.5 32位,从官方下载mysql-5.5.10.tar.gz源码包
mysql-5.5.10.tar.gz上传到系统中的/soft/目录
cd /soft/
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./configure
make
make install
cd ../
tar zxvf mysql-5.5.10.tar.gz
cd mysql-5.5.10
cmake . -DCMAKE_INSTALL_PREFIX=/web/mysql/ -DMYSQL_DATADIR=/web/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DWITH_DEBUG=0
make && make install
cd /web/mysql/
cp support-files/mysql.server /etc/init.d/mysqld
groupadd mysql
useradd mysql -g mysql -d /dev/null -s /sbin/nologin
chown -R mysql .
chgrp -R mysql .
chmod 755 /etc/init.d/mysqld
cp support-files/my-medium.cnf /etc/my.cnf
sed -i 's/log-bin=mysql-bin/#log-bin=mysql-bin/g' /etc/my.cnf
sed -i 's/binlog_format=mixed/#binlog_format=mixed/g' /etc/my.cnf
sed -i 's/skip-federated/#skip-federated/g' /etc/my.cnf
sed -i 's/skip-locking/skip-locking\nmax_connections = 1000\nwait_timeout = 5/g' /etc/my.cnf
chkconfig --add mysqld
chkconfig mysqld on
./scripts/mysql_install_db --user=mysql
service mysqld start
./bin/mysqladmin -u root password 123654
./bin/mysql -uroot -p
mysql>use mysql;
mysql>show databases;
mysql>quit;
本文来自http://blog.gsywx.com
系统为centos5.5 32位,从官方下载mysql-5.5.10.tar.gz源码包
mysql-5.5.10.tar.gz上传到系统中的/soft/目录
cd /soft/
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./configure
make
make install
cd ../
tar zxvf mysql-5.5.10.tar.gz
cd mysql-5.5.10
cmake . -DCMAKE_INSTALL_PREFIX=/web/mysql/ -DMYSQL_DATADIR=/web/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DWITH_DEBUG=0
make && make install
cd /web/mysql/
cp support-files/mysql.server /etc/init.d/mysqld
groupadd mysql
useradd mysql -g mysql -d /dev/null -s /sbin/nologin
chown -R mysql .
chgrp -R mysql .
chmod 755 /etc/init.d/mysqld
cp support-files/my-medium.cnf /etc/my.cnf
sed -i 's/log-bin=mysql-bin/#log-bin=mysql-bin/g' /etc/my.cnf
sed -i 's/binlog_format=mixed/#binlog_format=mixed/g' /etc/my.cnf
sed -i 's/skip-federated/#skip-federated/g' /etc/my.cnf
sed -i 's/skip-locking/skip-locking\nmax_connections = 1000\nwait_timeout = 5/g' /etc/my.cnf
chkconfig --add mysqld
chkconfig mysqld on
./scripts/mysql_install_db --user=mysql
service mysqld start
./bin/mysqladmin -u root password 123654
./bin/mysql -uroot -p
mysql>use mysql;
mysql>show databases;
mysql>quit;
vsftpd2.3.4 源码安装脚本
[ 2011/04/01 21:06 | by admin ]
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com
本安装为vsftpd2.3.4源码包安装,安装环境为centos5.5 32位,安装过程中创建ftp用户为:www,密码为:123654,并打开日志,日志为:/var/log/vsftpd.log 和 :/var/log/xferlog
下面为安装脚本,也可以直接下载附件包上传后进行安装。
#!/bin/bash
clear
echo "----------------源码安装vsftpd安装程序,按任意键继续----------------"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "本安装为本地用户登录FTP,并开启日志,请按任意键继续......"
char=`get_char`
mkdir -p /usr/local/man/man8/
mkdir -p /usr/local/man/man5/
tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make
make install
cp vsftpd.conf /etc/
#touch /etc/vsftpd.chroot_list
touch /etc/ftpusers
cat >>/etc/ftpusers<<EOF
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
mysql
EOF
touch /var/log/vsftpd.log
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
cp ../vsftpd /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/vsftpd
chkconfig --add vsftpd
chkconfig vsftpd on
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#' /etc/vsftpd.conf
sed -i 's\#local_enable=YES\local_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#write_enable=YES\write_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#local_umask=022\local_umask=022\g' /etc/vsftpd.conf
sed -i 's\#ftpd_banner=Welcome to blah FTP service.\ftpd_banner=Welcome to xiaoyuwxzs FTP service.\g' /etc/vsftpd.conf
sed -i 's\dirmessage_enable=YES\#dirmessage_enable=YES\g' /etc/vsftpd.conf
sed -i 's\xferlog_enable=YES\#xferlog_enable=YES\g' /etc/vsftpd.conf
echo "dual_log_enable=YES" >>/etc/vsftpd.conf
echo "vsftpd_log_file=/var/log/vsftpd.log" >>/etc/vsftpd.conf
sed -i 's\connect_from_port_20=YES\#connect_from_port_20=YES\g' /etc/vsftpd.conf
echo "pam_service_name=vsftpd" >>/etc/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd.conf
echo "增加www用户组,并增加www用户,www家目录设为/home/wwwroot/"
sleep2
groupadd www
useradd www -g www -d /home/wwwroot/ -s /sbin/nologin
echo "123654" | passwd --stdin www
chown www.www /home/wwwroot/
service vsftpd start
sleep 1
echo "删除安装临时文件.............."
rm -Rf vsftpd-2.3.4
echo
echo
echo " ------------------- 如需增加新用户,请使用以下命令 -------------------"
echo "| useradd 用户名 -g 用户组 -d 用户家目录 -s /sbin/nologin |"
echo "| 如需禁用用户,增加用户名到 /etc/ftpusers |"
sleep 1
echo " -------------------------- vsftpd 安装结束! --------------------------"
echo
本文来自http://blog.gsywx.com
下载文件 (已下载 167 次)
本安装为vsftpd2.3.4源码包安装,安装环境为centos5.5 32位,安装过程中创建ftp用户为:www,密码为:123654,并打开日志,日志为:/var/log/vsftpd.log 和 :/var/log/xferlog
下面为安装脚本,也可以直接下载附件包上传后进行安装。
#!/bin/bash
clear
echo "----------------源码安装vsftpd安装程序,按任意键继续----------------"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "本安装为本地用户登录FTP,并开启日志,请按任意键继续......"
char=`get_char`
mkdir -p /usr/local/man/man8/
mkdir -p /usr/local/man/man5/
tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make
make install
cp vsftpd.conf /etc/
#touch /etc/vsftpd.chroot_list
touch /etc/ftpusers
cat >>/etc/ftpusers<<EOF
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
mysql
EOF
touch /var/log/vsftpd.log
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
cp ../vsftpd /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/vsftpd
chkconfig --add vsftpd
chkconfig vsftpd on
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#' /etc/vsftpd.conf
sed -i 's\#local_enable=YES\local_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#write_enable=YES\write_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#local_umask=022\local_umask=022\g' /etc/vsftpd.conf
sed -i 's\#ftpd_banner=Welcome to blah FTP service.\ftpd_banner=Welcome to xiaoyuwxzs FTP service.\g' /etc/vsftpd.conf
sed -i 's\dirmessage_enable=YES\#dirmessage_enable=YES\g' /etc/vsftpd.conf
sed -i 's\xferlog_enable=YES\#xferlog_enable=YES\g' /etc/vsftpd.conf
echo "dual_log_enable=YES" >>/etc/vsftpd.conf
echo "vsftpd_log_file=/var/log/vsftpd.log" >>/etc/vsftpd.conf
sed -i 's\connect_from_port_20=YES\#connect_from_port_20=YES\g' /etc/vsftpd.conf
echo "pam_service_name=vsftpd" >>/etc/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd.conf
echo "增加www用户组,并增加www用户,www家目录设为/home/wwwroot/"
sleep2
groupadd www
useradd www -g www -d /home/wwwroot/ -s /sbin/nologin
echo "123654" | passwd --stdin www
chown www.www /home/wwwroot/
service vsftpd start
sleep 1
echo "删除安装临时文件.............."
rm -Rf vsftpd-2.3.4
echo
echo
echo " ------------------- 如需增加新用户,请使用以下命令 -------------------"
echo "| useradd 用户名 -g 用户组 -d 用户家目录 -s /sbin/nologin |"
echo "| 如需禁用用户,增加用户名到 /etc/ftpusers |"
sleep 1
echo " -------------------------- vsftpd 安装结束! --------------------------"
echo
centos系统中:nginx前端apache后端 虚拟主机的配置
[ 2011/03/16 06:59 | by admin ]
httpd.conf中增加:
Listen 81
Listen 82
Listen 83
并同时开启:
Include conf/extra/httpd-vhosts.conf
httpd-vhosts.conf配置三个站点,分别对应81 82 83 三个端口,配置如下:
#-------------------- default root open with http://ip -------------------------
<VirtualHost *:81>
ServerAdmin root@localhost
DocumentRoot "/home/wwwroot/htdocs"
ServerName 192.168.0.2
# ServerAlias locahost 127.0.0.1
# DirectoryIndex index.html index.html.var index.php
# ErrorLog "logs/error.log"
# CustomLog "logs/access.log" common
</VirtualHost>
#------------------------- virtual web www.aaa.com -----------------------------
<Directory /home/wwwroot/htdocs>
AllowOverride ALL
Allow from all
</Directory>
<VirtualHost *:82>
ServerAdmin admin@gsywx.com
DocumentRoot /home/wwwroot/htdocs/www.aaa.com
ServerName www.aaa.com
# ServerAlias *.aaa.com
# ErrorLog "logs/www.aaa.com-error.log"
# CustomLog "logs/www.aaa.com-access.log" common
</VirtualHost>
#------------------------- virtual web www.bbb.com -----------------------------
<Directory /home/wwwroot/htdocs>
AllowOverride ALL
Allow from all
</Directory>
<VirtualHost *:83>
ServerAdmin admin@gsywx.com
DocumentRoot /home/wwwroot/htdocs/www.bbb.com
ServerName www.bbb.com
# ServerAlias *.bbb.com
# ErrorLog "logs/www.bbb.com-error.log"
# CustomLog "logs/www.bbb.com-access.log" common
</VirtualHost>
nginx中的vhost.conf中配置对应的三个虚拟主机,配置如下:
upstream phppool1 {
server 127.0.0.1:81;
}
upstream phppool2 {
server 127.0.0.1:82;
}
upstream phppool3 {
server 127.0.0.1:83;
}
#------------------------------- default web dir -------------------------------
server
{
listen 80;
server_name 192.168.0.2;
root /home/wwwroot/htdocs;
location / {
proxy_pass http://phppool1;
proxy_set_header Host $host;
}
}
#-------------------------------- www.aaa.com --------------------------------
server
{
listen 80;
server_name www.aaa.com;
root /home/wwwroot/htdocs/www.aaa.com;
location / {
proxy_pass http://phppool2;
proxy_set_header Host $host;
}
}
#-------------------------------- www.bbb.com --------------------------------
server
{
listen 80;
server_name www.bbb.com;
root /home/wwwroot/htdocs/www.bbb.com;
location / {
proxy_pass http://phppool3;
proxy_set_header Host $host;
}
}
Listen 81
Listen 82
Listen 83
并同时开启:
Include conf/extra/httpd-vhosts.conf
httpd-vhosts.conf配置三个站点,分别对应81 82 83 三个端口,配置如下:
#-------------------- default root open with http://ip -------------------------
<VirtualHost *:81>
ServerAdmin root@localhost
DocumentRoot "/home/wwwroot/htdocs"
ServerName 192.168.0.2
# ServerAlias locahost 127.0.0.1
# DirectoryIndex index.html index.html.var index.php
# ErrorLog "logs/error.log"
# CustomLog "logs/access.log" common
</VirtualHost>
#------------------------- virtual web www.aaa.com -----------------------------
<Directory /home/wwwroot/htdocs>
AllowOverride ALL
Allow from all
</Directory>
<VirtualHost *:82>
ServerAdmin admin@gsywx.com
DocumentRoot /home/wwwroot/htdocs/www.aaa.com
ServerName www.aaa.com
# ServerAlias *.aaa.com
# ErrorLog "logs/www.aaa.com-error.log"
# CustomLog "logs/www.aaa.com-access.log" common
</VirtualHost>
#------------------------- virtual web www.bbb.com -----------------------------
<Directory /home/wwwroot/htdocs>
AllowOverride ALL
Allow from all
</Directory>
<VirtualHost *:83>
ServerAdmin admin@gsywx.com
DocumentRoot /home/wwwroot/htdocs/www.bbb.com
ServerName www.bbb.com
# ServerAlias *.bbb.com
# ErrorLog "logs/www.bbb.com-error.log"
# CustomLog "logs/www.bbb.com-access.log" common
</VirtualHost>
nginx中的vhost.conf中配置对应的三个虚拟主机,配置如下:
upstream phppool1 {
server 127.0.0.1:81;
}
upstream phppool2 {
server 127.0.0.1:82;
}
upstream phppool3 {
server 127.0.0.1:83;
}
#------------------------------- default web dir -------------------------------
server
{
listen 80;
server_name 192.168.0.2;
root /home/wwwroot/htdocs;
location / {
proxy_pass http://phppool1;
proxy_set_header Host $host;
}
}
#-------------------------------- www.aaa.com --------------------------------
server
{
listen 80;
server_name www.aaa.com;
root /home/wwwroot/htdocs/www.aaa.com;
location / {
proxy_pass http://phppool2;
proxy_set_header Host $host;
}
}
#-------------------------------- www.bbb.com --------------------------------
server
{
listen 80;
server_name www.bbb.com;
root /home/wwwroot/htdocs/www.bbb.com;
location / {
proxy_pass http://phppool3;
proxy_set_header Host $host;
}
}
centos网站图片显示变形不完整的解决
[ 2011/01/13 08:43 | by admin ]
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com
在用centos建立网站环境时,出现了这样的问题:
网站上的图片无法在IE中正确打开,发现都变形了,或色彩变得模糊或一块块的,使用图片另存为,发现图片只有上面一部份,下面部份丢失,或索性整个都不完整。检查网站上的图片完全正确,是用ssh二进制上传的。
重新安装nginx后问题依旧,于是,再安装apache,测试还一样,再用yum安装centos自带的apache,还是如此,后来经朋友查找发现说apache下的sendfile会有某些系统或CPU情况下存在bug,具体不深究它,解决问题即可。
解决方法:
在apache情况下:在httpd.conf中增加语句:EnableSendfile Off
在nginx情况下:修改nginx.conf中的 sendfile on;为 sendfile off;
为了更深地了解此问题,以下内容为搜索来的:
apache 配置中的两个指令EnableMMAP与EnableSendfile详解
访问大文件时>100k,只能送出前30k左右的内容,
在 ie中如何刷新都不能显示完整, 在 firefox中刷新几次后可显示完整,用 wget时,可看出明显的续传的过程.
需要关闭以下两项, 具体还是不知为何,但行之有效:
EnableMMAP 指令
说明 在递送中使用内存映射(memory-mapping)来读取文件
语法 EnableMMAP On|Off
默认值 EnableMMAP On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core
此指令指示httpd在递送中如果需要读取一个文件的内容,它是否可以使用内存映射。当处理一个需要访问文件中的数据的请求时,比如说当递送一个使用mod_include进行服务器端分析的文件时,如果操作系统支持,Apache将默认使用内存映射。
这种内存映射有时会带来性能的提高,但在某些情况下,您可能会需要禁用内存映射以避免一些操作系统的问题:
在一些多处理器的系统上,内存映射会减低一些httpd的性能。
在挂载了NFS的DocumentRoot上,若已经将一个文件进行了内存映射,则删除或截断这个文件会造成httpd因为分段故障而崩溃。
在可能遇到这些问题的服务器配置过程中,您应当使用下面的命令来禁用内存映射:
EnableMMAP Off
对于挂载了NFS的文件夹,可以单独指定禁用内存映射:
EnableMMAP Off
EnableSendfile 指令
说明 使用操作系统内核的sendfile支持来将文件发送到客户端
语法 EnableSendfile On|Off
默认值 EnableSendfile On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core
兼容性 仅在 Apache 2.0.44 及以后的版本中可用
这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。译者注:Linux2.4/2.6内核都支持。
这个sendfile机制避免了分开的读和写操作以及缓冲区分配,但是在一些平台或者一些文件系统上,最好禁止这个特性来避免一些问题:
一些平台可能会有编译系统检测不到的有缺陷的sendfile支持,特别是将在其他平台上使用交叉编译得到的二进制文件运行于当前对sendfile支持有缺陷的平台时。
在Linux上启用IPv6时,使用sendfile将会触发某些网卡上的TCP校验和卸载bug。
当Linux运行在Itanium处理器上的时候,sendfile可能无法处理大于2GB的文件。
对于一个通过网络挂载了NFS文件系统的DocumentRoot (比如:NFS或SMB),内核可能无法可靠的通过自己的缓冲区服务于网络文件。
如果出现以上情况,你应当禁用sendfile :
EnableSendfile Off
针对NFS或SMB,这个指令可以被针对目录的设置覆盖:
EnableSendfile Off
本文来自http://blog.gsywx.com
在用centos建立网站环境时,出现了这样的问题:
网站上的图片无法在IE中正确打开,发现都变形了,或色彩变得模糊或一块块的,使用图片另存为,发现图片只有上面一部份,下面部份丢失,或索性整个都不完整。检查网站上的图片完全正确,是用ssh二进制上传的。
重新安装nginx后问题依旧,于是,再安装apache,测试还一样,再用yum安装centos自带的apache,还是如此,后来经朋友查找发现说apache下的sendfile会有某些系统或CPU情况下存在bug,具体不深究它,解决问题即可。
解决方法:
在apache情况下:在httpd.conf中增加语句:EnableSendfile Off
在nginx情况下:修改nginx.conf中的 sendfile on;为 sendfile off;
为了更深地了解此问题,以下内容为搜索来的:
apache 配置中的两个指令EnableMMAP与EnableSendfile详解
访问大文件时>100k,只能送出前30k左右的内容,
在 ie中如何刷新都不能显示完整, 在 firefox中刷新几次后可显示完整,用 wget时,可看出明显的续传的过程.
需要关闭以下两项, 具体还是不知为何,但行之有效:
EnableMMAP 指令
说明 在递送中使用内存映射(memory-mapping)来读取文件
语法 EnableMMAP On|Off
默认值 EnableMMAP On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core
此指令指示httpd在递送中如果需要读取一个文件的内容,它是否可以使用内存映射。当处理一个需要访问文件中的数据的请求时,比如说当递送一个使用mod_include进行服务器端分析的文件时,如果操作系统支持,Apache将默认使用内存映射。
这种内存映射有时会带来性能的提高,但在某些情况下,您可能会需要禁用内存映射以避免一些操作系统的问题:
在一些多处理器的系统上,内存映射会减低一些httpd的性能。
在挂载了NFS的DocumentRoot上,若已经将一个文件进行了内存映射,则删除或截断这个文件会造成httpd因为分段故障而崩溃。
在可能遇到这些问题的服务器配置过程中,您应当使用下面的命令来禁用内存映射:
EnableMMAP Off
对于挂载了NFS的文件夹,可以单独指定禁用内存映射:
EnableSendfile 指令
说明 使用操作系统内核的sendfile支持来将文件发送到客户端
语法 EnableSendfile On|Off
默认值 EnableSendfile On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core
兼容性 仅在 Apache 2.0.44 及以后的版本中可用
这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。译者注:Linux2.4/2.6内核都支持。
这个sendfile机制避免了分开的读和写操作以及缓冲区分配,但是在一些平台或者一些文件系统上,最好禁止这个特性来避免一些问题:
一些平台可能会有编译系统检测不到的有缺陷的sendfile支持,特别是将在其他平台上使用交叉编译得到的二进制文件运行于当前对sendfile支持有缺陷的平台时。
在Linux上启用IPv6时,使用sendfile将会触发某些网卡上的TCP校验和卸载bug。
当Linux运行在Itanium处理器上的时候,sendfile可能无法处理大于2GB的文件。
对于一个通过网络挂载了NFS文件系统的DocumentRoot (比如:NFS或SMB),内核可能无法可靠的通过自己的缓冲区服务于网络文件。
如果出现以上情况,你应当禁用sendfile :
EnableSendfile Off
针对NFS或SMB,这个指令可以被针对目录的设置覆盖: