LNMP项目实战-WordPress站点搭建

LNMP项目实战:

L:Linux    (centos 7.9)

N:Nginx   ( 1.18.0)

M:MySQL(5.7.30)

P:PHP     ( 7.4.19)

部署规划:nginx php-fpm 运行web服务,mysql存储

二进制源码包目录:/apps/

数据目录:/data/

1、二进制部署Mysql数据库

1、上传包解压

[root@yzil ~]# ls
mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@yzil ~]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 
[root@yzil ~]# mkdir /apps
[root@yzil ~]# mv mysql-5.7.30-linux-glibc2.12-x86_64 /apps/mysql
[root@yzil ~]# cd /apps/
[root@yzil apps]# ls
mysql

2、配置环境变量

[root@yzil apps]# vi /etc/profile.d/mysql.sh 
export PATH=/apps/mysql/bin:$PATH
[root@yzil apps]# source /etc/profile.d/mysql.sh 

3、配置数据目录和权限

[root@yzil ~]# mkdir -p /data/mysql
[root@yzil ~]# useradd -s /sbin/nglogin mysql
[root@yzil ~]# chown mysql.mysql /data/mysql
[root@yzil ~]# chown -R mysql.mysql /apps/mysql

4、初始化

[root@yzil ~]# mysqld --initialize --user=mysql --basedir=/apps/mysql --datadir=/data/mysql
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

[root@yzil ~]# yum install -y libaio
[root@yzil ~]# mysqld --initialize --user=mysql --basedir=/apps/mysql --datadir=/data/mysql
2021-05-28T01:49:48.868392Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-05-28T01:49:51.395018Z 1 [Note] A temporary password is generated for root@localhost: ejy#o+CyL1+C

#:后面密码记住

5、定义配置文件

[root@yzil ~]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/apps/mysql
datadir=/data/mysql
server_id=1
port=3306
socket=/tmp/mysql.sock
log-error=/var/log/mysql/mysql.log
character-set-server=utf8mb4

[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8mb4
prompt="\\r:\\m:\\s(\\u@\\h) [\\d]>\\_"
[root@yzil ~]# 

#创建日志目录,并修改权限

[root@yzil ~]# mkdir /var/log/mysql
[root@yzil ~]# chown mysql.mysql /var/log/mysql

6、启动

[root@yzil ~]# cd /apps/mysql/support-files/
[root@yzil support-files]# ./mysql.server start
Starting MySQL.                                            [  OK  ]
[root@yzil support-files]# ss -nlt
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      100                             127.0.0.1:25                                                  *:*                  
LISTEN     0      80                                   [::]:3306                                             [::]:*                  
LISTEN     0      100                                 [::1]:25                                               [::]:*                  
[root@yzil support-files]# 
[root@yzil ~]# mysql -uroot -p'ejy#o+CyL1+C'

10:30:16(root@localhost) [(none)]> alter user root@'localhost' identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)

[root@yzil ~]# mysql -uroot -predhat

7、开机启动,编写systemd配置文件

[root@yzil ~]# cd /apps/mysql/support-files/
[root@yzil support-files]# ./mysql.server stop
Shutting down MySQL..                                      [  OK  ]
[root@yzil ~]# vi /etc/systemd/system/mysqld.service
[root@yzil ~]# cat /etc/systemd/system/mysqld.service 
[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/apps/mysql/bin/mysqld --defaults-file=/etc/my.cnf

[root@yzil ~]# systemctl enable --now mysqld

8、创建数据库并授权
mysql> create database wordpress;

mysql> grant all privileges on wordpress.* to "wordpress"@'8.129.85.%' identified by 'redhat';

mysql> flush privileges;

2、编译安装nginx

[root@yzil ~]# yum install -y gcc gcc-c++ pcre pcre-devel pcre pcre-devel zlib zlib-devel automake make openssl openssl-devel

[root@yzil ~]# tar -xf nginx-1.18.0.tar.gz 
[root@yzil ~]# mv nginx-1.18.0 /apps/nginx

[root@yzil ~]# useradd -s /sbin/nologin nginx
[root@yzil ~]# chown -R nginx.nginx /apps/nginx

[root@yzil ~]# cd /apps/nginx/
[root@yzil nginx]# ./configure --prefix=/data/nginx \
> --user=nginx --group=nginx \
> --with-http_ssl_module \
> --with-http_stub_status_module

[root@yzil nginx]# make && make install

[root@yzil nginx]# /data/nginx/sbin/nginx -t
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
[root@yzil nginx]# 

#配置环境变量
[root@yzil ~]# vi /etc/profile.d/nginx.sh 
export PATH=$PATH:/data/nginx/sbin

[root@yzil ~]# source /etc/profile.d/nginx.sh

#配置开机启动
[root@yzil ~]# cat /etc/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
 
[Service]
Type=forking
PIDFile=/data/nginx/logs/nginx.pid
ExecStart=/data/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /data/nginx/logs/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /data/nginx/logs/nginx.pid)"
 
[Install]
WantedBy=multi-user.target
[root@yzil ~]# 

3、编译安装php

[root@yzil ~]# yum install -y libxml2 libxml2-devel
[root@yzil ~]# yum install -y libcurl libcurl-devel
[root@yzil ~]# yum install sqlite-devel

[root@yzil ~]# tar -xf php-7.4.19.tar.gz 

[root@yzil ~]# mv php-7.4.19 /apps/php

[root@yzil php]# ./configure --prefix=/data/php \
> --enable-fpm \
> --with-config-file-path=/data/php/conf \
> --with-zlib --with-curl \
> --enable-mysqlnd \ 
> --with-pdo-mysql=mysqlnd \
> --with-mysqli=mysqlnd \
> --with-openssl-dir \
> --disable-fileinfo 

[root@yzil php]# make && make install


#配置环境变量
[root@yzil ~]# vi /etc/profile.d/php.sh 
export PATH=$PATH:/data/php/bin
[root@yzil ~]# source /etc/profile.d/php.sh

4、配置nginx

[root@yzil ~]# vi /data/nginx/conf/nginx.conf

    server {
        listen       80;
        server_name  8.129.85.235;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /data/nginx/wordpress;
            index  index.php index.html index.htm;
        }


        location ~ \.php$ {
            root           /data/nginx/wordpress;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

 #隐藏nginx的版本号

[root@yzil ~]# vi /data/nginx/conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;     #添加这一行,隐藏nginx的版本号
}
#nginx上传文件大小限制
server {
     client_max_body_size 100m;  #默认值为1M
}

5、配置PHP

[root@yzil ~]# cp /data/php/php.ini-production /data/php/etc/php.ini

[root@yzil ~]# cd /data/php/etc/php-fpm.d/
[root@yzil php-fpm.d]#  cp www.conf.default www.conf

[root@yzil php-fpm.d]# vi www.conf

user = nginx
group = nginx

listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
pm.status_path= /pm_status
ping.path= /ping
ping.response= pong

[root@yzil etc]# cp php-fpm.conf.default php-fpm.conf


[root@yzil etc]# mkdir /data/php/log/   #日志文件路径

#检查语法并启动php-fpm:
[root@yzil ~]# /data/php/sbin/php-fpm -t
[30-May-2021 21:45:26] NOTICE: configuration file /data/php/etc/php-fpm.conf test is successful
[root@yzil ~]# 

#验证php-fpm:
[root@yzil ~]#/data/php/sbin/php-fpm -c /data/php/etc/php.ini

#php自带的开机启动配置文件
[root@yzil ~]# cp /apps/php/sapi/fpm/php-fpm.service /usr/lib/systemd/system/


[root@yzil ~]# vi /data/php/etc/php.ini 
expose_php = OFF   #不暴露版本号
upload_max_filesize = 200M    #最大上传文件
post_max_size = 800M    #最大上传数据大小

4、安装wordpress

[root@yzil ~]#tar -xf latest-zh_CN.tar.gz -C /data/nginx/
[root@yzil ~]#chown -R nginx.nginx /data/nginx/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_zilong

一分钱的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值