centos7 安装 php,mysql,nignx,redis 加入systemctl命令


php 7.3.9 ,mysql 5.7.22,nignx 1.16.1,redis 4.0.14 , cmake 3.11.4, libzip 1.5.2
在这里插入图片描述

1、安装需要的扩展 和 创建角色
yum -y install libxslt libxslt-devel bzip2 bzip2-devel epel-release autoconf automake libaio libaio-devel ncurses-devel bison-devel git wget gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel curl-devel libxml2 libxml2-devel libjpeg-devel kernel-devel libpng libpng-devel freetype freetype-devel

groupadd www
useradd -r -g www -s /sbin/nologin -g www -M www
2、关闭以下所有进程 (此操作是是为了多次执行脚本之后,已开启某个进程,会导致后面安装出现错误)
killall php-fpm
killall mysql
killall nginx
killall redis-server
3、安装cmake (cmake是在php的lib安装和 mysql的安装中用到,如果cmake失败,会导致php和mysql的安装失败)
cd /usr/local/src || exit 1
curl -L -o /usr/local/src/cmake-3.11.4.tar.gz https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
tar xzf cmake-3.11.4.tar.gz
cd cmake-3.11.4 || exit 1
./configure  && make && make install
ln -s /usr/local/bin/cmake /usr/bin

注明:因为直接使用cmake系统回到默认的/usr/bin中去寻找,但是src中安装的cmake是在/usr/local/bin中 所以做了一个软连接

4、php安装做需要的的libzip扩展
cd /usr/local/src || exit 1
wget https://nih.at/libzip/libzip-1.5.2.tar.gz
tar xzf libzip-1.5.2.tar.gz
cd libzip-1.5.2 || exit 1
mkdir -p build 
cd build && cmake .. && make && make install
5、安装redis
cd /usr/local/src || exit 1
wget http://download.redis.io/releases/redis-4.0.14.tar.gz
tar xzf redis-4.0.14.tar.gz
cd redis-4.0.14 || exit 1
make PREFIX=/usr/local/redis install
cp redis.conf /usr/local/redis/bin
cd src
cp redis-server redis-cli redis-sentinel redis-benchmark redis-check-aof  /usr/local/redis/bin
mkdir /usr/local/redis/data
sed -i 's/dir \.\//dir \/usr\/local\/redis\/data/' /usr/local/redis/bin/redis.conf

将redis 加入自定义系统服务命令( systemctl )
创建一个文件 /usr/lib/systemd/system/redis.service 内容如下:

[Unit]
Description=redis service
After=network.target

[Service]
# Type=forking
PIDFile=/usr/local/redis/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

并且设置权限

chmod 755 /usr/lib/systemd/system/redis.service
6、nginx下载安装
cd /usr/local/src || exit 1
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xzf nginx-1.16.1.tar.gz
cd nginx-1.16.1 || exit 1
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx --pid-path=/usr/local/nginx/nginx.pid --with-select_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make && make install

将nginx加入自定义系统服务命令( systemctl )
创建一个文件/usr/lib/systemd/system/nginx.service 内容如下:

[Unit]
Description=The Nginx Server
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/local/nginx/nginx -t
ExecStart=/usr/local/nginx/nginx
ExecReload=/usr/local/nginx/nginx -s reload
ExecStop=/usr/local/nginx/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

并且设置权限

chmod 755 /usr/lib/systemd/system/nginx.service
7、mysql 下载安装
### 设置mysql目录的权限
groupadd mysql
useradd -r -g mysql -s /sbin/nologin -g mysql -M mysql
mkdir -p /usr/local/mysql/mysql_data
mkdir -p /usr/local/mysql/log/
mkdir -p /usr/local/mysql/pid/
chown -R :mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/log/
chown -R mysql:mysql /usr/local/mysql/pid/
cd /usr/local/src || exit 1
# # 下载源码包并解压,这里下载的是带boost的包,MySQL5.7.5之后需要boost库支持,所以这里直接下载带boost的源码包
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.22.tar.gz
tar xzf mysql-boost-5.7.22.tar.gz
cd mysql-5.7.22 || exit 1
rm -f CmakeCache.txt
cmake -DWITH_BOOST=boost -DMYSQL_TCP_PORT=3306 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/mysql_data -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install

创建文件配置文件 /etc/my.cnf 内容如下:

[client]
port=3306
default-character-set=utf8
socket=/tmp/mysql.sock 

[mysqld]
basedir=/usr/local/mysql
port=3306
datadir=/usr/local/mysql/mysql_data
socket=/tmp/mysql.sock 
log-error=/usr/local/mysql/log/mysql.log
explicit_defaults_for_timestamp=true
pid-file=/usr/local/mysql/pid/mysqld.pid

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

#初始化 mysql 数据库

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql

#添加环境变量

echo "export PATH=\"\$PATH:/usr/local/mysql/bin:/usr/local/bin:\$PATH\";" >> /etc/profile
source /etc/profile

将mysql加入自定义系统服务命令( systemctl )
创建一个文件/usr/lib/systemd/system/mysql.service 内容如下:

[Unit]
Description=MySQL Server
After=syslog.target network.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

PIDFile=/usr/local/mysql/pid/mysqld.pid
TimeoutSec=0

PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/pid/mysqld.pid
#注意这里要加上 --daemonize 
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

并且设置权限

chmod 755 /usr/lib/systemd/system/mysql.service
8、安装php
cd /usr/local/src || exit 1
wget https://www.php.net/distributions/php-7.3.9.tar.gz
tar xzf php-7.3.9.tar.gz
cd php-7.3.9 || exit 1
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php  --enable-exif --with-curl --with-freetype-dir --with-gd  --with-openssl --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
make && make install
cp php.ini-production /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/sbin/php-fpm /etc/init.d
cd /usr/local/php/etc/php-fpm.d
cp www.conf.default ./www.conf
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /usr/local/php/lib/php.ini
sed -i 's/user = nobody/user = www/' /usr/local/php/etc/php-fpm.d/www.conf
sed -i 's/group = nobody/group = www/' /usr/local/php/etc/php-fpm.d/www.conf
cd /usr/local/src/php-7.3.9/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/

并且设置权限

chmod 755 /usr/lib/systemd/system/php-fpm.service
修改 systemctl命令文件要重启才有效
systemctl daemon-reload
设置开机自启动
systemctl enable nginx.service 
systemctl enable mysql.service 
systemctl enable redis.service 
systemctl enable php-fpm.service
启动服务
systemctl start nginx.service
systemctl start mysql.service
systemctl start redis.service
systemctl start php-fpm.service

以上安装的数据库 登陆是不不需要密码的 所以如下是设置数据库密码,以及开启远程连接

# 以下是 修改账号和密码
# 连接MySql
# mysql -uroot -p
# 密码是空
# 修改数据库登录密码 注意密码字段是authentication_string 不是 password; mysql 5.7.14+ 版本更改密码, 原来user表的password变成了authentication_string
# update user set authentication_string=password('123456') where user='root';
# 刷新权限
# flush privileges;
# 允许远程登录
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'; 
# FLUSH PRIVILEGES;
# 开放3306端口
# systemctl start firewalld
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload
# 最后一步
# 云服务器安全组 配置3306端口
# 以上完成成功 之后  Navicat就可以连接数据库  

此时已经安装完毕,检查php mysql redis nginx是否都已启动成功!!

本人对linux并不是特别熟悉,如代码有不合适,或者错误的地方,欢迎私信我提出修改,或+QQ 841534523

完整版本的shell代码 , 可以查看本人的博客文章哦 。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值