LNMP环境搭建+wordpres个人博客

目录

Mysql安装

Nginx安装

PHP安装

Wordpress部署


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博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值