centos7.3源码安装常用软件及相关配置合集
之前在开发过程中,都是使用 yum 或者宝塔的方式直接安装相关的软件,都是一些比较傻瓜式的操作,所以想对常用的开发软件有个比较深入的理解,所以最近用源码安装的方式重新搭建了一下开发环境,折腾一下,对于学习还是有所帮助的,在此记录一下相关操作。
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
一键安装脚本#
敬请期待!!!!