linux下apache+mysql+php+phpmyadmin安装配置超详细步骤

一、准备工作

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端口这条规则的下面

20161129094257

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,

页面底部显示配置文件现在需要一个短语密码。

20161130142846

如需让其不显示,解决方法:

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位的字符就没提示了。

20161130144038

这个密码用于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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
wwhwwh
上一篇 2016-12-01
下一篇 2016-12-02

相关推荐

  • CentOS_vsftpd安装配置

    1、查看是否安装vsftp # rpm -qa | grep vsftpd 如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp 如果没有使用以下命令安装vsf…

    2016-12-02
    16.0K1
  • CentOS 6.4安装QQ2012

    首先说明,本人在CentOS6.4下亲测成功,其它版本的Linux未曾试过! wineqq2012 for linux下载:文章底部附下载链接~ # tar -zxvf qq201…

    2013-07-01
    11.5K3

发表回复

登录后才能评论

评论列表(42条)

  • 平凡心
    平凡心 2020-09-14 10:59

    你好:这知识值 得学习

  • Satan丶枫
    Satan丶枫 2020-12-04 22:23

    谢谢站长分享

  • Satan丶枫
    Satan丶枫 2021-01-15 23:25

    linux下apache+mysql+php+phpmyadmin安装配置超详细步骤

  • 火箭黄蜂
    火箭黄蜂 2021-03-21 00:23

    我仿佛很快就会开始

  • zcy0809
    zcy0809 2021-03-26 16:43

    谢谢分享

  • mengb7070
    mengb7070 2022-04-02 17:15

    ipnu学习使用ubuntu,ytyt谢谢

联系我们

在线咨询:点击这里给我发消息

站长邮箱:admin@wuwenhui.cn
工作时间:周一至周五,8:30-17:30,节假日休息

微信
本站支持QQ一键注册登录,所有资源下载均在文章底部~