0.准备步骤(没有连接网络的 linux):

挂载光盘、让网络 yum 源失效、修改光盘 yum 文件、安装 c 语言编译器 gcc。

1.MySQL(5.5.20)

下载 mysql 5.5.20 源码包(由于mysql 官网使用 google cdn 的 jquery 来切换mysql 版本下载的下拉菜单,所以墙内无法获取linux 版本的mysql,这里在 51cto 上下载了一个源码包)

把源码包 mysql-5.5.20.tar.gz 放到 /root 目录下

① 增加组和用户

首先查看是否有mysql 用户:

id mysql

如果没有,增加组和用户:

groupadd mysql
useradd -g mysql mysql

查看用户

id mysql

此时应该会有mysql 用户

② 解压缩

tar -zxvf mysql-5.5..tar.gz

安装完之后可以查看 mysql 解压以后的大小

du -sh mysql-5.5.

显示 205M

③ 进入 mysql -5.5.20 目录(编译和编译安装都需要在源码包解压后的目录中进行)

cd mysql-5.5.

④ 定义安装位置

先创建 /usr/local/mysql

mkdir /usr/local/mysql

然后软件配置与检查,定义安装位置

注意:这一步 mysql 5.5(以上) 的版本源码安装使用 cmake 代替原来的 configure 命令。

先安装 cmake:

yum -y install cmake

运行 cmake

(此步可以参考mysql 官方网站:2.9 Installing MySQL from Source ---- 2.9.2 Installing MySQL Using a Standard Source Distribution )

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_MEMORY_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DENABLED_LOCAL_INFILE= \
-DMYSQL_DATADIR=/data/mysql/mysql -DMYSQL_USER=mysql

或者

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE= -DWITH_MEMORY_STORAGE_ENGINE= -DWITH_READLINE= -DENABLED_LOCAL_INFILE= -DMYSQL_DATADIR=/data/mysql/mysql -DMYSQL_USER=mysql

安装过程中可能会报错,比如:

报错1:

CMake Error at /usr/share/cmake/Modules/CMakeCXXInformation.cmake: (get_filename_component):
get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
CMakeLists.txt: (PROJECT)

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
  CMake Error: Internal CMake error, TryCompile configure of cmake failed

解决方法:安装 gcc-c++

yum -y install gcc-c++

报错2:

CMake Error at cmake/readline.cmake: (MESSAGE):
Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

解决方法:

a.安装 ncurses-devel

yum -y install ncurses-devel

b.删除CMakeCache.txt

rm CMakeCache.txt

⑤ make && make install

make && make install

过程比较漫长。

安装完成之后,查看 /usr/local/mysql

ls /usr/local/mysql

⑥ 改变/usr/local/mysql 目录的权限

把 mysql 文件夹的所有者改为mysql 组的用户 mysql

cd /usr/local
chown -R mysql:mysql mysql

⑦ 设置开机启动

cd /root/mysql-5.5.
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
ll /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

此时就可以使用 servers mysqld start 来启动 mysql

⑧ 初始化 mysql 的默认的数据库

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/  --user=mysql 

⑨ 启动 mysql

service mysqld start

解决方法:

 cp cp /root/mysql-5.5.20/support-files/my-medium.cnf /etc/my.cnf

y 覆盖

vim /etc/my.cnf

插入 datadir = /usr/local/mysql/data

再插入:

log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp

保存。

如果还是不行的话,参考 http://houzhiqingjava.blog.163.com/blog/static/1673995072014395417615/

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql.mysql .
[root@localhost mysql]# su - mysql
[mysql@localhost ~]$ cd /usr/local/mysql
[mysql@localhost mysql]$ scripts/mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
Alternatively you can run:
./bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
[mysql@localhost mysql]$ /usr/local/mysql/bin/mysqld_safe --user=mysql &
[]
[mysql@localhost mysql]$ :: mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
:: mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

敲回车,再次启动 mysql

service mysqld start

错误原因是:没有初始化权限表。

⑩ 登录 mysql

如果报错:

原因:mysql命令的路径在 /usr/local/mysql/bin 下,所以你直接使用mysql命令时,无法查到该命令
解决方法:在/usr/bin 下做一个软链接,指向真实的命令

ln -s /usr/local/mysql/bin/mysql /usr/bin

测试:

select host,user,password from mysql.user;

给root 设置密码 123456

/usr/local/mysql/bin/mysqladmin -uroot -p password ''

使用 \s 查看数据库信息

停止mysql:

service mysqld stop

重启mysql:

service mysqld restart

2.PHP 5.3.10

① 准备工作(可以参考CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境)

a. 安装 libxml2 2.2.26(php 处理 xml 文档)

把 libxml2.tar.gz 复制到 /root 目录下

tar -zxvf libxml2-2.2..tar.gz
cd libxml2-2.2.
./configure --prefix=/usr/local/libxml2
make && make install

b.安装 jpeg6

把 jpegsrc.v6b.tar.gz 复制到 /root 目录下

解压:

tar -zxvf jpeg6.v6b.tar.gz
#手动建立以下目录

mkdir -p /usr/local/jpeg6
mkdir -p /usr/local/jpeg6/bin
mkdir -p /usr/local/jpeg6/lib
mkdir -p /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6/man
mkdir -p /usr/local/jpeg6/man1
mkdir -p /usr/local/jpeg6/man/man1 cd jpeg-6b
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make && make install

c.安装 zlib-1.2.5.1

把zlib-1.2.5.1.tar.gz 复制到 /root 下

tar -zxvf zlib-1.2.5.1
cd zlib.1.2.5.1
./configure #不指定任何目录
make && make install

d.安装 libpng 1.2.31

把libpng-1.2.31.tar.gz 复制到 /root 下

tar -zxvf libpng-1.2..tar.gz
cd libpng-1.2.31
./configure #和zlib 一样不要带参数,让它默认安装到相应目录 make && make install

 e. 安装 freetype 2.4.11 字体库

把 freetype-2.4.11.tar.gz 复制到 /root 下

tar -zxvf freetype-2.4..tar.gz
cd freetype-2.4.
mkdir -p /usr/local/
freetype
./configure --prefix=/usr/local/freetype
make && make install

f.安装 gd 2.0.35 图形库

把 gd-2.0.35.tar.gz 复制到 /root

tar -zxvf gd-2.0..tar.gz
mkdir -p /usr/local/gd
cd gd-2.0.
./configure --prefix=/usr/local/gd \
--with-jpeg=/usr/local/jpeg6 \
--with-png --with-zlib \
--with-freetype=/usr/local/freetype
make && make install

 ok,准备工作完成,该装php 了。

把 php-5.3.10.tar.gz 复制到 /root 下

② 解压:

tar -zxvf php-5.3.10
cd php-5.3.10

解压之后大小 127 M

③ 软件配置与检查,定义安装位置

./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-freetype-dir=/usr/local/freetype \
--with-gd=/usr/local/gd \
--with-zlib --with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg6 \
--with-png-dir \
--enable-mbstring=all \
--enable-mbregex \
--enable-shared

④ 编译 并且 安装

make && make install

过程很漫长。

⑤ 复制一份 php.ini 文件

使用:
ls |gerp ini
查看跟php.ini 有关的信息

然后copy:

cp php.ini-development /usr/local/php/lib/php.ini

或者 复制 php.ini-production (生产环境)

⑥ 整合 apache 和 php

进入apache 的安装目录

cd /usr/local/apache2

编辑:

vi conf/httpd.conf

使用 /php 查找和 php 相关的信息。

使用:set nu 显示行数。

166 行

<ifModule dir_modle>
DirectoryIndex index.html
</ifModule>

在 index.html 前加上 index.php

使用 /AddType

310 行添加:

AddType application/x-httpd-php .php

保存。

重启 apache

bin/apachectl restart

进入:

cd htdocs/

编辑:

vi index.php

输入:

<?php
phpinfo();

保存。

重启apache

/usr/local/apache2/bin/apachectl restart

在浏览器中输入 192.168.254.100

设置时区:

vi /usr/local/php/lib/php.ini

1008 行

data.timezone = PRC

重启 apache。

php 安装配置完成。

网站文件放在 /usr/local/apache2/htdocs ,目录下

新建虚拟主机:

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

搜索 vhosts

大约 389 行

把Virtual hosts 下面一行的 # 去掉

保存。

然后

vi extra/httpd-vhosts.conf

虚拟主机部分修改成:

重启apache。

修改本地主机的hosts,加入

192.168.254.100 test.com

在浏览器中输入 test.com,就可以浏览网站了。

参考:

linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置(Ubuntu)

使用cmake方式安装mysql-5.5.10(mysql cmake)

CentOS 6.2 源码安装MySQL5.5.11(解决mysql cmake 报错)

MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解决办法( 解决mysql 无法启动)

CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

CentOs5.5+mysql+nginx+php5.3.3安全安装手册

常用源码包

常用源码包2

Cent OS 6.6 下安装mysql(5.5.20)和 PHP(5.3.10)的更多相关文章

  1. (静默安装)Cent OS 6_5(x86_64)下安装Oracle 11g

    Cent OS 6_5(x86_64)下安装Oracle 11g 1 硬件要求   1.1 内存 & swap 物理内存不少于1G 硬盘可以空间不少于5G swap分区空间不少于2G Mini ...

  2. Cent OS 6.5下安装gcc-5.3.0

    目录: .下载源码包 .安装以前版本的GCC编译器 .文件传输 .熟悉解压命令 .安装流程 .开始安装 .安装必备包之GMP,MPFR,MPC的安装 .继续安装         [1.下载源码包]   ...

  3. redhat下安装mysql 5.6.20,解压zip包,查看已经安装过的mysql,卸载rpm安装包,安装mysqlserver端和client,改动mysqlusername,登陆mysql,启动关闭mysql

     1 将相关的mysql rpm包上传到redhat上 2  我的电脑是Redhat 6.*版本号.所以这里使用上面一个 3  解压zip包 4  安装下面几个rpm MySQL-client-a ...

  4. Cent OS 6.4下安装JDK1.6

    步骤1:查看Linux自带的JDK是否已安装 (卸载CentOS已安装的JDK)  安装好的CentOS会自带OpenJDK,用命令"java -version"查看,会有下面的信 ...

  5. 在Mac OS环境下安装MySQL服务

    在Mac OS环境下安装MySQL服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前介绍过window环境下安装mysql服务,以及在Linux环境下安装mysql服务,今 ...

  6. Linux下安装mysql(2) 及常见问题解决(CentOS)

    上一篇讲了基本的安装,这篇姑且算作进阶吧 链接Linux下安装mysql(1) 1.准备好mysql的rpm安装包 2.解压并进入usr/local/mysql 3.先执行useradd mysql( ...

  7. 在Mac下安装MySQL

    在Mac下安装MySQL   最近开始将开发工具都转移到 Mac 上了,其中也会莫名其妙的遇到一些坑,不如干脆将整个流程都记录下来,方便以后查找. 下载与安装 首先进入 MySQL 官网,选择免费的C ...

  8. Linux下安装 MySQL

    Ubuntu环境 使用二进制安装包安装,相对简单绿色 1.到官网下载二进制压缩包http://dev.mysql.com/downloads/mysql/ 2.选择需要的版本 目前最新为5.7.之后选 ...

  9. Ubuntu 下安装 Mysql

    这里讲用Ubuntu下安装MySql ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server   2. apt-get ...

随机推荐

  1. fuser命令小结

    前提 linux环境下,当使用umount命令卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount –lf  [挂载点] 也可以强制卸载 ...

  2. 查看Linus中自带的jdk ,设置JAVA_HOME

    在配置hadoop是,进行格式化hadoop的时候,出现找不到jdk 我用Red hat是32位的,没有现成的32位的,敲java , 发现本机有java ,就找了一下其位置 找到了jdk-1.6.0 ...

  3. 什么是网络爬虫(Spider) 程序

    Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序.它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访 ...

  4. linux dd命令刻录启动U盘详解

    dd if=xxx.iso of=/dev/sdb bs=1M 用以上命令前必须卸载u盘,sdb是你的u盘,bs=1M是块的大小,后面的数值大,写的速度相对块一点,但也不是无限的,我一般选2M,注意, ...

  5. rsync 不能同不子级目录的问题

    /usr/bin/rsync -vr /alidata/www/pro/mobile/* /alidata/www/crontal/mobile #-r, --recursive 对子目录以递归模式处 ...

  6. transient关键字使用笔记

    >>transient的作用及使用方法 一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过 ...

  7. Java Serializable(序列化)

    1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...

  8. IOS杂谈

    1 IOS名称是iPhone Operating System 的缩写,原本这个系统名为iPhone OS,意思是iPhone 操作系统. 2 IOS的开发环境是Xcode.Xcode就成为了iPho ...

  9. uva 11380(最大流+拆点)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36707 思路:根据题意拆点建图即可. #include<io ...

  10. cocos2dx游戏开发——捕鱼达人mini版学习笔记(一)——FishAchor的搭建

    一.创建文件· FishAchor.h还有FishAchor.cpp. 主要就是创建每种鱼的类,方便以后的取用~,很多是重复性的操作,然后我们是mini版,暂时也就加入大概6钟鱼就好= =,然后我们现 ...