目录
一.前提准备
二.源码安装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
续篇——源码部署LAMP环境上线项目——禅道项目-CSDN博客
一.前提准备
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 net-tools
[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
配置完在点运行安装程序,不然会返回到初始页面重来,如果没有提示这个页面就直接下一步即可
到此,使用源码搭建就成功拉,本文重点理解和收悉源码搭建的环境的流程与步骤。
往期相关搭建快捷跳转:
续篇——源码部署LAMP环境上线项目——禅道项目-CSDN博客
网盘_游戏_博客自动化部署(Nginx多项目部署)-CSDN博客
基于LNMP部署wordpress-CSDN博客
WordPress网站上添加看板娘-CSDN博客