这段时间,一直在学习啊里云centos源码安装软件的知识。经过一段时间的学习,基本上掌握了安装软件的操作。现在,称自己对它的操作还有一些印象,先下写来,日后忘了就写不出来了。
注:由于这些技术知识我也是从网上而来。所以,有些内容我也是直接复制网上的内容。为此,有些知识点可能会跟网上的某编博客、论坛相同,请原作者见谅。(同时,也请读者从头到尾看完这编博客后才来动手操作,因为有些步骤我也经历了坑才走完的,所有,有些步骤的顺序可能会倒过来的,因为少了某些配置或者是什么走不下去的原因。所以,请读者先花个三五分钟看完了才来操作)。
一、安装apache
1、安装apache首先得有它的依赖支持,分别是apr、apr-util、iconv。只有这三个依赖安装成功了,才能真正走安装apache。
当然,在安装这些依赖之前,我们还得有一些软件的依赖包,比如gcc、gcc-c++ 什么的,当然,这些可以通过yum install 安装

//一键安装 gcc 等依赖包
yum -y install wget make gcc gcc-c++ pcre openssl openssl-devel zlib unzip cmake ncurses-devel libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel curl-devel libtool libtool-ltdl libtool-ltdl-devel libevent libevent-devel zlib-static zlib-devel autoconf pcre-devel gd perl freetype freetype-devel expat-devel

2、这些依赖安装好后,接着就可以安装 apr、apr-util、iconv 这三个依赖了。(有个小提示,习惯上,我们用在网上下载的软件包是放在/usr/local/src/ 目录下的。所以,我们在下载软件的时候,尽可能的把目录切换到 /usr/local/src/目录下,而安装的软件则放在/usr/local/目录下)

(1)、下载并安装 apr-1.7.0

//下载软件
wet wget https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
//解压
tar -zxvf apr-1.7.0.tar.gz
//进入apr-1.7.0的软件安装包目录
cd apr-1.7.0
//编译
./configure \
--prefix=/usr/local/apr-1.7.0
//安装
make clean
make && make install

(2)、下载并安装 apr-util

//下载软件
wget https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
//解压
tar -zwvf apr-util-1.6.1.tar.gz
//切换到安装包目录
cd apr-util-1.6.1
//编译
./configure \
--prefix=/usr/local/apr-util-1.6.1/ \
--with-apr=/usr/local/apr-1.7.0 
//安装
make clean
make && make install

(3)、下载并安装 iconv

//下载
wget https://mirror.bit.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
//解压
tar -zxwf apr-iconv-1.2.2.tar.gz
//切换到安装包目录
cd apr-iconv-1.2.2
//编译
./configure \
--prefix=/usr/local/apr-iconv-1.2.2/ \
--with-apr=/usr/local/apr-1.7.0 
//安装
make
make && make install

(4)、开始安装apache

//下载
wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
//解压
tar -zxvf httpd-2.4.46.tar.gz
//切换到安装包目录
cd httpd-2.4.46
//编译
./configure \
    --prefix=/usr/local/httpd-2.4.46/ \
    --with-apr=/usr/local/apr-1.7.0 \
    --with-apr-util=/usr/local/apr-util-1.6.1/
//安装
make clean
make && make install

(5)、到止,apache就安装完成,但实际上还不算正真完成,因为它还需要进行一些简单的配置。

//把安装目录添加到path,在该文件的最后一行插入
vim /etc/profile
export PATH=/usr/local/httpd-2.4.46/bin:$PATH
//同时,还需要把 /usr/local/httpd-2.4.46/bin/apachectl 该目录下的文件复制到 /etc/rc.d/init.d/下,并重命名为httpd (执行命令如下)
cp \
/usr/local/httpd-2.4.46/bin/apachectl \
/etc/rc.d/init.d/httpd
//同时,还需要修改 /usr/local/httpd-2.4.46/conf/httpd.conf 中的文件,把ServerName 的值改为 localhost:80
//同时,把DocumentRoot的值改为 var/www/html  (这个是你服务器存放项目的 的根目录)
//之后,在/var/www/html/目录中新建index.html 文件,在文件中写入一些代码,用于测试(如果没有该目录,请自行新建)

//之后还需要开启80 端口
firewall-cmd --permanent --zone=public --add-service=http            #防火墙设置开启80端口
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
//(以上三行成功会显示 success)

reboot //之后重启linux系统
//可查看apache 的版本
//httpd -v
// service httpd restart //重启apache 服务
// service httpd start //启动apache 服务
// service httpd stop //停止apache 服务

centos安装源码mysql centos源码安装软件_centos安装源码mysql


最后,在浏览器里输入你的IP地址,如果能显示刚index.html的内容,就表示安装成功。

========分割线=
安装mysql5.7.25或者是mariadb-10.3.18 (两者可以二选一)
二、安装Mysql5.7.25 注:Mysql5.7.25的安装我也是转载网上的内容,请原作者见谅(原文 )
1、安装之前,先检查本机有无系统自带的mariadb,如果有,先删除

rpm -qa|grep mariadb
rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64 // mariadb-libs-5.5.60-1.el7_5.x86_64为当前的版本,(这当前的版本是这个)
//删除/etc下my.cnf配置文件
rm -rf /etc/my.cnf
rpm -qa | grep mysql

2、检查mysql用户组、用户是否存在,不存在则创建

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
groupadd mysql
useradd -g mysql mysql

3、在安装之前最好先安装依赖包

yum install -y libnuma*

4、解压并移动到/usr/local目录下

tar -zxvf mysql-5.7.25-el7-x86_64.tar.gz
mkdir -p /usr/local/mysql5.7
mv /usr/local/src/mysql-5.7.25-el7-x86_64/* /usr/local/mysql5.7/
mkdir /usr/local/mysql5.7/data
mkdir /usr/local/mysql5.7/log
touch /usr/local/mysql5.7/log/mysqld.log
chown -R mysql /usr/local/mysql5.7/
chgrp -R mysql /usr/local/mysql5.7/

5、安装

/usr/local/mysql5.7/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql5.7/ --datadir=/usr/local/mysql5.7/data/

6、新建配置文件my.cnf,并启动

vim /etc/my.cnf

//复制下面的代码
[mysqld]
basedir=/usr/local/mysql5.7/
datadir=/usr/local/mysql5.7/data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
lower_case_table_names=1
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
 
[client]
port=3306
 
[mysqld_safe]
log-error=/usr/local/mysql5.7/log/mysqld.log

下面这段是配置mysqlbinlog的配置,是在文件【etc/my.cnf】中进行修改的,如果不需要使用mysqlbinlog,可以不用管这一段代码

[mysqld]
basedir=/usr/local/mysql5.7/
datadir=/usr/local/mysql5.7/data
socket=/tmp/mysql.sock


#socket=/tmp/mysql/mysql.sock




:

user=mysql
symbolic-links=0
#log-bin=/usr/local/mysql5.7/data/log
#log-bin=my-binlog-name
#pid-file=/usr/local/mysql5.7/data/localhost.pid
#log-bin=mysql-bin
#log-bin=mysql-bin
server-id=1
binlog_format=MIXED
#datadir=/usr/local/mysql5.7/data/log
log-bin=/usr/local/mysql5.7/data/log/mysql-b
lower_case_table_names=1
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
 [client]
port=3306
 socket=/tmp/mysql.sock
#socket=/tmp/mysql/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql5.7/log/mysqld.log
chown 777 /etc/my.cnf
cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
service mysqld start

7、添加环境变量

vim /etc/profile
# MYSQL
export MYSQL_HOME="/usr/local/mysql5.7/"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile //环竟变量生效

8、获取初始密码,连接mysql,更改默认密码,允许远程访问

cat /root/.mysql_secret   //这儿会得到默认的密码
mysql -uroot -p //登陆 然后直接复制上面的密码就可以进入数据库
set PASSWORD = PASSWORD('123456'); //修改密码为123456
flush privileges; //完成

//允许远程访问
use mysql
select host,user from user;
create user 'root'@'%' identified by '123456';

//开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

到此,就可以用工具进行远程登陆了。

//注意:在用工具新建新数据的时候出现如下报错
1044-access denied for user 'root@%' to database  //报错信息
//此时,你不用惊慌,这是因为没有给权限造成的
//解决方法:
mysql -uroot -p //登陆数据库
grant all privileges on 要创建的数据库名字.* to 'root'@'%' identified by '数据库的用户名' with grant option;  //这样就可以了。
//之后,在工具上可以新建刚那数据库的名字就不会有报错了。

9、如果服务器意外重启,有可能会导至数据库不能登录的情况,会出现以下报错

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) //报错提示

出现这种情况,也有相应的解决方法。解决方法如下

//在  /etc/my.cnf 文件下(把原来物socket路径注释掉,换一个路径	)
[mysqld]
basedir=/usr/local/mysql5.7/
datadir=/usr/local/mysql5.7/data
#socket=/tmp/mysql.sock  //注释掉原来的那个
socket=/tmp/mysql/mysql.sock
user=mysql
symbolic-links=0
lower_case_table_names=1
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
 
[client]
port=3306
 socket=/tmp/mysql/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql5.7/log/mysqld.log
mkdir -p /tmp/mysql //对刚刚的路径进么创建 (因为刚只是在配置,系统上并没有这个路径)
chmod 777 /tmp/mysql  //把刚才的路径权限改为777
//创建并把权限改为777后,必须保证你这个目录是空的,不然下面的命令执行不成功
//如果当前的目录文件不为空,那么,切换到上一层目录,执行 rm -rf 上一层目录
systemctl start mysqld //重启mysql服务
//如果没有意外的话就成功了,接下来的操作就跟之前的一样的了。
//这儿我附上网上的链接 https://blog.csdn.net/m0_37082962/article/details/85718734?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-85718734-blog-78850658.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-85718734-blog-78850658.pc_relevant_default&utm_relevant_index=1

分割线=====
二、mariadb-10.3.18
注:在安装之前,先检测机器上有没有安装 mysql 或者是 mariadb,如果有安装,请选自行删除

//检查mariadb安装包
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
//mariadb-libs-5.5.50-1.el7_2.x86_64 (显示出来的软件名字)
rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64  //卸载查找到的mariadb安装包
yum remove  mariadb-libs-5.5.50-1.el7_2.x86_64 //注:如上命令删除不成功,有别的软件依赖无法删除时,可以此方法

1、安装依赖

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2、准备用户和数据目录

useradd -r -M -s /sbin/nologin mysql
mkdir -p /data/mysql
chown mysql.mysql /data/mysql
tar xf mariadb-10.3.18.tar.gz

3、编译安装

cd mariadb-10.3.18
cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install

4、准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

5、生成数据库文件

cd /app/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

6、准备配置文件

cp /app/mysql/support-files/wsrep.cnf /etc/my.cnf

7、准备启动脚本

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

8、启动服务

chkconfig --add mysqld 
service mysqld start //这儿可能会在启动后退出

9、开启3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
systemctl start firewalld
systemctl enable firewalld.service
firewall-cmd --state
iptables -L -n

10、登陆测试

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新的修改后的密码,用于工具登陆' WITH GRANT OPTION;         #重新修改密码

11、进入数据库后

show databases; //查看有数据库

centos安装源码mysql centos源码安装软件_apache_02


最后,用莲花数据库工具验证登陆,如果出现以下状态,说明数据库就真正的安装成功了 。

centos安装源码mysql centos源码安装软件_centos安装源码mysql_03


分割线=

三、安装php7.1.8

首先,在安装之前,需要先把系统默认的php先删除掉(有些系统默认会有安装php5的版本)

rpm -qa|grep php //查找所有系统上的默认php版本
rpm -e php-common-5.4.16-45.el7.x86_64 //删除对应的文件(php-common-5.4.16-45.el7.x86_64 为需要删除的文件)

1、在安装之前,依旧是先安装依赖

yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2、下截并解压(略,自行在百度上找)
3、编译

在这里插入代码片./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php \
--enable-mbstring \
--enable-ftp \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-pdo-mysqli=/usr/local/mysql5.7 \
--with-mysql=/usr/local/mysql5.7 \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-apxs2=/usr/local/httpd-2.4.46/bin/apxs \
--without-pear  \
--disable-phar \
--enable-sockets \
--with-freetype-dir=/usr \
--with-zlib \
--with-libxml-dir=/usr \
--with-xmlrpc \
--enable-zip \
--enable-fpm \
--enable-xml \
--enable-sockets \
--with-gd \
--with-zlib \
--with-iconv \
--enable-zip \
--with-freetype-dir=/usr/lib/ \
--enable-soap \
--enable-pcntl \
--enable-cli \
--with-curl \
--libdir=/lib64 \
--with-openssl \
--with-php-config=/opt/runtime/php/bin/php-config

//这儿注意几个地方,一个是mysql数据库的路径,还有一个是apache的路径,请按自己的实际情况来。

4、安装

make clean
make && make install

5、在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php下,并改名为php.ini:

cp php.ini-production /usr/local/php/php.ini
vim /usr/local/php/php.ini     /设置让PHP错误信息打印在页面上 
//将Off改成On

centos安装源码mysql centos源码安装软件_mariadb_04

到此,php安装完毕,接下来就是配置,(晚上补充)
可以进入php的目录 (/usr/local/php/bin)
用命令

./php -v  //查看php版本
./php -m //查看安装的扩展

当然,如果在后续需要安装其他扩展,比如说openssl、gd 等,只需进入安装包下的ext目录,那儿会有扩展包,我们只需要选择对应的安装即可。
以openssl 为例

//进入ext目录
cd /usr/local/src/php-7.4.29/ext
cd openssl
/usr/local/php/php7/bin/phpize //生成configure 文件
//当然,如果生成的时候报错,执行
mv config0.m4  config.m4  //就是用config.m4去生成
//之后就是编译过程了
./configure --with-php-config=/usr/local/php/php7/bin/php-config  //其实,所有安装扩展都是这套路
make && make install
//最后就是在php.ini中写入扩展名
extension=openssl.so  //路数都是一样的