LNMP环境部署WordPress——使用源码包安装方式部署环境

news2024/12/26 22:24:59

目录

一.前提准备

二.源码安装Mysql 

1.MySQL类型

2.MySQL 版本说明

3.MySQL 安装方式

3.1 yum 安装

3.2 编译安装

3.3 二进制安装

3.4 rpm 安装

4. 编译安装MySQL5.7

4.1 清理安装环境

4.2 创建mysql用户

4.3 从官网下载tar包

4.4 安装编译工具

4.5 解压

4.6 编译安装

4.7 初始化 

4.8 配置环境变量 

4.9 启动mysql

4.10 登录mysql

4.11 systemctl启动方式

4.12 创建需要的库

三. 编译安装Nginx

1 清理Nginx安装环境

 2 创建Ngixn用户

3 官网下载 Nginx 安装包

4  安装编译 Nginx 依赖包

5 解压配置 Nginx 编译

6 Nginx 编译安装

7 测试 Nginx 是否安装成功

8 启动 Nginx 服务 

9 验证 Nginx 服务是否启动成功

10 系统添加 Nginx 服务

10.1 创建 nginx.service 文件

10.2 以 systemctl 方式启动 Nginx

10.3 查看 Nginx 服务状态

10.4  验证 Nginx 服务是否成功启动

10.5 配置 Nginx 服务自动启动

 四. 编译安装 PHP

 1. 清理环境,防止冲突

2. 安装编译环境依赖包

3. 安装编译 PHP 依赖库

4. 编译安装 PHP

4.1 下载 PHP 源码包

4.2 配置 Php 编译

4.3 编译安装 PHP

5. 创建 php.ini 配置文件

6. 设置php-fpm配置文件

7. 启动 php-fpm

8. 检查 php-fpm 是否成功启动

9. 配置 php-fpm 系统环境变量

10. 重载环境变量

11. 配置 php-fpm 开机自启动

12. 重载 systemctl 配置

13. 停止 php-fpm

14. 用 systemctl 启动 php-fpm

15. 设置 php-fpm 开机启动

16. php-fpm 管理命令

 五. Nginx 配置支持PHP

1、添加 Nginx 配置

2、添加 PHP 探测文件

3. 验证 Nginx 关联 php-fpm 

3.1 重启 php-fpm

3.2 重载 Nginx 配置

 3. 测试PHP与数据库连通性

4. 访问验证

六. 基于LAMP环境上线WordPress


一.前提准备

1.安装一个centos7虚拟机

2.配置yum源(这里我用阿里源)

3.关闭防火墙和SEliunx

4.下载常用的工具包 

5.设置一个静态IP(可选操作)

这些初始化操作都是常用的,这里不在赘述。本文重点学习使用源码安装mysql,nginx,php。

二.源码安装Mysql 

1.MySQL类型

  • MySQL Community Server

MySQL Community Server是社区版本,开源免费,但不提供官方技术支持。MySQL Community Server也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。

  • MySQL Enterprise Edition

MySQL Enterprise Edition企业版本,需付费,可以试用30天。

  • MySQL Cluster

MySQL Cluster集群版,开源免费。可将几个MySQL Server封装成一个Server。MySQL Cluster CGE 高级集群版,需付费。

2.MySQL 版本说明

以 MySQL 5.7.27 这个版本的版本号为例说明每个数字含义。

第一个数字(5)主版本号:文件格式改动时,将作为新的版本发布;
第二个数字(7)发行版本号:新增特性或者改动不兼容时,发行版本号需要更改;
第三个数字(27)发行序列号:主要是小的改动,如bug的修复、函数添加或更改、配置参数的更改等。

3.MySQL 安装方式

3.1 yum 安装

优点:操作简单易用。不用单独下载,服务器可以联网且yum源没有问题即可(可以选择国内的163/阿里源)

3.2 编译安装
5.1.X 及之前的版本是通过下载tar包以后解压后进入软件包解压路径。然后./configure、make、make install
​
5.4.X 到 5.7.X 通过下载tar包以后解压后进入软件包解压路径。然后 cmake、make、make install(cmake需要提前安装)
​
优点:可以定制功能特性。
3.3 二进制安装
官方下载二进制包,解压初始化即可直接使用不用安装。
3.4 rpm 安装
需要提前下载 rpm 软件包上传到服务器系统本地。
使用 rpm 或者 yum 命令直接安装

4. 编译安装MySQL5.7

4.1 清理安装环境
#用于完全卸载 Mariadb 数据库并清理相关的文件和用户,清理系统可能带有的残留
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql
4.2 创建mysql用户
#这两个操作选择其中一个就可以拉

[root@localhost ~]# useradd mysql -M -s /bin/nologin
-M 不创建用户的家目录
[root@localhost ~]# useradd -r mysql  -s /bin/nologin
-r 选项表示创建一个系统用户,也被称为系统账户。使用useradd -r命令创建系统用户时,会自动分配一个较高的用户ID(UID)和组ID(GID),并且不会为其创建家目录。
4.3 从官网下载tar包
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
4.4 安装编译工具
[root@localhost ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf

[root@localhost ~]# yum -y install cmake
4.5 解压
[root@localhost ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
4.6 编译安装

cd 解压的mysql目录 

[root@localhost ~]# cd /usr/local/mysql-5.7.27/
[root@localhost mysql-5.7.27]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

 参数详解:


-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键

[root@localhost mysql-5.7.27]# make && make install

这个编译安装的时间会很长,一般20-30分钟,耐心等待。 

 注:如果安装出错,想重新安装:
        不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt

4.7 初始化 

初始化,只需要初始化一次

[root@localhost mysql-5.7.27]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql.mysql .
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data    
#初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码

4.8 配置环境变量 
[root@localhost mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@mysql-server ~]# vim /etc/my.cnf  
#如果打开文件有内容将文件中所有内容注释掉,在添加如下内容

[client]
port = 3306                      # 默认连接端口
socket = /tmp/mysql.sock         # 用于本地连接的socket套接字
default-character-set = utf8     # 编码

[mysqld]
port = 3306                      # 服务端口号,默认3306
user = mysql                     # mysql启动用户
basedir = /usr/local/mysql       #指定安装目录
datadir = /usr/local/mysql/data  #指定数据存放目录
socket = /tmp/mysql.sock         # 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
character_set_server = utf8      # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)

4.9 启动mysql
[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &

#启动之后再按一下回车!即可后台运行
4.10 登录mysql

[root@localhost mysql]# mysql -u root -p'TM>#jcd_P63n'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>exit                           #退出
Bye

 修改密码为1234方便登录用

[root@localhost mysql]# mysqladmin -uroot -p'TM>#jcd_P63n' password '1234'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
4.11 systemctl启动方式

拷贝启动脚本到/etc/init.d/目录下,并改名mysqld

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10576 5月  11 13:05 /etc/init.d/mysqld

重新加载系统服务

[root@localhost mysql]# systemctl daemon-reload

启动MySQL数据库,并检查端口监听状态

[root@localhost mysql]# systemctl stop mysqld 
[root@localhost mysql]# systemctl start mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      32289/mysqld        
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (exited) since 六 2024-05-11 13:05:53 CST; 58s ago
     Docs: man:systemd-sysv-generator(8)

5月 11 13:05:53 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
5月 11 13:05:53 localhost.localdomain mysqld[32394]: Starting MySQL SUCCESS!
5月 11 13:05:53 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.
5月 11 13:05:53 localhost.localdomain mysqld[32394]: 2024-05-11T05:05:53.769772Z mysqld_safe A mysqld process already exists
[root@localhost mysql]#
4.12 创建需要的库
[root@localhost mysql]# mysql -u root -p1234
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.27 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on *.* to 'remote'@'%' identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
[root@localhost ~]# 

三. 编译安装Nginx

1 清理Nginx安装环境
yum remove nginx -y
userdel -r nginx
rm -rf /etc/nginx*
rm -rf /var/lib/nginx*
 2 创建Ngixn用户
[root@localhost ~]# useradd -s /sbin/nologin -M nginx
3 官网下载 Nginx 安装包
[root@localhost ~]# wget https://nginx.org/download/nginx-1.22.1.tar.gz
4  安装编译 Nginx 依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
5 解压配置 Nginx 编译
[root@localhost ~]# tar zxvf nginx-1.22.1.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/nginx-1.22.1/
[root@localhost nginx-1.22.1]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid
6 Nginx 编译安装
[root@localhost nginx-1.22.1]#  make && make install
7 测试 Nginx 是否安装成功
[root@localhost nginx-1.22.1]# nginx -V
nginx version: nginx/1.22.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/nginx_error.log --http-log-path=/var/log/nginx/nginx_access.log --pid-path=/usr/local/nginx/run/nginx.pid
[root@localhost nginx-1.22.1]# 
8 启动 Nginx 服务 
[root@localhost ~]# /usr/sbin/nginx
9 验证 Nginx 服务是否启动成功
[root@localhost ~]# netstat -lntp | grep nginx 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      35664/nginx: master 
10 系统添加 Nginx 服务

 以 systemd 形式添加

10.1 创建 nginx.service 文件
[root@localhost ~]# vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间


注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

10.2 以 systemctl 方式启动 Nginx
[root@localhost ~]# pkill nginx
[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl start nginx
10.3 查看 Nginx 服务状态
[root@localhost ~]# ps -ef | grep nginx
root      35721      1  0 14:49 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     35722  35721  0 14:49 ?        00:00:00 nginx: worker process
root      35724   1460  0 14:49 pts/0    00:00:00 grep --color=auto nginx
10.4  验证 Nginx 服务是否成功启动
[root@localhost ~]# netstat -ntlp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      35721/nginx: master 
10.5 配置 Nginx 服务自动启动
[root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

 四. 编译安装 PHP

 1. 清理环境,防止冲突
[root@localhost ~]# yum -y remove php
已加载插件:fastestmirror
参数 php 没有匹配
不删除任何软件包
[root@localhost ~]# userdel -r php
userdel:用户“php”不存在
2. 安装编译环境依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make
3. 安装编译 PHP 依赖库
[root@localhost ~]# yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel 
4. 编译安装 PHP
4.1 下载 PHP 源码包
[root@localhost ~]# wget https://www.php.net/distributions/php-7.3.6.tar.gz
[root@localhost ~]# wget https://libzip.org/download/libzip-1.3.2.tar.gz
[root@localhost ~]# tar -xf libzip-1.3.2.tar.gz
[root@localhost ~]# cd  libzip-1.3.2/
[root@localhost libzip-1.3.2]# ./configure


[root@localhost libzip-1.3.2]# make && make install
4.2 配置 Php 编译
[root@localhost libzip-1.3.2]# cd ~
[root@localhost ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/

[root@localhost ~]# cd /usr/local/php-7.3.6/
[root@localhost php-7.3.6]# ./configure \
    --prefix=/usr/local/php7 \
    --with-config-file-path=/usr/local/php7 \
    --with-config-file-scan-dir=/usr/local/php7/php.d \
    --enable-mysqlnd \
    --with-mysqli \
    --with-pdo-mysql \
    --enable-fpm \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --with-gd \
    --with-iconv \
    --enable-xml \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --enable-mbregex \
    --enable-mbstring \
    --enable-ftp \
    --enable-zip \
    --with-openssl \
    --with-zlib \
    --with-libzip \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-soap \
    --without-pear \
    --with-gettext \
    --enable-session \
    --with-curl \
    --with-jpeg-dir \
    --with-freetype-dir \
    --enable-opcache

参数解释: 

--prefix=/usr/local/php7         # 配置安装目录
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
--enable-sockets                 # 开启 socket 
--enable-fpm                     # 启用 fpm 扩展
--enable-cli                     # 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring                 # 启用 mbstring 库
--enable-pcntl                     # 启用 pcntl (仅 CLI / CGI)
--enable-soap                     # 启用 soap 
--enable-opcache                 # 开启 opcache 缓存
--disable-fileinfo                 # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath                  # 禁用在搜索路径中传递其他运行库。
--with-mysqli                     # 启用 mysqli 扩展
--with-pdo-mysql                 # 启用 pdo 扩展
--with-iconv-dir                 # 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl                     # 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=nginx             # 设定 fpm 所属的用户 
--with-fpm-group=nginx             # 设定 fpm 所属的组别
--with-curl                     # 启用 curl 扩展
--with-mhash                     # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
--with-gd                         # 启用 GD 图片操作 扩展
--with-jpeg-dir                 # 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir                     # 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir             # 开启 freetype 

# xml
--enable-simplexml                 # 启用对 simplexml 支持
--with-libxml-dir                 # 启用对 libxml2 支持

--enable-debug                     # 开启 debug 模式

4.3 编译安装 PHP
[root@localhost php-7.3.6]# make -j 4 && make install
#这里make -j 4 是指定4个核去执行,多则快

这里也会很慢,大约要30分钟。

5. 创建 php.ini 配置文件
[root@localhost php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini

#php的Session存储目录,将这行的注释 ; 号给删除即可,然后保存退出
[root@localhost php-7.3.6]# vim /usr/local/php7/etc/php.ini +1371 

6. 设置php-fpm配置文件
[root@qfedu.com php-7.3.6]# cd /usr/local/php7/etc
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# vim php-fpm.conf +17

#将注释取消并修改
pid = /var/run/php-fpm.pid

# php-fpm连接文件
[root@localhost etc]# cd /usr/local/php7/etc/php-fpm.d/

#php-fpm子配置文件
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# vim www.conf

检查这个文件里对不对,分别在23,24,36行,具体可见下图:
user = nginx
group = nginx
listen = 127.0.0.1:9000

7. 启动 php-fpm
[root@localhost php-fpm.d]# /usr/local/php7/sbin/php-fpm
8. 检查 php-fpm 是否成功启动
[root@localhost php-fpm.d]# ps aux | grep php-fpm
root      46286  0.0  0.1 222276  4436 ?        Ss   16:04   0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx     46287  0.0  0.1 222276  3932 ?        S    16:04   0:00 php-fpm: pool www
nginx     46288  0.0  0.1 222276  3936 ?        S    16:04   0:00 php-fpm: pool www
root      46290  0.0  0.0 112824   980 pts/3    R+   16:04   0:00 grep --color=auto php-fpm

        若看到相关进程,则证明启动成功。查询进程时,进程是以 nginx 用户身份执行的  

9. 配置 php-fpm 系统环境变量
[root@localhost php-7.3.6]# cd 
[root@localhost ~]# vim /etc/profile

#在配置文件末尾新增如下两行
export PHP_HOME=/usr/local/php7
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
10. 重载环境变量
[root@localhost ~]# source /etc/profile

使用 echo $PATH 命令查看环境变量中是否已经加入了相关的路径 

11. 配置 php-fpm 开机自启动
[root@localhost ~]# vim /lib/systemd/system/php-fpm.service

[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php7/sbin/php-fpm
ExecStop=/bin/pkill -9 php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target

 [Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间


注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

12. 重载 systemctl 配置
[root@localhost ~]# systemctl daemon-reload
13. 停止 php-fpm
[root@localhost ~]# pkill php-fpm
14. 用 systemctl 启动 php-fpm
[root@localhost ~]# systemctl start php-fpm.service
15. 设置 php-fpm 开机启动
[root@localhost ~]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
16. php-fpm 管理命令
[root@localhost ~]# systemctl stop php-fpm.service 			# 停止服务
[root@localhost ~]# systemctl restart php-fpm.service 		# 重新启动服务
[root@localhost ~]# systemctl status php-fpm.service		# 查看服务当前状态
[root@localhost ~]# systemctl disable php-fpm.service 		# 停止开机自启动

 五. Nginx 配置支持PHP

1、添加 Nginx 配置
[root@localhost ~]# cd /etc/nginx/
[root@localhost nginx]# vim nginx.conf +34

#从此行处添加如下内容

server
{
	listen 80;
	server_name localhost;
	index index.html index.htm index.php;
	root /usr/local/nginx/html;
	location ~ \.php$
	{
		include fastcgi_params;        #指定nginx连接php-fpm的常量
		fastcgi_pass 127.0.0.1:9000;    #连接php-fpm的地址和端口
		fastcgi_index index.php;        #指定默认页面
		fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #指定站点根目录
	}
}
2、添加 PHP 探测文件
[root@localhost nginx]# cd /usr/local/nginx/html/

#在这个文件里添加如下内容
[root@localhost html]# vim index.php

<?php
phpinfo();
?>
3. 验证 Nginx 关联 php-fpm 
3.1 重启 php-fpm
[root@localhost html]# systemctl restart php-fpm.service
[root@localhost html]# ps -ef|grep php-fpm
root      46443      1  0 16:18 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx     46444  46443  0 16:18 ?        00:00:00 php-fpm: pool www
nginx     46445  46443  0 16:18 ?        00:00:00 php-fpm: pool www
root      46447  46401  0 16:18 pts/2    00:00:00 grep --color=auto php-fpm
3.2 重载 Nginx 配置
[root@localhost nginx]# systemctl restart nginx
[root@localhost nginx]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2024-05-11 16:36:02 CST; 4s ago
  Process: 46568 ExecStop=/usr/sbin/nginx -s quit (code=exited, status=0/SUCCESS)
  Process: 46573 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 46574 (nginx)
   CGroup: /system.slice/nginx.service
           ├─46574 nginx: master process /usr/sbin/nginx
           └─46575 nginx: worker process

5月 11 16:36:02 localhost.localdomain systemd[1]: Starting nginx...
5月 11 16:36:02 localhost.localdomain nginx[46573]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
5月 11 16:36:02 localhost.localdomain systemd[1]: Started nginx.
 3. 测试PHP与数据库连通性
[root@localhost ~]# cat >/root/test_mysql.php<<'EOF'
<?php
$servername = "localhost";
$username = "root";
$password = "1234";      // 这里输入数据库root用户的密码
$database = "wordpress"; // 这里替换为你实际的数据库名

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $database);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "PHP连接MySQL数据库成功";
?>
EOF

#测试连通性
[root@localhost ~]# php /root/test_mysql.php 
PHP连接MySQL数据库成功[root@localhost ~]# 


#连接成功就可以继续下一步拉

4. 访问验证

访问地址(这里将IP改成你的IP即可): 192.168.226.129ip:/index.php    

LNMP环境编译安装完成!

六. 基于LAMP环境上线WordPress

 项目源码包链接:https://pan.baidu.com/s/1HUoj36zgx-Q1HooxRy4_Tw?pwd=cgue 
提取码:cgue

博客版本:wordpress-6.5.2-zh_CN

下载好,拖动上传到虚拟机里,这里我上传到拉root目录里

[root@localhost ~]# unzip wordpress-6.5.2-zh_CN.zip

[root@localhost ~]# rm -rf /usr/local/nginx/html/*

#将代码拷贝到网站发布目录中
[root@localhost ~]# cp -r wordpress/* /usr/local/nginx/html/
[root@localhost ~]# systemctl restart nginx

测试访问 

浏览器输入192.168.226.129   (这里你输入你的IP哈)

回车即可访问

点击现在就开始!

然后按照图改写一下,注意数据库密码你设置的别输入错误

如果不能创建wp-config.php请手动创建

[root@localhost ~]# cd /usr/local/nginx/html/

#将提示框中的信息粘贴进去 
[root@localhost html]# vim wp-config.php 

  配置完在点运行安装程序,不然会返回到初始页面重来,如果没有提示这个页面就直接下一步即可

 

到此,使用源码搭建就成功拉,本文重点理解和收悉源码搭建的环境的流程与步骤。 

往期相关搭建快捷跳转:

网盘_游戏_博客自动化部署(Nginx多项目部署)-CSDN博客

基于LNMP部署wordpress-CSDN博客

WordPress网站上添加看板娘-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1663873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计软件有哪些?渲染软件篇(4),渲染100邀请码1a12

除了之前介绍的一些渲染软件&#xff0c;这次我们继续介绍。 1、渲染100(http://www.xuanran100.com/?ycode1a12) 渲染100是网渲平台&#xff0c;为设计师提供高性能的渲染服务。通过它设计师可以把本地渲染移到云端进行&#xff0c;速度快价格便宜&#xff0c;支持3dmax、v…

itextpdf 7生成pdf(主要是文字和表格,支持中文)

我们经常会遇到要导出pdf的需求,方式有很多种 今天的教程是采用itextpdf的方式生成pdf itextpdf是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF文档&#xff0c;而且可以将Html文件转化为PDF文件。 这里先展示一下效果图 首先在pom.xml中引入相关依赖 <dep…

目标检测——道路检测数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

K8S搭建

文章目录 K8S搭建配置要求 安装 Kuboard-Spray加载离线资源包规划并安装集群访问集群重启Kubernetes集群Worker节点不能启动许多Pod一直Crash或不能正常访问 containerd配置网络代理 常用的 kubectl 命令&#xff1a; K8S搭建 安装高可用的Kubernetes集群 配置要求 对于 Kub…

PG 检查点管理与Oracle的比较

之前介绍过&#xff0c;在任何数据库中&#xff0c;一条DML操作执行都需要在内存中执行&#xff0c;但当操作越来越多&#xff0c;总有时候内存会写满&#xff0c;这时候就需要把内存中的块写入到磁盘&#xff0c;释放内存&#xff0c;保存数据。 写入到磁盘这一步&#xff0c;…

基于 Satchmo 实现自定义捐款模块

1、问题背景 我在 Satchmo 中构建捐款模块时遇到了一些困难。我可以自定义 Satchmo 的产品模型&#xff0c;但无法找到任何与捐赠相关的内容。 我知道可以创建一个捐赠虚拟产品&#xff0c;但据我所知&#xff0c;这仍然需要预先设定金额&#xff08;例如 5 美元、10 美元等&…

Java并发处理

Java并发处理 问题描述:项目中业务编号出现重复编号 生成编号规则&#xff1a;获取数据库表最大值&#xff0c;然后再做1处理&#xff0c;即为新编号&#xff08;因为起始值是不固定的&#xff0c;还存在‘字符数据’格式&#xff0c;做了字典项可配置&#xff0c;所以不能直…

03、SpringBoot 源码分析 - SpringApplication启动流程三

SpringBoot 源码分析 - SpringApplication启动流程三 初始化基本流程SpringApplication的setListeners设置监听器deduceMainApplicationClass对端主启动类rungetRunListeners获取SpringApplicationRunListener监听器EventPublishingRunListener的构造方法SimpleApplicationEven…

js 数据格式转换,对象转数组,数组转对象

1.对象转数组 // 对象obj转换成数组格式 let obj { orgCode:分局编码, alertId:告警ID, name:告警名称 } let arr [] for(let key in obj) { console.log(11,key,obj[key]); // 定义一个对象&#xff0c;赋值 let o { id: key, // key是obj对象的键值 label: obj[key] …

LeetCode-2391. 收集垃圾的最少总时间【数组 字符串 前缀和】

LeetCode-2391. 收集垃圾的最少总时间【数组 字符串 前缀和】 题目描述&#xff1a;解题思路一&#xff1a;处理垃圾和路程单独计算。解题思路二&#xff1a;逆向思维&#xff0c;计算多走的路解题思路三&#xff1a;只记录&#xff0c;当前t需要计算几次 题目描述&#xff1a;…

Qt---窗口系统

一、QMainWindow 1. 菜单栏(最多有一个) QMenuBar *bar MenuBar(); SetMenuBar(bar); QMenu *fileMenu bar->addMenu("文件"); 创建菜单 QAction *newAction fileMenu->addAction("新建"); 创建菜单项 添加分割线fileMenu-…

如何使用联合体判断一个机器是大端还是小端

如何使用联合体判断一个机器是大端还是小端 #include<iostream> using namespace std; union Checker//联合体中的数据共享内存 {int val;char ch[2]; }; int main() {Checker checker;checker.val 0x1234;if (checker.ch[0] 0x34)//数组中的数据是由低地址往高地址存放…

构建NFS远程共享存储

nfs-server:10.1.59.237 nfs-web:10..159.218 centos7,服务端和客户端都关闭防火墙和selinux内核防火墙&#xff0c;如果公司要求开启防火墙&#xff0c;那需要放行几个端口 firewall-cmd --add-port2049/tcp --permanent firewall-cmd --add-port111/tcp --permanent firew…

yum、rpm相关命令-工具手册

1.rpm文件: 1.1安装rpm文件: rpm -ivh kde-select.rpm23 #--nodeps强制安装,无视环境缺少依赖的检查 rpm -ivh --nodeps kde-select.rpm #--force --replacefiles可以无视rpm的冲突去强制替换(如两个rpm的安装路径相同了会有冲突) rpm -ivh --nodeps --force --replacef…

空间复杂度与链表刷题

"一切的一切都是你自己在感应." 本文索引 空间复杂度复杂度实例实例1实例2实例3 链表题目1. 返回倒数第K个节点2. 链表的回文结构3. 相交链表4. 随机链表的复制5. 环形链表 总结: 前言: 本文主要探究空间复杂度与链表题目讲解 更多文章点击主页: 酷酷学!!! 如果此文对…

IDEA安装通义灵码(太好用了)

一、什么是通义灵码 1、 介绍 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;并针对阿里云 SDK/Op…

带你了解|大数据信用报告隔多久查一次比较好?

随着大数据技术的不断发展&#xff0c;大数据信用报告已经成为人们了解个人信用状况的重要途径之一。然而&#xff0c;对于隔多久查一次大数据信用报告比较好&#xff0c;却是一个需要认真考虑的问题&#xff0c;本文通过分析不同场景对大数据信用查询的需求进行介绍&#xff0…

新加坡首届ChatGPT-4提示词大赛冠军竟是华裔!

就是前几天&#xff0c;新加坡举办了首届ChatGPT-4的prompt比赛&#xff0c;没想到本次比赛的冠军竟然是我们华夏子民&#xff01; 这个冠军得主名叫张希拉。 她推出的一套名为CO-STAR的提示词框架 如何应用 CO-STAR 框架&#xff1a; (C) 上下文&#xff1a;为任务提供背景信…

一起长锈:3 类型安全的Rust宏(从Java与C++转Rust之旅)

讲动人的故事,写懂人的代码 故事梗概:在她所维护的老旧Java系统即将被淘汰的危机边缘,这位在编程中总想快速完事的女程序员,希望能转岗到公司内部使用Rust语言的新项目组,因此开始自学Rust;然而,在掌握了Rust编程知识之后,为了通过Rust项目组的技术面试,使得转岗成功而…

实现桌面动态壁纸——认识 WebView2 控件

目录 前言 一、什么是 WebView2 &#xff1f; 二、使用示例存储库 2.1 下载存储库 2.2 编译解决方案项目文件 2.3 运行示例程序 三、如何修改 WebView2 示例 本文来源于&#xff1a;https://blog.csdn.net/qq_59075481/article/details/138637909。 前言 上一节我们讲…