一、准备工作
1.1、将所有源代码包下载并复制到一统一目录下
所有源代码包下载:详见文章底部~
1.2、检查当前系统是否具有编译工具
# gcc -v //出现 gcc 安装配置信息,如果没有使用yum install –y gcc安装
# rpm -q make //出现:make-3.81-3.el5
# rpm -q gcc //出现:gcc-4.1.2-48.el5
# rpm -q gcc-c++ //出现:gcc-c++-4.1.2-48.el5,如果没有使用yum install –y gcc-c++安装
如果没有安装编译工具则在对解压后的源代码包执行./configure 命令时会报错: error: not acceptable C compiler found in $PATH
1.3、检查系统是否已经默认安装了 apache、mysql 和 php 并卸载,要卸载的话首先查看服务是否开启:
# netstat –tnl
80 端口和 3306 端口是否开启先停服务再卸载,卸载时:如果是用 rpm 方式安装的,则先查找已经安装的包
# rpm -qa|grep httpd
# rpm -qa|grep mysql
# rpm -qa|grep php
# rpm –e 包名 //卸载
# rpm –e 包名 –nodeps //考虑到包与包之间的依赖关系,有时要强制卸载 这样卸载先后顺序就不用考虑了 如果是使用源代码包安装方式,则停掉服务后直接删除安装目录。我们可以查看各个软件的 安装路径:
# whereis mysql
# whereis httpd
# whereis php
然后用删除命令删除
# rm –rf 文件目录名
1.4、安装所需软件
1.4.1、安装apr解决apr not found问题
[root@wuwenhui ~]# tar -zxf apr-1.5.2.tar.gz
[root@wuwenhui ~]# cd apr-1.5.2
[root@wuwenhui apr-1.5.2]# ./configure –prefix=/usr/local/apr
[root@wuwenhui apr-1.5.2]# make
[root@wuwenhui apr-1.5.2]# make install
1.4.2、安装apr-util解决APR-util not found问题
[root@wuwenhui ~]# tar -zxf apr-util-1.5.4.tar.gz
[root@wuwenhui ~]# cd apr-util-1.5.4
[root@wuwenhui apr-util-1.5.4]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/bin/apr-1-config
[root@wuwenhui apr-util-1.5.4]# make
[root@wuwenhui apr-util-1.5.4]# make install
1.4.3、安装pcre解决pcre问题
[root@wuwenhui ~]# tar -zxf pcre-8.39.tar.gz
[root@wuwenhui ~]# cd pcre-8.39
[root@wuwenhui pcre-8.39]# ./configure –prefix=/usr/local/pcre
[root@wuwenhui pcre-8.39]# make
[root@wuwenhui pcre-8.39]# make install
1.5、各个软件编译安装顺序apache、mysql、php或者mysql、apache、php
注意php的安装要放到最后。在安装php之前需要安装php5需要的最新版本库文件,如libxml2、libmacypt以及GD2库等文件。安装GD2库是为了让php5支持gif、png和jpeg图片格式,所以在安装GD2库之前还要先安装最新的zlib、libpng、freetype和jpegsrc等库文件。
二、MySQL 安装
2.1、检查库文件是否存在,如有删除。
# rpm -qa | grep mysql
mysql-libs-5.1.52-1.el6_0.1.x86_64
# rpm -e mysql-libs-5.1.52.x86_64 –nodeps
2.2、检查mysql组和用户是否存在,如无创建。
# cat /etc/group | grep mysql
mysql:x:490:
# cat /etc/passwd | grep mysql
mysql:x:496:490::/home/mysql:/bin/bash
//以上为默认存在的情况,如无,执行添加命令:
# groupadd mysql
# useradd -r -g mysql mysql
//useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
2.3、解压TAR包,更改所属的组和用户
[root@wuwenhui ~]# cd /usr/local/
[root@wuwenhui local]# tar xvfz mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@wuwenhui local]# mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql
[root@wuwenhui local]# chown -R mysql mysql/
[root@wuwenhui local]# chgrp -R mysql mysql/
[root@wuwenhui local]# cd mysql/
2.4、安装和初始化数据库
[root@wuwenhui mysql]# bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql/ –datadir=/usr/local/mysql/data/
报错:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
[root@wuwenhui mysql]# yum install -y libaio* //安装 libaio 和 libaio-devel
[root@wuwenhui mysql]# bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql/ –datadir=/usr/local/mysql/data/
2016-12-05T10:08:27.741267Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
2016-12-05T10:08:28.045205Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-12-05T10:08:28.127371Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-12-05T10:08:28.205159Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c46242f1-bad2-11e6-b565-000c293ec131.
2016-12-05T10:08:28.207573Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
2016-12-05T10:08:28.210201Z 1 [Note] A temporary password is generated for root@localhost: WrEdzr%U*8js //WrEdzr%U*8js 为生成的临时密码记住后面要用
———————-
如果改变默认安装路径,则需要
1)/etc/my.cnf、/etc/init.d/mysqld中修改
basedir=’/apps/mysql’
datadir=’/apps/mysql/data’
2)创建ln
mkdir -p /usr/local/mysql/bin
ln -s /apps/mysql/bin/mysqld /usr/local/mysql/bin/mysqld
———————-
[root@wuwenhui mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
[root@wuwenhui mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld
[root@wuwenhui mysql]# cd bin/
[root@wuwenhui bin]# ./mysqld_safe –user=mysql &
[1] 2932
[root@wuwenhui bin]# 2016-06-01T22:27:09.708557Z mysqld_safe Logging to ‘/usr/local/mysql/data/localhost.localdomain.err’.
2016-06-01T22:27:09.854913Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
[root@wuwenhui bin]# /etc/init.d/mysqld restart //设置开机启动
Shutting down MySQL..2016-06-01T22:27:50.498694Z mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
SUCCESS!
Starting MySQL. SUCCESS!
[1]+ Done ./mysqld_safe –user=mysql
[root@wuwenhui bin]#
[root@wuwenhui bin]# chkconfig –level 35 mysqld on
2.5、初始化密码
mysql5.7会生成一个初始化密码前面安装步骤已经生成。
[root@wuwenhui bin]# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.12
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> SET PASSWORD = PASSWORD(‘123456’); //将密码修改为123456
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2.6、添加远程访问权限
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host = ‘%’ where user = ‘root’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host, user from user;
+———–+———–+
| host | user |
+———–+———–+
| % | root |
| localhost | mysql.sys |
+———–+———–+
重启生效
[root@wuwenhui bin]/etc/init.d/mysqld restart
三、Apache 安装
3.1、解压并进入安装
# cd /usr/local/
# tar zxvf httpd-2.4.23.tar.gz
# cd httpd-2.4.23
#./configure –prefix=/usr/local/apache –enable-so –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util/ –with-pcre=/usr/local/pcre
# make
# make install
3.2、测试 apache 服务器
3.2.1、检查安装目录
# ls /usr/local/apache
3.2.2、检查配置文件目录
# ls /usr/local/apache/conf
3.2.3、启动 apache
# /usr/local/apache/bin/apachectl start
如果出现错误 httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName
解决办法:只要把/conf/httpd.conf 文件的#ServerName 前的#去掉,然后重启下服务
3.2.4、查看 80 端口是否开启 netstat -tnl||grep 80 也可以查看进程:
# ps –le|grep httpd
3.2.5、关闭 apache
# /usr/local/apache/bin/apachectl stop
3.2.6、远程访问 apache 服务器
ifconfig 查看 IP 地址,找到 httpd.conf 配置文件修改 ServerName 为本机 IP
# cd /usr/local/apache/conf/httpd.conf
# vi httpd.conf
修改 ServerName 192.168.1.109:80 修改配置文件后要将服务重启后才生效。
远程登录输入网址格式 http://IP/
这时候如果远程访问不了,将服务器防火墙关掉
# /etc/init.d/iptables status //查看防火墙状态
# /etc/init.d/iptables stop //关闭防火墙 如果网页显示 It Works!说明 apache 安装成功
或者在防火墙规则里添加允许80、3306端口通过
# vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT //允许80端口通过防火墙
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT //允许3306端口通过防火墙
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
3.2.7、添加自启动
# echo /usr/local/apache/bin/apachectl start >>/etc/rc.local
四、PHP安装
4.1、php库文件安装
在安装 php 之前,有时候我们需要安装 php 所需要的库文件。4.1php 库文件的安装主要是为了以后 php 的应用,我们可以根据项目需要有选择的安装。
1)安装 libxml2 最新库文件
# tar -zxf libxml2-2.8.0.tar.gz
# cd libxml2-2.8.0
# ./configure –prefix=/usr/local/libxml2
# make
# make install
其中 3.prefix 参数指定安装目录为 libxml2,如果该目录不存在,则在配置阶段会自动创建, 安装过程中注意每个步骤完成后有无 error 错误,库文件的安装成功检测,进入安装后的目录。
# cd /usr/local/libxml2/
# ls //看有没有一些子目录
2)安装 libmcrypt 最新库文件
# tar -zxf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure –prefix=/usr/local/libmcrypt
# make
# make install
# cd libltdl
# ./configure –enable-ltdl-install
# make
# make install
3)安装 zlib 最新库文件
直接安装在系统库里,不用指定安装目录
# tar -xvf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure
# make
# make install
4)安装 libpng 最新库文件(zlib 要在之前安装)
# tar -zxf libpng-1.6.26.tar.gz
# cd libpng-1.6.26
# ./configure –prefix=/usr/local/libpng
# make
# make install
5)安装 jpeg6 最新库文件
安装目录不会自动创建,需要自己创建
# mkdir /usr/local/jpeg6 //建立 jpeg6 软件安装目录
# mkdir /usr/local/jpeg6/bin //建立存放命令的目录
# mkdir /usr/local/jpeg6/lib //建立 jpeg6 库文件所在目录
# mkdir /usr/local/jpeg6/include //建立存放头文件目录
# mkdir -p /usr/local/jpeg6/man/man1 //建立存放手册的目录
# tar -zxf libjpeg-6b.tar.gz
# cd libjpeg-6b
# ./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static
# make
# make install
有时编译时会出现“make:/libtool:命令未找到”错误 解决办法:首先看有没有安装 libtool
# rpm -qa|grep libtool //没有 yum install -y libtool 安装
然后将 libtool 里的两个配置文件覆盖掉 jpeg-6b 里的配置文件(CentOS6.2系统则较下多了一级config文件夹)
# cp /usr/share/libtool/config/config.sub /usr/local/src/jpeg-6b/config.sub //回车 y
# cp /usr/share/libtool/config/config.guess /usr/local/src/jpeg-6b/config.guess //回车 y
然后重新 configure
6)安装 freetype 最新库文件
# tar -zxf freetype-2.7.tar.gz
# cd freetype-2.7
# ./configure –prefix=/usr/local/freetype
# make
# make install
7)安装 autoconf 最新库文件
直接安装在系统库里,不用指定安装目录
# tar -zxf autoconf-2.69.tar.gz
# cd autoconf-2.69
# ./configure
# make
# make install
8)安装最新的 GD 库文件
# tar -zxf libgd-2.1.1.tar.gz
# cd libgd-2.1.1
# ./configure –prefix=/usr/local/gd2 –with-zlib=/usr/local/zlib –with-jpeg=/usr/local/jpeg6 –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype
# make
# make install
9)安装 curl
# tar -zxf curl-7.51.0.tar.gz
# cd curl-7.51.0
# ./configure –prefix=/usr/local/curl
# make
# make install
10)安装libXpm、perl、perl-devel
# yum install -y libXpm-devel.x86_64
# yum install -y perl perl-devel
4.2、PHP安装
因为 php 是作为 apache 的配置模块安装的,所以启动 apache 即启动了 php
# tar -zxf php-5.6.28.tar.gz
# cd php-5.6.28
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-curl=/usr/local/curl –with-libxml-dir=/usr/local/libxml2 –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg6 –with-freetype-dir=/usr/local/freetype –with-gd=/usr/local/gd2 –with-xpm-dir=/usr/lib64 –with-mcrypt=/usr/local/libmcrypt –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-soap –enable-mbstring=all –enable-sockets
//–with-apxs2 必选项告诉php查找Apache的地方
//–with-mysql 必选项
# make
# make install
./configure报错:The output of /usr/local/apache/bin/apxs follows:
./configure: /usr/local/apache/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory
configure: error: Aborting
解决方法:
找到apache目录下的apxs脚本文件,然后编辑它,把第一行的注释的地方修改为perl的可执行路径(首先要保证你安装过perl,没有安装请先行安装)。
# vi /usr/local/apache2/bin/apxs
将第一行
#!/replace/with/path/to/perl/interpreter -w
修改为
#!/usr/bin/perl -w
./configure报错:configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!
解决方法:
# cd /usr/local/mysql/lib/
# ln -s libmysqlclient.so.20.3.3 libmysqlclient_r.so
make 的时候出现以下错误
1)/usr/bin/ld: cannot find –lltdl collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
解决办法:这是因为找不到 libltdl 库文件
# ldconfig –p|grep ltdl
安装 libltdl 库文件
# tar -zxf libmcrypt-2.5.8.tar.gz
# cd libmcry-2.5.8/libltdl
# ./configure –enable-ltdl-install
# make
# make install
4.3、Lamp 环境整合
1、查看 php 模块是否已经在 apache 下
# cd /usr/local/apache/modules
# ls
是否有 libphp5.so 模块
2、创建 php 配置文件
# cd
# cp php-5.6.28/php.ini-production /usr/local/php/etc/php.ini
3、用 vi 编辑 apache 配置文件
# vi /usr/local/apache/conf/httpd.conf
添加:AddType application/x-httpd-php .php .phtml //指定后缀名让服务器将解析,可任意 添加
修改:DirectoryIndex index.php index.html
//对配置文件所做的修改,需要重启服务,又因为php作为apache的加载模块,所以在修改php配置文件后也要重启apache服务
# /usr/local/apache/bin/apachectl stop
# /usr/local/apache/bin/apachectl start
4、测试php
# cd /usr/local/apache/htdocs
# vi test.php
<?php
Phpinfo();
?>
在网页上输入 http://127.0.0.1/test.php
5、再次修改 test.php 添加数据库相关代码测试是否连接 mysql
<?php
If(mysql_connect(„localhost‟,‟root‟,‟123456‟))
{
Echo‟OK‟;
}
Else
{ Echo‟Failed‟;}?>
6、以后做好的 php 网页放到/usr/local/apache/htdocs 下,如果是文件夹,要将文件夹的用户改
为运行 apache 用户(有些需要写文件)
# ps –aux|grep httpd //查看运行 apache 用户
# chown –R wuwenhui.test //上传的文件夹名
五、phpMyAdmin安装
作用:管理数据库的 web 页面,可以远程管理服务器上的数据库
1、安装
# tar -zxf phpMyAdmin-4.6.5.1-all-languages.tar.gz
//拷贝目录到指定位置并改名为 phpmyadmin
# cp -a phpMyAdmin-4.6.5.1-all-languages /usr/local/apache/htdocs/phpmyadmin
# cp /usr/local/apache/htdocs/phpMyAdmin/config.sample.inc.php config.inc.php
//生成配置文件
2、phpMyAdmin 的配置
# vi config.inc.php
//修改 auth_type 选择就可以改变身份验证模式,默认情况为 cookie 身份验证模式。
http 和 cookie 身份验证模式要求用户在 phpMyAdmin 登录窗口里输入 MySQL 数据库有效用 户名和密码,才能使用 phpMyAdmin 程序。这两种身份模式尤其适合数据库中多个用户账号的情况。
config 身份验证模式,这种模式与前两种不同的是,要将 MySQL 用户名和密码写 config.inc.php 文件中,这样在登录 phpMyAdmin 时就不会提示数据用户名和密码了,如果只是在一个本地 系统上使用 phpMyAdmin,就可以使用这种模式。
修改方式:
http 身份验证模式:$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;
// 直接改为 http 即可。
cookie 身份验证模式:$cfg[‘blowfish_secret’] = ‘xxxxxx’;
// 这里需要一个任意字符串
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie
config 身份验证模式:$cfg[‘Servers’][$i][‘auth_type’] = ‘config’;
//添加以下两个选项
$cfg[‘Servers’][$i][‘user’] = ‘root’; //MySQL 数据库用户名
$cfg[‘Servers’][$i][‘password’] = ‘123456’; //数据库密码
访问 phpmyadmin:http://ip/phpmyadmin,
页面底部显示配置文件现在需要一个短语密码。
如需让其不显示,解决方法:
1)将 phpMyAdmin/libraries/config.default.php中的
$cfg[‘blowfish_secret’] = ”; 改成 $cfg[‘blowfish_secret’] = ‘jPXuc2pTrmUUum5M51BS3TKStGuUZfiyn60’; (注:其中的’′内的为随意的字符)
2)在phpMyAdmin目录中,打开config.sample.inc.php(我的刚生成了这个文件config.inc.php),所以我是改config.inc.php文件,18行
$cfg[‘blowfish_secret’] = ”; 改成 $cfg[‘blowfish_secret’] = ‘jPXuc2pTrmUUum5M51BS3TKStGuUZfiyn60’; (注:其中的’′内的为随意的字符)
密码我设置的短就提示:配置文件中的密文(blowfish_secret)太短,所以我生成了个35位的字符就没提示了。
这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。
做好以上两步,刷新网页,OK,“配置文件现在需要一个短语密码。”的提示不存在了!
六、总结
6.1、apache、mysql、php 配置文件
6.1.1、apache 安装时如果没指定配置文件的目录,安装后默认在
# vi /usr/local/apache(安装路径)/conf/httpd.conf
6.1.2、mysql 和 php 安装后未生成配置文件,需要我们自己从源码包创建到指定目录
# cp /usr/local/php-5.6.28/php.ini-dist /usr/local/php/etc/php.ini
# cp /usr/local/mysql-5.7.16/support-files/my-medium.cnf /etc/my.cnf
6.1.3、修改配置文件后,要重启服务才会生效。其中 php 配置文件修改后,重启的是 appache 服 务
Apache:
# /usr/local/apache/bin/apachectl start
# /usr/local/apache/bin/apachectl stop
MySQL:
# /usr/local/mysql/bin/mysqld_safe &
# /usr/local/mysql/bin/mysqladmin –u root –p shutdown
6.1.4、查看服务是否开启
# Netstat –tnl //查看 80 端口和 3306 端口是否打开
6.1.5、为 apache 和 mysql 添加开机自启动
# echo /usr/local/mysql/bin/mysqld_safe –user=mysql & >>/etc/rc.local
# echo /usr/local/apache/bin/apachectl start >>/etc/rc.local
6.2、 配置文件常见参数修改
6.2.1、Apache:/usr/local/apache/conf/httpd.conf
ServerName: 192.168.1.1 //改为本机 IP
DirectoryIndex index.php index.html //增加 php 默认网页
Addtype application/x-httpd-php .php //添加 php 后缀名让服务器能够解析 php 文件
原创文章,作者:wwh,如若转载,请注明出处:https://www.wuwenhui.cn/4207.html
评论列表(42条)
你好:这知识值 得学习
如何打开
谢谢您的分享,
非常感谢您的分享,linux是非常好的系统
linux系统是最成熟的服务器系统
你好
不错,想试试看
谢谢分享
很不错
这是我见过最良心的博客
谢谢楼主分享
写的好