前言
LNMP架构是一种用于搭建Web服务器环境的解决方案,它由Linux、Nginx、MySQL(或MariaDB)、PHP(或Python或Perl)这四个开源软件组成。这种架构通常用于搭建高性能的网站和Web应用程序。
目录
一、编译安装nginx
1. 准备工作
2. 压缩包解压
3. 编译与安装
4. 添加nginx系统服务
二、编译安装mysql
1. 安装mysql环境依赖包
2. 创建运行用户
3. 编译与安装
4. 修改mysql配置文件
5. 更改mysql安装目录和配置文件的属主属组
6. 设置路径环境变量
7. 初始化数据库
8. 添加mysqld系统服务
9. 修改mysql的登录密码
10. 授权远程登录
三、编译安装php软件
1. 安装环境依赖包
2. 编译安装
3. 路径优化
4. 调整PHP配置文件
4.1 调整主配置文件
4.2 调整进程服务配置文件
4.3 调整扩展配置文件
5. 启动php-fpm
6. 配置nginx支持php解析
6.1 修改nginx主配置文件
6.2 验证php测试页
6.3 验证lnmp的是否搭建成功
6.4 验证数据库工作是否正常
四、安装论坛
1. 解压安装包
2. 调整论坛目录的权限
3. 论坛页面访问
4. 安装完后访问论坛页面
五、安装博客
1. 解压安装包
2. 调整目录权限
3. 创建数据库用户信息
4. 安装登录
环境软件版本:
nginx-1.22.0;mysql-5.7.20;mysql-5.7.20;Discuz_X3.4_SC_UTF8;wordpress-6.1.1-zh_CN
一、编译安装nginx
1. 准备工作
① 关闭防火墙
systemctl disable --now firewalld
setenforce 0
② 安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
③ 创建运行用户、组
useradd -M -s /sbin/nologin nginx
#(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
2. 压缩包解压
cd /opt #这里将所有安装包存放在/opt目录下
tar zxvf nginx-1.22.0.tar.gz -C /opt/
3. 编译与安装
cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \ #指定nginx的安装路径
--user=nginx \ #指定用户名
--group=nginx \ #指定组名
--with-http_stub_status_module #启用 http_stub_status_module 模块以支持状态统计make && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#设置软连接,让系统识别nginx的操作命令可以自动补全nginx,$PATH
4. 添加nginx系统服务
tee /lib/systemd/system/nginx.service <<eof #多行重定向
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
eofsystemctl daemon-reload #重新加载配置文件
chmod 777 /lib/systemd/system/nginx.service #修改权限
systemctl enable --now nginx.service #开机自启,并立刻启动
二、编译安装mysql
1. 安装mysql环境依赖包
yum -y install ncurses ncurses-devel bison cmakeyum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
2. 创建运行用户
useradd -M -s /sbin/nologin mysql
3. 编译与安装
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gzcd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1make && make install
4. 修改mysql配置文件
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
5. 更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
6. 设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
7. 初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
8. 添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
9. 修改mysql的登录密码
mysqladmin -u root -p password "abc123"
#给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可
10. 授权远程登录
mysql -u root -p'密码'
三、编译安装php软件
1. 安装环境依赖包
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
2. 编译安装
cd /opt
tar jxvf php-7.1.10.tar.bz2cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zipmake && make install
3. 路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
4. 调整PHP配置文件
php有三个配置文件:
php.ini:主配置文件
php-fpm.conf:进程服务配置文件
www.conf:扩展配置文件
4.1 调整主配置文件
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghaiphp -m #验证安装的模块
4.2 调整进程服务配置文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid
4.3 调整扩展配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
5. 启动php-fpm
cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service
netstat -anpt | grep 9000
#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
6. 配置nginx支持php解析
6.1 修改nginx主配置文件
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将 /scripts 修改为nginx的工作目录#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值include fastcgi_params;
}systemctl restart nginx.service
6.2 验证php测试页
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
systemctl restart nginx.service
6.3 验证lnmp的是否搭建成功
浏览器访问http://192.168.190.100/index.php
#这里的ip根据自己的机器来定
6.4 验证数据库工作是否正常
mysql -u root -p'密码'
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;vim /usr/local/nginx/html/index.php #替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.190.100','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
systemctl restart nginx.service浏览器访问
http://192.168.233.21/index.php
四、安装论坛
1. 解压安装包
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/
2. 调整论坛目录的权限
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
3. 论坛页面访问
http://192.168.190.100/bbs/install/index.php数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
4. 安装完后访问论坛页面
http://192.168.190.100/bbs/admin.php
http://192.168.190.100/bbs/index.php
五、安装博客
1. 解压安装包
tar xf wordpress-6.1.1-zh_CN.zip -C /opt/
cp -r wordpress /usr/local/nginx/html/
安装页面在 wp-admin 下
2. 调整目录权限
chmod 777 wordpress/ -R
3. 创建数据库用户信息
mysql -u root -p'密码'
CREATE DATABASE blog;
GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
4. 安装登录
http://192.168.190.100/wordpress/wp-admin/install.php
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123