基于CentOS7原生部署ng-php-wp


关于环境:

#最小化安装后开网

vi /etc/sysconfig/network-scripts

onboot——>yes

systemctl start network


#防火墙关闭
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

#bash补全
yum -y install bash-completion  #之后要bash一下刷新参数,使之生效

#wget等工具下载
yum -y install wget unzip


#我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的
#rpm包也不够丰富,很多时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题
yum -y install epel-release

#更新yum源
yum -y update

#安装nginx使能,安装php
yum -y install nginx
systemctl enable nginx  #设置nginx服务开机自启动
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm   #安装相关yum源
yum -y install php72w-tidy php72w-common php72w-devel php72w-pdo php72w-mysqlnd php72w-gd php72w-ldap php72w-mbstring php72w-mcrypt php72w-fpm php-redis #安装php相关包
systemctl enable php-fpm.service  #设置php服务开机自启动
systemctl start php-fpm.service  #启动php服务 
#安装熟悉的编辑工具,如vim
yum -y install vim 

配置NGINX文件

#编辑nginx配置文件(编辑前可以先进行备份)
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf
server {
 listen 80;  #如80端口修改为 8090
 listen [::]:80; #如80端口修改为 8090
 server_name _;
 root /usr/share/nginx/html;
 # Load configuration files for the default server block.
 include /etc/nginx/default.d/*.conf;
 error_page 404 /404.html;
 location = /404.html {
}
error_page 500 502 5503 504 /50x.html;
 location = /50x.html {
}
#红色部分为需要增加的内容
location / { 
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}


#检查配置文件是否有问题,注意大括号的层级关系
nginx -t -c /etc/nginx/nginx.conf #返回OK successful
systemctl start nginx

nginx常见配置问题

#nginx: [emerg] bind() to 0.0.0.0:8090 failed (13: Permission denied)尝试
vim /etc/selinux/config
reboot
systemctl status nginx
#验证服务是否开启IP:8090

着手部署wordpress

cd /usr/share/nginx/html/
wget https://wordpress.org/wordpress-5.4.10.zip
unzip wordpress-5.4.10.zip
chmod -R 777 wordpress 
#修改wordpress配置文件
cd wordpress
cp wp-config-sample.php wp-config.php

mysql数据库服务安装

#下载安装包,如果选用云厂商的RDS即可免于此步骤
#官网下载,社区,选对应的版本。wget。
# 查看是否自带mariadb数据库
yum list installed grep mariadb64

# 卸载mariad
yum list installed grep mariadb_64





cd /usr/local
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

tar -xvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql-5.7
cd mysql-5.7
mkdir conf
cd conf
vim my.cnf
#以下为配置文件内容
[client]
port=3306

[mysql]
default-character-set=utf8

[mysqld]
# MySQL服务器将监听的TCP/IP端口
port=3306

# 安装目录的路径。 通常相对于此解析所有路径。
basedir=/usr/local/mysql-5.7

# 数据库根目录的路径
datadir=/usr/local/mysql-5.7/data

# 创建新模式或表且未定义任何字符集时将使用的默认字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# MySQL服务器允许的最大并发会话数。
# 这些连接中的一个将保留给具有超级权限的用户,以允许管理员登录,即使已达到连接限制。
max_connections=500

# soket文件,本地连接时使用
socket=/usr/local/mysql-5.7/mysql.sock

# 建议禁用符号链接以防止各种安全风险
symbolic-links=0

# 错误日志
log-error=/usr/local/mysql-5.7/logs/mysql_log.log

# pid文件
pid-file=/usr/local/mysql-5.7/mysqld.pid

# 表名不区分大小写
lower_case_table_names=1

# 设置sql_mode
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION## 用户组及初始化
#添加mysql用户名
adduser mysql
#给mysql账户设置密码
passwd mysql  
#建工作组 
groupadd mysql
#新建用户同时增加工作组
useradd -g mysql mysql #注::-g 所属组 -d 目录 -s 所用的SHELL
#授权
chown -R mysql.mysql /usr/local/mysql-5.7 
#初始化 
#切换目录
cd /usr/local/mysql-5.7/bin
#初始化配置
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data 
#成功root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option

设置开机启动

vim /usr/lib/systemd/system/mysql.service    #编辑服务文件

[Unit]
Description=MySQL Server 5.7
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql-5.7/bin/mysqld --defaults-file=/usr/local/mysql-5.7/conf/my.cnf
LimitNOFILE = max_open_files


#加入开机自启动
systemctl enable mysql.service
#服务的启动/停止/刷新配置文件/查看状态
#启动mysql服务
systemctl start mysql.service  
#停止服务
systemctl stop mysql.service       

 #重新启动服务
systemctl restart mysql.service      

#查看所有已启动的服务
systemctl list-units --type=service    
#查看服务当前状态
systemctl status mysql.service         

 #设置开机自启动
systemctl enable mysql.service     

 # 停止开机自启动
systemctl disable mysql.service  

#启动时报错Failed to start mysql.service: Unit not found
find / -name mysql.server
cp /usr/local/mysql-5.7/support-files/mysql.server /etc/init.d/mysql
#查找basedir、datadir值,复制至/etc/init.d/mysql
cat /usr/local/mysql-5.7/conf/my.cnf
#basedir=/usr/local/mysql-5.7
#datadir=/usr/local/mysql-5.7/data

vim /etc/init.d/mysql
粘贴

service mysql start

启动连接

#启动mysql服务
systemctl start mysql.service 
#连接mysql服务
cd /usr/local/mysql-5.7/bin
./mysql -uroot -h 127.0.0.1 -p       

#No database selected
use mysql
show databases;

#设置密码
update user set authentication_string=PASSWORD("kingso616") where user='root';
#刷新
flush privileges;

#设置允许远程登录

update user set host='%' where user='root';
#刷新
flush privileges;


##创建

CREATE DATABASE 数据库名;
drop database 数据库名;

继续修改WP的配置文件

vim /usr/share/nginx/html/wordpress/wp-config.php
define( 'DB_NAME', 'database_name_here' );    #数据库

/** MySQL database username */
define( 'DB_USER', 'username_here' );   #ROOT户名密码

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );    #ROOT户名密码

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );    #IP:端口,可以为内网DNS

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );


#此处加三行
define("FS_METHOD","direct");
define("FS_CHMOD_DIR",0777);
define("FS_CHMOD_FILE",0777);


/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );




#重启php、nginx服务
systemctl restart nginx php-fpm

网站带路径

REDIS的安装部署

mkdir /usr/local/redis
cd 之
yum install wget
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
make     #极大概率报错,因无gcc gcc-c++等 install之执行 make clean 后再次 执行 make ,再检查redis-x.x.x/src 目录下有没有 redis-server、redis-cli 和 /usr/local/bin下有没有
#若无,则把redis-x.x.x 文件夹删掉,再解压一次redis的压缩包,cd进入 redis-x.x.x 中, make 一下 即可
#也可能因无python3而报错
#You need tcl 8.5 or newer in order to run the Redis test
wget https://sourceforge.net/projects/tcl/files/Tcl/8.6.13/tcl8.6.13-src.tar.gz
tar -zxvf tc_tab
cd  /usr/local/tc_tab/unix/ 
./configure
make
make install 

以上多半会因为gcc版本过低而无法完成test,尝试用以下方式解决
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

make distclean 

make install  



# redis配置文件
cat redis.conf.bak | grep -v "#" | grep -v "^$" > redis.conf
daemonize #由 no 改成 yes,表示允许 Redis 在后台启动
 bind 127.0.0.1 前面添加 # 将其注释掉,默认情况下只允许本地连接,注释掉后外网就可以连接 Redis 了
修改 requirepass 配置,该配置表示登录该 Redis 实例所需的密码
由于上面我们配置了密码登录,这里将 protected-mode 设置为 no 关闭保护模式


redis-server    #默认配置启动 
redis-server conf/redis-6379.conf   # 指定配置文件启动 





#以前不好用,大概率起不来,用epel   yum 装

yum -y install epel-release

#更新yum源
yum -y update

systemctl start redis
systemctl status redis
systemctl stop redis 停止服务
ps -ef | grep redis 查看reids服务信息
systemctl enable redis redis开机启动        

vim /etc/redis.conf
注释 #bind 127.0.0.1
修改 protected-mode no
修改 daemonize yes
增加 requirepass password



systemctl restart redis

WP设置redis插件

#wp先安装插件
执行php -m|grep redis,如返回redis则继续,否则,执行yum -y install php-redis

vim /etc/php.ini  在任意位置增加 extension=redis

vim /usr/share/nginx/html/wordpress/wp-config.php
第二段
define("WP_REDIS_HOST",'10.16.16.136');
define("WP_REDIS_PORT",'6379');
define("WP_REDIS_PASSWORD",'kingso616');

文章作者: umikingso
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 umikingso !
  目录