centos7.3源码安装常用软件及相关配置合集
之前在开发过程中,都是使用yum或者宝塔的方式直接安装相关的软件,都是一些比较傻瓜式的操作,所以想对常用的开发软件有个比较深入的理解,所以最近用源码安装的方式重新搭建了一下开发环境,折腾一下,对于学习还是有所帮助的,在此记录一下相关操作。
- 设置ssh免密码登录远程服务器
- nginx源码安装
- php源码安装
- php扩展源码安装
- mysql源码安装
- redis源码安装
- memcached源码安装
- node.js二进制安装
- mongodb源码安装
- 一键安装脚本
设置ssh免密码登录远程服务器
由于操作需要频繁登录远程服务器,所以我这里设置了ssh免密码登录,参考将博客应用自动部署到线上服务器完整流程详解
生成私钥公钥文件
如果你的本地主机不包含 ~/.ssh/id_rsa
文件,可以通过运行如下命令生成:
ssh-keygen -t rsa
每次执行上述命令后产生的私钥文件都不同,如果 ~/.ssh/id_rsa
文件已经存在,会提示是否覆盖,选择 n
不覆盖,如果该文件不存在则会生成该文件(提示需要输入的地方都可以留空)。
运行该命令会生成 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
两个文件,分别存储私钥和公钥,接下来我们通过 scp
命令将公钥文件拷贝到远程服务器的 .ssh
目录下(如果服务器上没有该目录,先创建这个目录):
scp ~/.ssh/id_rsa.pub root@your-server-ip:~/.ssh
记得将命令中的 your-server-ip
换成你的服务器公网 IP。
将公钥添加到授权KEY
登录到远程服务器,运行如下命令将公钥文件内容追加到 ~/.ssh/authorized_keys
文件:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果服务器上没有 ~/.ssh/authorized_keys
这个文件,可以运行如下命令将 ~/.ssh/id_rsa.pub
文件拷贝过来:
cp id_rsa.pub authorized_keys
接下来,我们在本地主机测试通过 ssh 登录远程服务器:
nginx源码安装
1.使用wget获取nginx源码
先使用命令创建nginx文件夹mkdir /usr/local/nginx && cd /usr/local/nginx
再使用wget获取nginx源码,下载1.16.1版本wget http://nginx.org/download/nginx-1.16.1.tar.gz
2.安装nginx依赖包
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
3.解压压缩包
tar -zxvf nginx-1.16.1.tar.gz
4.编译安装nginx
cd nginx-1.16.1 && ./configure --prefix=/usr/local/nginx
编译安装make && make install
5.检查配置文件时否正确、查看版本
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -V
6.启动nginx
/usr/local/nginx/sbin/nginx
通过ps -ef | grep nginx
查看nginx已成功启动
通过浏览器直接访问ip
7.其他配置
添加nginx环境变量
在/etc/profile文件末尾添加export PATH=$PATH:/usr/local/nginx/sbin
再执行source /etc/profile
命令,执行nginx -t查看环境变量是否生效
php源码安装
1.使用wget获取php源码
先使用命令创建php文件夹mkdir /usr/local/php && cd /usr/local/php
再使用wget下载php7.2源码
wget https://www.php.net/distributions/php-7.2.34.tar.gz
2.安装php所需依赖
yum -y install libxml2* openssl* libcurl* libjpeg* libpng* freetype* libmcrypt*
3.解压php压缩包
tar -xzvf php-7.2.34.tar.gz
4.编译安装php
进入php目录cd php-7.2.34
php的安装目录指定,安装php的一些模块./configure --prefix=/usr/local/php --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo
配置完成后会提示: Thank you for using PHP.
编译和安装phpmake && make install
5.添加配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
6.启动php-fpm
/usr/local/php/sbin/php-fpm
如果直接启动的话,会报错,报错信息为没有www用户,所有需要创建
创建www用户
useradd www
usermod -G www www
再执行/usr/local/php/sbin/php-fpm
命令,没有报错
再通过ps -ef | grep php
查看进程是否存在
7.其他配置
添加环境变量,在/etc/profile文件末尾追加 export PATH=$PATH:'/usr/local/php/bin/'
然后执行source /etc/profile
使修改生效
再命令中使用php -v,显示php版本则环境变量生效
添加php配置文件cp /usr/local/php/php-7.2.34/php.ini-development /usr/local/php/etc/php.ini
修改nginx.conf配置文件,在server代码中添加以下信息
location ~ \.php$ {
root /www/test;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root;
include fastcgi_params;
}
重启nginx服务
使用命令创建目录mkdir /www/test
在该目录下创建index.php文件,文件内容为
<?php
phpinfo();
?>
通过浏览器访问index.php,发现出错,无权限访问
查看nginx错误日志cat /usr/local/nginx/logs/error.log
php.ini
配置文件中,设置cgi.fix_pathinfo=1
重载php服务,并重新启动nginx
使用浏览器访问,可成功访问到页面,表示nginx收到请求已转发给php-fpm处理
php扩展源码安装
以swoole扩展为例
1.获取swoole扩展源码cd /usr/local/php && wget wget https://github.com/swoole/swoole-src/archive/v4.5.6.tar.gz
2.解压压缩包
tar -zxvf v4.5.6.tar.gz
3.编译安装
进入文件目录cd swoole-src-4.5.6
使用安装 php 时生成的 phpize 来生成 configure 配置文件/usr/local/php/bin/phpize
执行错误Cannot find autoconf. Please check your autoconf installation and the
需要安装autoconf,使用命令yum install autoconf -y
安装完成后重新执行/usr/local/php/bin/phpize
执行配置./configure --with-php-config=/usr/local/php/bin/php-config
安装编译make && make install
4.修改php.ini配置
这里使用绝对路径,加入内容extension=/usr/local/php/swoole-src-4.5.6/modules/swoole.so
这里遇到了个坑,php.ini没有放对位置,使用命令php --ini
查看php.ini检索位置,并把php.ini文件放在/usr/local/php/lib
目录下,才会生效
5.重启php,nginx服务
查看phpinfo(),看到swoole扩展已开启
mysql源码安装
1.使用wget获取mysql源码
先使用命令创建mysql文件夹mkdir /usr/local/mysql && cd /usr/local/mysql
获取mysql源码wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.30.tar.gz
2.安装mysql所需依赖
yum install -y cmake libaio gcc-c++ bison-devel ncurses-devel bison perl perl-devel perl perl-devel ncurses-devel
3.解压压缩包
添加mysql组及用户groupadd mysql
useradd -r -g mysql mysql
解压压缩包tar -zvxf mysql-boost-5.7.30.tar.gz
4.编译安装mysql
进行目录cd mysql-5.7.30
cmake编译cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_BOOST=boost -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
设置权限chown -R root /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data
编译安装,时间可能会比较久make && make install
5.初始化mysql
进入bin目录cd /usr/local/mysql/bin
./mysqld --user=www --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
初始化完成,并给root用户生成了临时密码,这里要把密码记录下来,稍后需要使用
复制mysql服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
执行service mysqld start
启动mysql服务会报错
因为没有路径也没有权限,所以创建此路径并授权给mysql用户
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
再次执行service mysqld start
依然报错
var/lib/mysql目录不存在,首要先创建:mkdir /var/lib/mysql
并添加权限为777chmod 777 /var/lib/mysql
删除/etc/my.cnf文件rm -f /etc/my.cnf
最后执行service mysqld start
,启动成功
6.登录mysql
进入mysql bin目录cd /usr/local/mysql/bin
执行./mysql -uroot -p
登录
登录后需要修改密码
set password for root@localhost = password('123456');
赋予权限并设置可以远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
刷新权限
FLUSH PRIVILEGES;
7.其他配置
添加环境变量,在/etc/profile文件末尾追加 export PATH=$PATH:'/usr/local/mysql/bin'
然后执行source profile
再命令中使用mysql –version,显示mysql版本则环境变量生效
redis源码安装
1.使用wget获取redis源码
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
2.在/usr/local下新建文件夹redis将redis-3.0.0.tar.gz拷贝到/usr/local/redis中
mkdir /usr/local/redis && cp /root/redis-5.0.3.tar.gz /usr/local/redis/redis-5.0.3.tar.gz
3.解压压缩包
chmod +x /usr/local/redis/redis-5.0.3.tar.gz && tar -zxvf /usr/local/redis/redis-5.0.3.tar.gz
4.进入解压后的目录中进行编译 make
cd /usr/local/redis/redis-5.0.3 && make
5.完成编译后进行安装
make PREFIX=/usr/local/redis install
安装完后会在/usr/local/redis下出现一个bin目录,bin目录中就是我们要使用的内容
6.启动redis服务
前端模式启动服务端:./redis-server
可以再开一个窗口启动客户端进行存储数据测试:./redis-cli
后端模式启动服务端
启动后自动在后台运行,与ssh窗口是否关闭无关(需要配置)
修改redis.conf配置文件 redis.conf是redis的配置文件,redis.conf在redis源码目录。
将redis.conf配置文件拷贝到bin目录下,切换到bin目录下
cp /usr/local/redis/redis-5.0.3/redis.conf /usr/local/redis/bin
发现权限为只读,修改redis.conf的权限
chmod 777 redis.conf
由于配置文件中默认为前端模式启动,需手动编辑修改配置文件中内容:vi redis.conf ,找到daemonize no
修改为yes,即是用后端模式启动
进行后端模式启动:./redis-server redis.conf
然后查看是否成功启动服务:ps -aux|grep redis
至此,成功的采用后端模式启动了redis服务,无论ssh窗口是否关闭,服务将一直在后台自动运行
7.停止redis服务
方式一:查找到执行的redis服务的进程号然后强制停止服务(不建议采用此方式,线上正在存储数据时采用强制关闭会丢失数据)
方式二:使用客户端工具关闭:./redis-cli shutdown
8.其他redis配置
设置密码,找到requirepass这一行,修改为你想要的登录密码
设置完成密码后,需要通过命令参数登录
./redis-cli -h 127.0.0.1 -p 6379 -a passwd
这里会发出警告,表示密码不安全,也可通过直接输入./redis-cli
登入后进行密码认证,若没有密码认证,将无权限操作任何指令
配置redis外网访问,首先要防火墙开启redis默认端口6379
在配置文件中,修改bind配置为0.0.0.0表示所有ip都可以访问,当然也可以指定ip
配置完成后,重启redis服务
使用redis客户端连接工具连接redis,可成功访问
memcached源码安装
1.使用wget获取memcached源码
先使用命令创建memcached文件夹mkdir /usr/local/memcached && cd /usr/local/memcached
获取memcached源码wget http://www.memcached.org/files/memcached-1.6.8.tar.gz
2.安装依赖
yum -y install libevent libevent-devel
3.解压压缩包
tar -zxvf memcached-1.6.8.tar.gz
4.编译安装
进入文件目录cd memcached-1.6.8
配置./configure --prefix=/usr/local/memcached --prefix=/usr/local/memcached/
编译安装make && make install
5.启动memcached
启动memcached/usr/local/memcached/bin/memcached -m 10 -u root &
查看memcached进程ps -ef | grep memcached
node.js二进制安装
1.使用wget获取node.js源码
先使用命令创建node文件夹mkdir /usr/local/node && cd /usr/local/node
再使用wget获取node.js源码
wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
2.解压压缩包
tar -xvf node-v14.15.0-linux-x64.tar.xz
3.配置环境
ln -s /usr/local/node/node-v14.15.0-linux-x64/bin/npm /usr/local/bin/
ln -s /usr/local/node/node-v14.15.0-linux-x64/bin/node /usr/local/bin/
4.检查是否安装成功
node -v
npm -v
mongodb源码安装
1.使用wget获取mongodb源码
先使用命令创建mongodb文件夹mkdir /usr/local/mongodb && cd /usr/local/mongodb
再使用wget获取mongodb源码
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.7.tgz
2.解压压缩包
使用命令解压
tar -zxvf mongodb-linux-x86_64-3.2.7.tg
修改解压文件名
mv mongodb-linux-x86_64-3.2.7 mongodb
3.添加配置文件
在/usr/local/mongodb新增数据库保存目录
mkdir /usr/local/mongodb/data
在/usr/local/mongodb下新增mongodb.conf配置文件,文件内容如下
dbpath = /usr/loacl/mongodb/data
#日志文件存放目录
logpath = /usr/local/mongodb/mongodb.log
#端口
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
nohttpinterface = true
添加环境变量
export PATH=$PATH:'/usr/local/mongodb/mongodb/bin' >> /etc/profile
然后执行让环境变量生效
source /etc/profile
4.启用mongodb服务
mongod -f /etc/local/mongodb/mongodb.conf
说明mongodb服务已正常开启
一键安装脚本
敬请期待!!!!
本作品采用《CC 协议》,转载必须注明作者和本文链接
chown -R mysql /usr/local/mysql/data
这个之前要先创建文件夹
还有 yum install openssl-devel