现在的位置: 首页 > 综合 > 正文

CentOS 安装 mysql apache php

2013年08月17日 ⁄ 综合 ⁄ 共 6554字 ⁄ 字号 评论关闭
由于对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
  • 安装php

安装php前要安一下支持包,不然就像我开始一直遇到错误。
首先,服务器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


抱歉!评论已关闭.