准备工作:
#关闭防火墙与selinux
[root@localhost ~]# service iptables stop
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]#
[root@localhost ~]# getenforce
Disabled
准备好光盘yum源
#编写光盘yum源
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[local]
name=local_repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
#挂载光盘yum源
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]#
基础环境准备好了接下来就安装必要的编译工具
#安装gcc gcc-c++ make等编译工具
[root@localhost ~]# yum -y install gcc gcc-c++ make
#检查一下是否安装了httpd、mysql等内容
[root@localhost ~]# rpm -q httpd
package httpd is not installed
[root@localhost ~]# rpm -q mysqld
package mysqld is not installed
#关注一下磁盘的容量是否满足
[root@localhost lamp]# df -h
#准备好源码包
[root@localhost ~]# mkdir /lamp
[root@localhost ~]# cd /lamp
[root@localhost lamp]#
[root@localhost lamp]# ls
apr-1.4.6.tar.gz libpng-1.2.31.tar.gz pcre-8.34.tar.bz2
apr-util-1.4.1.tar.gz libxml2-2.9.1.tar.gz pecl-memcache-php7.zip
freetype-2.3.5.tar.gz mcrypt-2.6.8.tar.gz php-7.0.7.tar.gz
httpd-2.4.7.tar.gz memcached-1.4.17.tar.gz phpMyAdmin-4.1.4-all-languages.tar.gz
jpegsrc.v6b.tar.gz mhash-0.9.9.9.tar.gz zlib-1.2.3.1.tar.gz
libevent-2.0.22-stable.tar.gz mysql-5.5.48.tar.gz
libmcrypt-2.5.8.tar.gz ncurses-5.9.tar.gz
编写一个脚本–>批量解压里面的tar文件
[root@localhost ~]# vim tar.sh
#!/bin/bash
cd /lamp
/bin/ls *.tar.gz > ls.list
for TAR in `cat ls.list`
do
/bin/tar -xf $TAR
done
/bin/rm -rf ls.list
#批量解压
[root@localhost lamp]# bash tar.sh
服务的安装与校验
echo $? #安装软件过程中由于频繁刷屏,建议在每个步骤结束后执行此命令
./configure #此步骤报错多是依赖关系没解决或是编译工具未安装(注意关键词提示)
make #此步骤多是编译时选项参数书写错误、不存在、漏写等问题
#一般需要检查上一个步骤:./configure --help
注意:若遇到报错,最简答的办法是,找到问题解决后重新解压软件,重新安装,步骤最简洁
基础环境弄好了就正式进行安装
建议:每个源码包配置编译安装完成之后,确认安装目录下是否生成安装文件,确认目录是否正确,安装的过程都需要加入【–prefix=/usr/local/软件名】
基础的依赖安装讲解
1、安装libxml2
#安装对应的依赖
[root@localhost lamp]# yum -y install libxml2-devel python-devel
[root@localhost lamp]# echo $?
0
#编译安装
[root@localhost lamp]# cd libxml2-2.9.1
[root@localhost libxml2-2.9.1]# ./configure --prefix=/usr/local/libxml2
[root@localhost libxml2-2.9.1]# echo $?
0
[root@localhost libxml2-2.9.1]# make && make install
[root@localhost libxml2-2.9.1]# echo $?
0
2、安装libmcrypt
[root@localhost libxml2-2.9.1]# cd /lamp/libmcrypt-2.5.8
[root@localhost libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt/
[root@localhost libmcrypt-2.5.8]# make && make install
安装libltdl,也在libmcrypt源码目录当中
[root@localhost libmcrypt-2.5.8]# cd /lamp/libmcrypt-2.5.8/libltdl/
[root@localhost libltdl]# ./configure --enable-ltdl-install
[root@localhost libltdl]# make && make install
3、安装mhash
[root@localhost libltdl]# cd /lamp/mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure
[root@localhost mhash-0.9.9.9]# make && make install
4、安装mcrypt
#进入目录
[root@localhost mhash-0.9.9.9]# cd /lamp/mcrypt-2.6.8
#这里一定要注意,需要调整一下环境变量
#变量:LD_LIBRARY_PATH 用于指定 libmcrypt 和 mhash 的库的位置
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib
[root@localhost mcrypt-2.6.8]# ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
[root@localhost mcrypt-2.6.8]# make && make install
5、安装zlib
#进入目录进行编译安装
[root@localhost mcrypt-2.6.8]# cd /lamp/zlib-1.2.3.1
[root@localhost zlib-1.2.3.1]# ./configure
#然后修改配置文件,否则无法正常安装此软件
# 找到 CFLAGS=-O3 -DUSE_MMAP在后面加入-fPIC变成(注意:小f大PIC,空格)
[root@localhost zlib-1.2.3.1]# vim Makefile
....................
CFLAGS=-O3 -DUSE_MMAP -fPIC
[root@localhost zlib-1.2.3.1]# make && make install
6、安装libpng
[root@localhost zlib-1.2.3.1]# cd /lamp/libpng-1.2.31
[root@localhost libpng-1.2.31]# ./configure --prefix=/usr/local/libpng
[root@localhost libpng-1.2.31]# make && make install
7、安装jpeg6
#安装此软件-->需要手工创建所需要的目录
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/bin
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/lib
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/include
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/man/man1 -p
#安装需要的扩展包
[root@localhost libpng-1.2.31]# yum -y install libtool*
[root@localhost libpng-1.2.31]# cd /lamp/jpeg-6b/
#复制 libtool 中的文件,覆盖 jpeg-6b 中的文件(64 位中的问题)
[root@localhost jpeg-6b]# cp -a /usr/share/libtool/config/config.sub ./
cp: overwrite `./config.sub'? y
[root@localhost jpeg-6b]# cp -a /usr/share/libtool/config/config.guess ./
cp: overwrite `./config.guess'? y
#编译安装
#--enable-shared 与--enable-static 参数分别为建立共享库和静态库使用的 libtool
[root@localhost jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
[root@localhost jpeg-6b]# make && make install
8、安装freetype
[root@localhost jpeg-6b]# cd /lamp/freetype-2.3.5
[root@localhost freetype-2.3.5]# ./configure --prefix=/usr/local/freetype/
[root@localhost freetype-2.3.5]# make && make install
[root@localhost freetype-2.3.5]# echo $?
0
9、安装apache
**安装apr的依赖包;**apache2.4.*的版本中默认没有集成的apr的依赖包,需要单独安装解决依赖的问题
#复制apr和apr-util整个目录到指定的位置,让预编译的时候自动检测
[root@localhost ~]# cp -a /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr
[root@localhost ~]# cp -a /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util
安装pcre依赖:
#首先解压一下pcre的包
[root@localhost ~]# cd /lamp/
[root@localhost lamp]# ls pcre-8.34.tar.bz2
pcre-8.34.tar.bz2
[root@localhost lamp]# tar -xf pcre-8.34.tar.bz2
#进入到pcre的目录进行编译
[root@localhost lamp]# cd pcre-8.34
[root@localhost pcre-8.34]# ./configure
[root@localhost pcre-8.34]# make && make install
安装openssl-devel
[root@localhost pcre-8.34]# yum -y install openssl-devel
Loaded plugins: fastestmirror, security
到这里–>开始安装apache
[root@localhost pcre-8.34]# cd /lamp/httpd-2.4.7
[root@localhost httpd-2.4.7]#
#注意这里的参数不要敲错,不然就会装错
[root@localhost httpd-2.4.7]# ./configure --prefix=/usr/local/apache2\
> --sysconfdir=/usr/local/apache2/etc\
> --with-included-apr\
> --enable-so\
> --enable-deflate=shared\
> --enable-expires=shared\
> --enable-rewrite=shared\
> --enable-ssl
[root@localhost httpd-2.4.7]# echo $?
0
#编译安装
[root@localhost httpd-2.4.7]# make && make install
[root@localhost httpd-2.4.7]# echo $?
注意:
若前面配置 zlib 时没有指定安装目录,Apache 配置时不要添加
--with-z=/usr/local/zlib/参数,
--enable-ssl 选项是为了后期实现 https 提前设置的参数
#启动apache测试一下
#启动httpd-->因为是源码安装-->所以一定要根据路径来
[root@localhost httpd-2.4.7]# /usr/local/apache2/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
#查看进程端口
[root@localhost httpd-2.4.7]# netstat -anltup | grep :80
tcp 0 0 :::80 :::* LISTEN 106082/httpd
apache的优化:
#启动apache的时候会出现这个提示
[root@localhost httpd-2.4.7]# /usr/local/apache2/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
#解决办法
[root@localhost httpd-2.4.7]# vim /usr/local/apache2/etc/httpd.conf
.............
190 #ServerName www.example.com:80
191 ServerName localhost:80 #添加这一行
...............
#重启后就没有了
[root@localhost httpd-2.4.7]# /usr/local/apache2/bin/apachectl restart
[root@localhost httpd-2.4.7]#
#如果报错提示:
若启动时提示/usr/local/apache2/modules/mod_deflate.so 无权限,可关闭 SELinux 解决,类似此类.so 文件不能载入或没有权限的问题,都是 SELinux 问题,MySQL 和 Apache 都可能有类似问题。
浏览器—>输入ip–>如果出现it works就代表成功了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4kjF4kp-1669509836129)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1668698213817.png)]
10、安装ncurse
#这个一定要安装,不安装mysql编译时会直接报错
#解压这个包
[root@localhost httpd-2.4.7]# gzip -d /lamp/ncurses-5.9.tar.gz
[root@localhost lamp]# tar -xvf ncurses-5.9.tar
[root@localhost lamp]# cd ncurses-5.9
[root@localhost ncurses-5.9]#
#安装ncurses的扩展包
[root@localhost ncurses-5.9]# yum -y install ncurses-devel
[root@localhost ncurses-5.9]# ./configure --with-shared --without-debug --with-ada --enable-overwrite
[root@localhost ncurses-5.9]# make && make install
11、安装cmake和bison
mysql 在 5.5 以后,不再使用./configure 工具,进行编译安装。而使用 cmake 工具替代了./configure工具。bison 是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作系统
[root@localhost ncurses-5.9]# yum -y install cmake bison
12、安装mysql
准备工作都完成了,就开始安装mysql
#创建mysql的运行用户,指定是系统用户并且禁止登陆
[root@localhost ncurses-5.9]# cd /lamp/mysql-5.5.48
[root@localhost mysql-5.5.48]# useradd -s /sbin/nologin -r mysql
[root@localhost mysql-5.5.48]#
#预编译、编译安装
[root@localhost mysql-5.5.48]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306
[root@localhost mysql-5.5.48]# make && make install
#参数选项的解析:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安装位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #指定 socket(套接字)文件位置
-DEXTRA_CHARSETS=all #扩展字符支持
-DDEFAULT_CHARSET=utf8 #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci #默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1 #安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 #安装 innodb 存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 #安装 memory 存储引擎
-DWITH_READLINE=1 #支持 readline 库
-DENABLED_LOCAL_INFILE=1 #启用加载本地数据
-DMYSQL_USER=mysql #指定 mysql 运行用户
-DMYSQL_TCP_PORT=3306 #指定 mysql 端口
mysql编译安装好了之后需要调整配置文件和参数才能正常运行
#修改mysql的目录的用户归属
[root@localhost mysql-5.5.48]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql data
#生成配置文件、并且开始初始化授权表
#复制 MySQL 配置文件到指定位置,覆盖掉系统自带文件
[root@localhost mysql]# cp -a /lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
#创建数据库授权表,初始化数据库,相当于安装完操作系统后的引导设置(添加第一个用户)
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql
[root@localhost mysql]# echo $?
0
#启动mysql
#让它在后台运行
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[1] 126510
#查看端口
[root@localhost mysql]# netstat -antulp | grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 126764/mysqld
#设定mysql的密码-->设置root的密码(mysql)
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -uroot password 123456
#这里登陆mysql
[root@localhost mysql]# /usr/local/mysql/bin/mysql -uroot -p123456
.............
mysql>
#到这里-->mysql部署成功
#查看一下库和表格
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
问题汇总:
#报错提示:FATAL ERROR: Could not find ./bin/my_print_defaults
原因:mysql_install_db 初始化所调用文件时使用的是相对路径,路径不在/usr/local/mysql 时,是无法调用 my_print_defaults 文件并初始化成功的。
13、安装PHP
[root@localhost php-7.0.7]# ./configure --prefix=/usr/local/php/ \
> --with-config-file-path=/usr/local/php/etc/ \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-libxml-dir=/usr/local/libxml2/ \
> --with-jpeg-dir=/usr/local/jpeg6/ \
> --with-png-dir=/usr/local/libpng/ \
> --with-freetype-dir=/usr/local/freetype/ \
> --with-mcrypt=/usr/local/libmcrypt/ \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --enable-soap \
> --enable-mbstring=all \
> --enable-sokets \
> --with-pdo-mysql=/usr/local/mysql \
> --with-gd \
> --without-pear
#各类选项的讲解
--with-config-file-path=/usr/local/php/etc/ 指定配置文件目录
--with-apxs2=/usr/local/apache2/bin/apxs 指定 apache 动态模块位置
--with-libxml-dir=/usr/local/libxml2/ 指定 libxml 位置
--with-jpeg-dir=/usr/local/jpeg6/ 指定 jpeg 位置
--with-png-dir=/usr/local/libpng/ 指定 libpng 位置
--with-freetype-dir=/usr/local/freetype/ 指定 freetype 位
--with-mcrypt=/usr/local/libmcrypt/ 指定 libmcrypt 位置
--with-mysqli=/usr/local/mysql/bin/mysql_config 指定 mysqli 位置
--with-gd 启用 gd 库
--enable-soap 支持 soap 服务
--enable-mbstring=all 支持多字节,字符串
--enable-sockets 支持套接字
--with-pdo-mysql=/usr/local/mysql 启用 mysql 的 pdo 模块支持
--without-pear 不安装 pear(安装 pear 需要连接互联网)
#编译安装
[root@localhost php-7.0.7]# make && make install
安装好了PHP之后,需要调整相关的配置文件;
#生成php的配置文件
[root@localhost php-7.0.7]# mkdir /usr/local/php/etc
[root@localhost php-7.0.7]# cp /lamp/php-7.0.7/php.ini-production /usr/local/php/etc/php.ini
#修改apache配置文件,使其识别*.php文件,并且通过PHP模块调用PHP进行页面解析
[root@localhost php-7.0.7]# vim /usr/local/apache2/etc/httpd.conf
.........
377 AddType application/x-compress .Z
378 AddType application/x-gzip .gz .tgz
#添加一下两行信息
379 AddType application/x-httpd-php .php .phtml
380 AddType application/x-httpd-php-source .phps
#然后重启
[root@localhost php-7.0.7]# apachectl restart
[root@localhost php-7.0.7]#
#测试一下php页面是否能够正常解析
#编写默认的php页面
[root@localhost php-7.0.7]# vim /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
#最后:通过浏览器输入地址访问:http://192.168.75.110 服务器地址/test.php
#能够看到页面代表成功
14、为php安装openssl模块
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
[root@localhost php-7.0.7]# cd /lamp/php-7.0.7/ext/openssl
[root@localhost openssl]# mv config0.m4 config.m4
[root@localhost openssl]# /usr/local/php/bin/phpize
[root@localhost openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
[root@localhost openssl]# make && make install
15、为php安装memcache模块
Memcache 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
[root@localhost openssl]# cd /lamp/
[root@localhost lamp]# unzip pecl-memcache-php7.zip
[root@localhost lamp]# cd pecl-memcache-php7
[root@localhost pecl-memcache-php7]# /usr/local/php/bin/phpize
[root@localhost pecl-memcache-php7]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
[root@localhost pecl-memcache-php7]# make && make install
修改php配置文件,使其识别并且调用openssl和memcache模块
[root@localhost pecl-memcache-php7]# vim /usr/local/php/etc/php.ini
723 ; On windows:
724 ; extension_dir = "ext"
#添加这个路径(此路径来自于模块安装命令的结果)
725 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
#并且添加这两段
726 extension="openssl.so";
727 extension="memcache.so";
#然后重启apache并且到网页上面查看
[root@localhost pecl-memcache-php7]# apachectl restart
16、安装memcached服务
#安装扩展的包
[root@localhost ~]# yum -y install libevent-devel
#编译安装
21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_aux
[root@localhost ~]# cd /lamp/memcached-1.4.17
[root@localhost memcached-1.4.17]# ./configure --prefix=/usr/local/memcache
[root@localhost ~]# make && make install
#添加 memcache 用户,此用户不用登录,不设置密码
root@localhost ~]# useradd -r -s /sbin/nologin memcache
[root@localhost ~]#
#启动 memcache 服务,并设置为后台运行
[root@localhost ~]# /usr/local/memcache/bin/memcached -umemcache &
#查看端口
[root@localhost ~]# netstat -an | grep :11211
17、安装phpMyadmin
phpMyAdmin 是一个以 PHP 为基础,以 Web-Base 方式架构在网站主机上的 MySQL 的数据库管理工具,让管理者可用 Web 接口管理 MySQL 数据库。
#复制主目录到httpd的默认路径
[root@localhost ~]# cp -a /lamp/phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
#进入到指定路径
[root@localhost ~]# cd /usr/local/apache2/htdocs/phpmyadmin/
[root@localhost phpmyadmin]#
[root@localhost phpmyadmin]# cp -a config.sample.inc.php config.inc.php
[root@localhost phpmyadmin]#
#设置 auth_type 为 http ,即设置为 HTTP 身份认证模式(新增即可)
[root@localhost phpmyadmin]# vim config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['auth_type'] = 'http'; #添加这一行
最后:浏览器输入:192.168.75.110:/phpmyadmin/index.php验证