目录
Mysql安装
为了实验正常进行,我们关掉防火墙和selinux。
关闭防火墙
systemctl stop firewalld #临时关闭,重启后恢复
systemctl disable firewalld #永久关闭,重启不恢复
关闭selinux
setenforce 0 #临时关闭
getenforce #查看selinux状态
vim /etc/selinux/config进去配置文件,修改状态为disabled,永久关闭selinux。
首先去官网下载好mysql的压缩包,这里下载的是5.7版本,并上传到Linux系统上。
我们解压到自己想放的目录并修改名字为mysql,我这是放在/usr/local下面。
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar_2.gz -C /usr/local
cd /usr/local
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
考虑到数据库的庞大数据,我们需要选择一个空间充足的目录文件夹进行数据存放(图片实验环境选择根目录下创建)。
创建mysql用户并修改mysql目录组以及权限。
groupadd mysql
useradd -r -g mysql mysql #创建mysql用户并加入mysql组
chown mysql:mysql -R /data/mysql #修改目录用户及组所属,-R表示递归,该目录下所有
修改mysql的配置文件/etc/my.cnf,在修改前我们进行对它备份。
cd /etc
cp my.cnf my.cnf.bak
接着使用vim或vi对/etc/my.cnf文件进行编辑。
[mysqld]
port=3306
user=mysql
# mysql解压目录
basedir=/usr/local/mysql
# 数据存放目录
datadir=/data/mysql
# 跳过密码验证
# skip-grant-tables
socket=/data/mysql/mysql.sock
# 错误日志
log-error=/data/mysql/mysql.error
# mysql进程号
pid-file=/data/mysql/mysql.pid
# 日志记录慢查询SQL
slow_query_log = true
slow_query_log_file = /data/mysql/mysql_slow_query.log
long_query_time = 1
#记录没有使用index的查询记录
log-queries-not-using-indexes
# 配置mysqlbinlog
server-id = 1
log-bin = mysql-bin
binlog_format = row
# 设置binlog过期时间,过期自动删除
expire-logs-days = 30
max_binlog_size = 128M
log_bin_trust_function_creators = 1
开始初始化mysql
cd /usr/local/mysql
./bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
如果出现报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
那是因为新装的系统很多依赖都没装上,执行 yum install -y libaio 后再次进行初始化就没问题了。
初始化后会产生一个初始密码,我们通过执行命令cat /data/mysql/mysql.error来查看初始密码,即my.cnf配置文件中的错误日志log-error。
接着我们复制MySQL启动脚本到/etc/init.d/目录便于使用service mysql start启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
再添加到系统环境,如果不添加也可以,但是每次登录到需要到mysql的bin下,添加之后可以在任意目录使用mysql -uroot -p进行登录了,使用vim /etc/profile编辑文件在文件最后添加以下内容后,保存修改,使用source /etc/profile刷新配置文件
# /usr/local/mysql/bin为解压目录下mysql的bin所在
export PATH=$PATH:/usr/local/mysql/bin
接着我们使用命令 service mysql start 进行启动,使用初始密码登陆mysql,并进行密码修改。
mysql -uroot -p
# 然后输入临时密码就可以进入mysql了
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
开启远程访问权限:
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
select host,user from user; #查看
exit;
如果登陆时出现报错:
执行下面这条命令即可:
ln -s /data/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
#/data/mysql/mysql.sock是配置文件my.cnf的socket设置的路径
Nginx安装
下载nginx并解压:
tar -zxvf nginx-1.12.2.tar.gz
下载依赖库:
yum install -y pcre-devel pcre automake make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel
开始编译安装
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make && make install
安装完成后,创建nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
#-M(不创建家目录),/sbin/nologin(不登陆)
进去nginx的配置文件修改user参数:
cd /usr/local/nginx/conf
vim nginx.conf
#加入文件内容☟
user nginx nginx;
接着把nginx服务加入到系统服务,方便使用systemctl命令来启动nginx。
vim /lib/systemd/system/nginx.service
文件内容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动nginx:
设置nginx开机自启动:
systemctl enable nginx
开启nginx服务:
systemctl start nginx
执行命令查看nginx是否正常启动:ps aux | grep nginx
在浏览器测试是否可以访问:
http://localhost #localhost为nginx服务的地址
如果访问失败查看防火墙80端口是否在白名单和selinux是否关闭。
PHP安装
源码包的下载地址:
wget https://www.php.net/distributions/php-7.2.0.tar.gz
下载好后我们进行解压。
tar -zxvf php-7.2.0.tar.gz -C /usr/local/src
然后进入解压后的php-7.2.0目录。
cd /usr/local/src/php-7.2.0
安装php依赖包:
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel -y
在/usr/local/src/php-7.2.0目录下执行:
开始配置
./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath
开始编译
make && make install #此过程挺久的
安装好后可以看到这里有php目录。
接着将php包解压目录中的配置文件放置到正确位置(configure命令中的--with-config-file-path设置的位置)
cp php.ini-development /etc/php.ini
创建并设置php-fpm运行账号
groupadd www-data
useradd -M -g www-data -s /sbin/nologin www-data
然后进入到php的配置目录:
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:
所以我们进去到php-fpm.d的目录
cd php-fpm.d
cp www.conf.default www.conf #否则include匹配不到文件
vim www.conf #修改文件内容,设置运行账号
user=www-data #添加到www.conf文件内容里
group=www-data #添加到www.conf文件内容里
配置nginx支持php:
vim /usr/local/nginx/conf/nginx.conf
fastcgi的解析:
fastcgi_pass这个命令是指定将http代理到哪个fastcgi服务端接口。fastcgi_pass后面是填写fastcgi服务端地址的,这个地址可以是域地址,也可以是Uninx-域套接字。
fastcgi_index这个命令设置了fastcgi默认使用的脚本。就是当SCRIPT_FILENAME没有命中脚本的时候,使用的就是fastcgi_index设置的脚本。
fastcgi_param:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径
修改完成之后记得重启nginx服务:
systemctl start nginx
测试php:
进入/usr/local/nginx/html目录下,创建一个info.php文件测试。
文件内容如下:
<!DOCTYPE html>
<html>
<body>
<?php
phpinfo();
?>
</body>
</html>
然后在浏览器访问一下,http://localhost/info.php,如果能成功访问则成功。(localhost为nginx服务地址)
Wordpress部署
方便实验关闭防火墙和selinux,防火墙可放开80、3306端口。
登入mysq
mysql -uroot -p
创建wordpress数据库:
create database wordpress;
创建wordpress数据库账户并设置密码,授权允许远程:
create user admin@localhost identified by '123456';
use mysql;
update user set host = '%' where user = 'admin';
FLUSH PRIVILEGES;
#查看
select host,user from user;
exit;
授予wordpress数据库账户在wordpress数据库上所需权限
授予权限
GRANT ALL PRIVILEGES ON wordpress.* TO admin@'%';
刷新数据库缓存
FLUSH PRIVILEGES;
退出数据库
exit
下载wordpress包并解压。
把wordpress复制到/usr/local/nginx/html目录下。
浏览器登陆wordpress,输入地址:
http://localhost/wordpress #localhost为nginx服务本机地址
进入到wordpress页面,这里简单,根据自己配置的信息跟着步骤填写,最后完成部署,进入到wordpress博客。