linux下Apache、mysql、php、phpMyadmin源码包编译安装及配置
事先可以先去各应用官网选择相应的源码包下载并上传到linux服务器上。源码包目录根据喜好或一个标准放置即可。
注:此文档仅适用于自己学习及测试使用,后续还将继续完善及解读文档中的不足。
在此之前先关闭selinux(Secrity-EnhancedLinux,安全增强式Linux),不然会由于selinux的安全机制影响到一些配置文件的加载及更改。
临时关闭(不用重启机器):
setenforce 0
1、安装配置apache2.4.10
介绍:
ApacheHTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。(摘自百度百科)
解压源码包:(源码包放置目录/data/tools,这里解压至当前目录即可)
tar -zxvf httpd-2.4.10.tar.gz
2、创建apache需要安装的目录:
mkdir /data/apache
3、下载对应apache需要的依赖pcre源码包进行编译安装,也可直接yum安装(pcre即为Perl库[包括 perl 兼容的正则表达式库],很多应用或者程序语言等需要的兼容库)
tar-zxvf pcre-8.35.tar.gz /data/tools
./configure && make && make install (若编译出现configure: error: no acceptable C compiler foundin $PATH此类报错则需安装gcc套件)
yuminstall gcc* 安装完成后继续编译pcre即可
4、编译apache前准备工作
编译之前需要先装apr及apr-util[APR(Apache portableRun-time libraries,Apache可移植运行库](完整的apr包括了三个开发包apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。)这里只需装前两个符合apache的依赖即可。
wget http://apr.apache.org/download.cgi/apr-1.5.1.tar.gz
wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
tar-zxvf apr-1.5.1.tar.gz
cd apr-1.5.1
./configure --prefix=/usr/local/apr
make && makeinstall
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && makeinstall
5、编译apache
cd /data/tools/httpd-2.4.10
./configure --prefix=/data/apache --with-mpm=worker --enable-so --enable-rewrite --enable-proxy=shared --enable-proxy-ajp=shared --enable-proxy-balancer=shared --enable-speling=shared --enable-mods-shared=most --with-apr=/usr/local/apr/--with-apr-util=/usr/local/apr-util/
make && makeinstall
检查apache是否安装成功:
[[email protected]]# /data/apache/bin/httpd -v
Server version:Apache/2.4.10 (Unix)
Server built: Jan 23 2015 19:10:08
附:可以把apache服务加到系统service里面去:
(1)复制原apache服务目录到系统服务目录里
cp -rf /data/apache/bin/apachectl /etc/rc.d/init.d/httpd
(2)修改httpd,在文件头加入如下内容:
#chkconfig:34585 15 (第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15))
#
#description:Startand stop the Apache HTTP Server
(3)保存后执行:chkconfig --add httpd成功添加
chkconfig httpd on
(4)查看下是否添加成功:
chkconfig --list httpd (httpd在其中则成功)
httpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
6、配置核心文件:httpd.conf(满足基本配置)
vim /data/apache/conf/httpd.conf
找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面添加:
AddType application/x-httpd-php .php(使Apcche支持PHP)
AddType application/x-httpd-php-source .phps
找到并添加:(满足php运行)
<IfModuledir_module>
DirectoryIndex index.html default.php index.php
</IfModule>
找到:
#ServerName www.example.com:80
修改为:
ServerName127.0.0.1:80或者ServerName localhost:80(表示本地的地址,若有可用域名也可直接改为域名)
去掉前面的“#” 然后保存使其更改生效。
7、测试
打开浏览器输入linux的主机IP若弹出
It Works!
则表示成功!
8、注:修改默认的web站点目录
可以新建一个目录来重新作为web站点的目录,例如:mkdir -p /data/apache/htdocs/home/website
编辑配置文件:
vim /data/apache/conf/httpd.conf
找到</Directory>这一行修改为如下:
</Directory>
<Directory"/data/apache/htdocs/home/website">
找到DocumentRoot修改为:
DocumentRoot"/data/apache/htdocs"
保存退出。重启apache
2、安装配置php-5.6.4
介绍:
PHP(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。(摘自百度百科)
1、解压源码包:
tar -zxvf php-5.6.4.tar.gz
创建需要安装php的目录
mkdir /data/php
2、编译配置php-5.6.4
编译前需先安装gd库2.1.0版本以上
wget https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz
tar -zxvf libgd-2.1.1.tar.gz
cd libgd-2.1.1
./configure --prefix=/data/gd && make && make install
由于php是web开发的工具,故还需要安装很多相应的依赖工具或者程序,以便于之后web网页的开发。
以下依赖包部分可以使用编译安装的办法。
yum install libxml2* (C语言的XML程式库,php编译需依赖)
yum install curl* (curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,php程序、apache应用等均常用)
yum install libcurl*
yum install libjpeg*
yum installfreetype*
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure --prefix=/data/libmcrypt && make && make install
具体编译参数详解可在php解压目录下:
./configure --help
3、开始编译安装php (由于php应用非常广泛,故在编译中关联许多有用的软件程序和工具)
关于php与mysql的结合使用此次编译中可先不加,待之后在加进去重新编译即可
./configure --enable-mbstring --with-curl=/usr/local/curl/--prefix=/data/php --with-apxs2=/data/apache/bin/apxs --with-mysql=/data/mysql/ --with-mysql-sock=/var/lib/mysql/mysql.sock --with-gd=/data/gd/--with-jpeg-dir --with-png-dir --with-freetype-dir --with-mcrypt=/data/libmcrypt/ --with-mysqli=/data/mysql/bin/mysql_config --with-iconv-dir=/data/libiconv/
make && make install
4、把位于源代码安装目录下的php.ini-development复制到php的目录下并重命名为:php.ini。
cp -rf /data/tools/php-5.6.4/php.ini-development /data/php/lib/php.ini
5、测试
在web目录下编写一个测试php文件:
vim /data/apache/htdocs/home/website/test.php
<?php
phpinfo();
?>
然后在浏览器里输入:http://你的主机IP地址/home/website/test.php
若出现php默认页面则为成功,反之失败则认真检查。
注:编译并配置了php后,apache服务里的配置文件httpd.conf会更改为拒绝所有连接:
<Directory />
#AllowOverride none 这两行进行注释即可
#Require all denied
</Directory>
3、安装并配置mysql-5.6.22
介绍:
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。(摘自百度百科)
a、检查是否安装
rpm -qa | grep -i mysql
b、若安装类似库文件则卸载库文件,例如:
rpm -e mysql-libs --nodeps
1、下载并解压mysql-5.6.22
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.22.tar.gz
tar -zxvf mysql-5.6.22.tar.gz
2、编译配置mysql
由于mysql-5.5版本以上都需要cmake工具来对其进行编译,故需先安装一个cmake工具,部分系统或者mysql已经支持。
wgethttp://wwwNaNake.org/files/v3.1/cmake-3.1.1.tar.gz
tar -zxvf cmake-3.1.1.tar.gz
cd cmake-3.1.1
./bootstrap
make && make install
为cmake增加环境变量:
vim /etc/profile最后加入一下两行:
PATH=$PATH:/usr/local/cmake/bin
export PATH
source /etc/profile
开始编译mysql:(编译参数详解请查看:http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html[官方]
http://www.blogjava.net/kelly859/archive/2012/09/04/387005.html[非官方])
cd mysql-5.6.22
cmake -DCMAKE_INSTALL_PREFIX=/data/mysql-DMYSQL_DATADIR=/data/mysqldata/data -DSYSCONFDIR=/etc-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306-DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
配置最后可能出现的错误:
CMakeError at cmake/readlineNaNake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.OnDebian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it isncurses-devel.
Call Stack(most recent call first):
cmake/readlineNaNake:128 (FIND_CURSES)
cmake/readlineNaNake:202(MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:406 (MYSQL_CHECK_EDITLINE)
--Configuring incomplete, errors occurred!
See also"/data/tools/mysql-5.6.22/CMakeFiles/CMakeOutput.log".
See also"/data/tools/mysql-5.6.22/CMakeFiles/CMakeError.log".
出现此错误需yum install ncurses-devel安装这个依赖的终端处理库。
make && makeinstall
创建mysql用户:
useradd mysql
初始化,生成mysql数据库系统
cd /data/mysql/
mkdir -p /data/mysqldata/data #数据存储目录
./scripts/mysql_install_db --user=mysql --basedir=/data/mysql --datadir=/data/mysqldata/data
cp ./support-files/mysql.server /etc/init.d/mysqld #把mysql服务加入系统服务
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动选项
chown -R mysql:mysql /data/mysql #mysql目录权限更改为mysql
把mysql服务加入系统环境变量:在最后添加如下行:
vim /etc/profile
exportPATH=$PATH:/data/mysql/bin
source /etc/profile
启动mysql服务:
service mysqld start
定义mysql.sock路径及datadir路径,(是为了防止连接数据库出现以下类型报错亦或者需要修改数据存储目录路径,mysql程序可能无法识别)
ERROR 2002(HY000): Can‘t connect to local MySQL server through socket‘/var/lib/mysql/mysql.sock‘ (2)
vim /data/mysql/my.cnf #编辑mysql配置文件加入以下定义路径行
[mysqld]
datadir=/data/mysqldata/data
socket=/var/lib/mysql/mysql.sock #mysql.sock文件是php程序或者客户端连接数据库的Unix域套接字文件,此文件的缺失或者路径识别都可造成连接数据库失败
user=mysql #定义为mysql用户
[client] #客户端与服务器路径相同
socket=/var/lib/mysql/mysql.sock
然后保存退出即可!若还出现连接错误可做一个软连接使mysql.sock指向mysql默认目录。
重启mysql服务:
service mysqldrestart
登录mysql并增加或者修改登录密码:
mysql -u root -p #无密码直接回车进入
mysql>use mysql; #使用mysql数据库
mysql>updateuser set password=PASSWORD("123456")where user="root"; #更改mysql数据库密码为123456
mysql>flush privileges; #更新权限
mysql>quit #退出
重新登录即可使用新密码登录数据库:
[[email protected] ~]# mysql -u root -p
Enter password:
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQLconnection id is 4
Server version:5.6.22 Source distribution
Copyright (c) 2000,2014, Oracle and/or its affiliates. All rights reserved.
Oracle is aregistered trademark of Oracle Corporation and/or its
affiliates. Othernames may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘for help. Type ‘\c‘ to clear the current input statement.
mysql>
登录成功! 附:一些登录错误及远程登录的方法连接(http://lzhxiaoyu.blog.51cto.com/10707/548723 http://blog.csdn.net/attilax/article/details/8595696)
简单的使用数据库创建一个数据库,以及一个表,插入一条记录到表。以达到lamp环境测试要求。(注意:每个命令后都有分号)
mysql -u root -p #登录数据库
mysql> create database Y1; #创建数据库Y1
mysql> use Y1; #使用数据库Y1
Database changed #提示已经进入并使用此数据库
mysql> create table student(id int(4) not null primary keyauto_increment,stuname char(20)); #创建一个数据表student
mysql> SHOW TABLES; #查看数据库中有那些表
mysql> DESCRIBE student; #显示表的结构
mysql> select * from student; #查询表student所有数据
mysql> quit #退出
Bye
4、php与mysql的结合测试
编写一个测试的test.php放在apache的web目录下:
cd/data/apache/htdocs/home/website/
vim test.php
<?php
$mysqli=newmysqli();
$mysqli->connect(‘localhost‘,‘root‘,‘123456‘,‘Y1‘);
//创建查询
$sqlstr=‘select *from student‘;
//发送查询给MySql
$result=$mysqli->query($sqlstr);
while($row=$result->fetch_object())
{
$name=$row->stuname;
echo $name;
}
?>
保存退出即可!执行此php若能输出结果mysql表里的Tom,则表示php与mysql结合的配置正确。
/data/php/bin/php test.php
Tom
也可以输入浏览器访问得到结果:
http://你的主机IP/home/website/test.php
5、phpMyadmin的安装与登录配置
介绍:
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
可以更简洁的方式输入繁杂的sql语句,也就是远端更加便捷的管理mysql数据库;另外还可以在网页服务器上处理php程序并且产生HTML页面。
1、下载源码包并解压
tar -zxvfphpMyAdmin-4.3.8-all-languages.tar.gz
移动解压出来的phpMyAdmin-4.3.8-all-languages目录移动到你的apache服务器的web站点目录下,并修改目录名为phpMyAdmin
cp -rfphpMyAdmin-4.3.8-all-languages /data/apache/htdocs/phpMyAdmin
检查解压出来的目录是否有必须的配置文件:
cd /data/apache/htdocs/phpMyAdmin/
ls config.sample.inc.php #此文件是phpmyadmin目录下的最低限度的配置文件
2、phpMyadmin的登录配置
phpMyadmin一般有三种身份验证模式:http、cookie、config
(1)cookie验证方式:
cookie身份验证模式是HTTP身份验证模式的补充,不能使用HTTP身份验证模式的场合都可以使用它。cookie身份验证模式要求用户必须允许来自phpMyAdmin的cookie进入自己的计算机。即用户需要在浏览器中开启客户端的cookie功能。
修改config.sample.inc.php如下图的配置参数:
blowfish_secret后面的参数必须提供一个字符串,系统将会使用这个字符串对客户端电脑上的密码进行加密。这个字符串可以是任意的。
‘auth_type‘这个语句就是定义phpMyadmin客户端登录的身份验证方式,此处改为cookie。
3、访问phpMyadmin服务端
需要提供mysql的用户名和密码才能登录。
浏览器访问:http://主机IP地址/home/website/phpMyAdmin/出现以下即为正确,输入用户名和密码即可登录。
登录以后显示如下内容:
至此,lamp整个环境编译安装 并测试成功!若有不足之处,还请大家多多评论!!!