由于对linux一知半解,所以安这些东西真的什么情况都遇到了。做个总结吧。
linux下安装mysql,采用tar包安装模式
1.建立相应目录和用户组
mkdir /usr/local/mysql
groupadd mysql useradd -g mysql mysql 2. 解压安装 tar zxvf mysql-3.23.58.tar.gz cd mysql-3.23.58 ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql --with-named-urses-ibs=/usr/lib/libncursesw.so.5 #prefix=/usr/local/mysql mysql安装的目标目录 #sysconfdir=/etc my.ini配置文件的路径 #localstatedir=/var/lib/mysql 数据库存放的路径 #with-named-urses-ibs 如果没有这句话则不能生成make文件 make make install 3.建立数据库和表 /usr/local/mysql/bin/mysql_install_db --user=mysql copy配置文件,有large,medium,small三个环境下的,根据机器性能选择,如果负荷比较大,可修改里面的一些变量的内存使用值 cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 更改目录权限和组 chmod 755 -R /usr/local/mysql/ chown mysql.mysql -R /usr/local/mysql/ 启动mysql /usr/local/mysql/bin/mysqld_safe & ok,先看看mysql能否正常工作 mysql -uroot mysql (在这遇到了一个情况,就是mysql服务已启,但是输入mysql提示command not found) 解决办法:把MYSQLPATH/bin/mysql映射到/usr/local/bin目录下: cd /usr/local/bin ln -fs /MYSQLPATH/bin/mysql mysql 完上面的步骤,然后把你编译目录的一个脚本COPY过去 cp support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld 用ntsysv设置使mysql每次启动都能自动运行。 好了,至此mysql安装完毕,你可以这样起动你的mysql服务 /etc/rc.d/init.d/mysqld start 下面这步比较关键, ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql ln -s /usr/local/mysql/include/mysql /usr/include/mysql 大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。 安装 rpm需要yum才能运行,于是下载了taz的压缩版 安装步骤如下 shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> bin/mysqld_safe --user=mysql & (启动) 关键点:创建mysql用户和组,解压,创建快捷方式(重要) 修改权限 导入初始表格 设置密码 mysqladmin -u root password 'newpassword' (输入的时候没有单引号) 创建mysql自启动服务 在MySQL目录下的support-file中,有一个叫myslq.server的启动脚本程序。把它复制到/etc/rc.d/init.d目录里面(改名为mysql): # cd /etc/rc.d/init.d # cp /usr/local/mysql/support-files/mysql.server mysql 接着把它的属性改为“x”(executable,可执行) # chmod +x mysql 最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。 # /sbin/chkconfig --del mysql # /sbin/chkconfig --add mysql 远程连接权限 进入mysql控制台 (./mysql -u root -p) update user set host = '%' where user = 'root'; ps:我设置之后发现localhost无法进入,重新用远程ui给user中的localhost配了记录 (用户root 密码从%哪条抄下来) 后解决。 服务器编码设置 mysql默认编码是latin字符集,使用source命令导入中文数据有乱码问题。 按需要把某个my×.cnf拷贝到/etc/下(改名为my.cnf),在[mysqld]下加入default-character-set = utf8,[client]下加入default-character-set = utf8。 如果服务器在运行,需要重启。进入mysql控制台使用/s可以看到编码情况。 windows中数据的迁移 如果采用copy表文件的方式需要注意到是: 1.copy过去的表文件要设置权限,可以照着mysql库的权限来设置。 其中设置owner和所属组的代码为: chown mysql *.* chgrp mysql *.* 2.注意表名的问题,win下表名都被置为小写,而linux下都是使用原表名。 apache的安装
1. 进入下载目录:
cd /home/wangnan/soft 2. 解压缩文件: tar zxvf httpd-2.2.6.tar.gz 解压缩后生成httpd-2.2.6目录,为安装源文件目录 3. 进入安装源文件目录 cd httpd-2.2.6 4. 生成安装前的配置文件,这里的—prefix指定apache的安装将安装到:/usr/local/apache目录下 ./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite 5. 生成make文件,并安装: make;make install 完成之后: echo "/usr/local/apache/bin/apachectl start">>/etc/rc.d/rc.local 上面设置启动系统后,自启动APACHE。 可vi /etc/rc.d/rc.local查看 (在这遇到一个问题,不能访问apache主页) 解决方法:很大的原因是防火墙: 通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理: 1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 2.关闭防火墙 /etc/init.d/iptables stop #start 开启 #restart 重启 永久性关闭防火墙chkconfig --level 35 iptables off
首先,服务器GCC要有,不然什么都不能做.可以用gcc -v来查看是否安装了GCC, gd-2.0.28.tar.gz libxml2-2.X.X.tar.gz zlib-1.X.X.tar.gz 忘记了, jpegsrc.v6b.tar.gz libpng-1.2.5.tar.gz freetype2-X.X.tar.gz 安装libxml # tar -zxf libxml2-2.6.16.tar.gz # cd libxml2-2.6.16 # ./configure (xml默认安装就可以,不要指定路径了,因为安装时php可能找不到它,PHP5只支持libxml2-2.5.10以上版本) # make # make install 安装zlib # tar -zxf zlib-1.2.2.tar.gz # cd zlib-1.2 # ./configure --prefix=/usr/local/zlib2 (注意,如果您以前没有安装zlib,可以不指定路径,我是没有删除以前的低版本才指定的!以下雷同!) # make # make install 安装jpeg # tar -zxf jpegsrc.v6b.tar.gz # cd jpeg-6b/ # ./configure --prefix=/usr/local/jpeg6 # make # make install-lib 如果你选择默认安装,可能很顺利,指定路径后,请先创建以下文件夹 错误提示:...... /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg6/include/jconfig.h /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/include/jconfig.h’: 没有那个文件或目录 make: *** [install-headers] Error 1 # mkdir /usr/local/jpeg6 # mkdir /usr/local/jpeg6/include # mkdir /usr/local/jpeg6/lib # make install-lib # make install 安装时如果错误提示: /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/lib/libjpeg.a’: 没有那个文件或目录 make: *** [install-lib] Error 1 创建如下文件夹: # mkdir /usr/local/jpeg6/lib # make install /usr/bin/install -c cjpeg /usr/local/jpeg6/bin/cjpeg /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/bin/cjpeg’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg6/bin /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/jpeg6/man/man1/cjpeg.1 /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/man/man1/cjpeg.1’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg6/man # mkdir /usr/local/jpeg6/man/man1 # make install 好了,直到安装成功! 安装libpng: # tar -zxf libpng-1.2.7-config.tar.gz # cd libpng-1.2.7-config # ./configure --prefix=/usr/local/libpng2 # make # make install 安装freetype: # tar -zxf freetype-2.1.9.tar.gz # cd freetype-2.1.9 # ./configure --prefix=/usr/local/freetype2 # make # make install 安装gd库: # tar -zxf gd-2.0.26gif.tar.gz # cd gd-2.0.26gif # ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/libpng2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2/ (请指定及格插件的安装路径,否则安装php的时候可能出错!) # make # make install # tar -zxf php5-200411260130.tar.gz # cd php5-200411260130 # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng2/ --with-gd=/usr/local/gd2/ --with-freetype-dir=/usr/local/freetype2/ --enable-trace-vars --with-zlib-dir=/usr/local/zlib2/ -with-mysql=/var/lib/mysql (*注意:如果前面的支持包有安装路径的,这的配置要写路径,如果安装时没有路径只写with-**,不要写路径,否则会报错。) # make # make install 添加php配置文件: cp php.ini-dist /usr/local/php/lib/php.ini (*注意:文件中是没有php.ini-dist文件的,其实php.ini-production就可以) 配置Apache让其支持php 编辑 /usr/local/apache/conf/httpd.conf 找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容 AddType application/x-httpd-php .php 找到DirectoryIndex index.html 修改成为 DirectoryIndex index.php index.html index.htm /usr/local/apache/bin/apachectl stop /usr/local/apache/bin/apachectl start 最后一步重新启动apache报如下错误: httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied 原因:是Linux有一个SELinux保护模式引起的。 解决办法: 1关闭SELINUX的方法: vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启 这个方法可能会对服务器带来风险。 2不关闭SELINUX的方法: # setenforce 0 # chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so # service httpd restart # setenforce 1 |