前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从 1 到 0 构建博客项目(3) --LNMP--WordPress

从 1 到 0 构建博客项目(3) --LNMP--WordPress

原创
作者头像
大大刺猬
修改2020-10-26 11:34:09
4840
修改2020-10-26 11:34:09
举报
文章被收录于专栏:大大刺猬大大刺猬

LNMP 是互联网最常用架构之一.

WordPress是一款个人博客系统,主要由php写的. 后面我们参考该博客用flask(python)再写个

介绍:

LNMP即:Linux Nginx Mysql/Mariadb PHP/Python

Linux : 主要还是Redhat/Centos用得多点. Centos官网: https://www.centos.org/

nginx: 可以提供web服务,也可做4/7层转发.官网:http://nginx.org/

Mysql/Mariadb : Mysql被Sun收购了,Sun又被oracle收购了. Mysql分为社区版和企业版,也就是收不收费的区别. Mysql之父(Michael Widenius) 在oracle感觉不爽, 就出来创建了Mariadb (名字来源于他的女儿Maria). Mysql主要由oracle提供支持,Maria主要由社区提供支持. Mysql官网:https://www.mysql.com/ Mariadb官网:https://mariadb.org/

PHP/Python : python的web项目实际上并不算多, 所以这里的P主要还是指php. php官网:https://www.php.net/

php的帮助文档是真的不错,而且还有中文: https://www.php.net/distributions/manual/php_enhanced_zh.chm

1.Linux 安装:

linux安装上一篇已经讲了. 这里就不重复了,版本为Centos7.8, 直接用上一篇定制的镜像自动安装.

安装完之后,配置好静态IP和YUM源即可.
安装完之后,配置好静态IP和YUM源即可.

2. Nginx安装

Nginx是一个高性能的web服务器, 源码压缩后仅1M..... 不过我们本环境本次不使用编译安装. 使用官方的rpm安装, 比较它已经把我们常用的功能都编译好了,还配置了轮转日志之类的.后续会专门再讲nginx的编译安装和基于官方的.src.rpm制作rpm包的.

特别说明:nginx被F5收购了.

nginx目前(2020.10.24)最新版本为1.19.3 我们使用稳定版本 1.18 官方下载地址:http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm

执行如下命令安装nginx (记得先配置好DNS和外网,不然就手动下载下来再安装)

代码语言:javascript
复制
yum install http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm -y
我这网速有点慢....
我这网速有点慢....

安装完之后,启动并验证一下:

代码语言:javascript
复制
systemctl start nginx
curl 127.0.0.1
安装成功了, 等安装完php之后再配置php相关的
安装成功了, 等安装完php之后再配置php相关的

3. Mysql安装

官网下载mysql太麻烦了,网速又慢,我就选择国内源下载.

本次环境安装mysql用5.7.32 glibc2.12的安装, 不编译安装了,太慢了,而且也没必要,反正我要的大部分功能都是编译好的.

mysql下载: https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

mysql5.7 官方教程: https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

本次教程和官方的基本上一样.

这速度杠杆的
这速度杠杆的

3.1 创建mysql配置文件 /etc/my.cnf和相应目录 (如果该文件存在,则系统可能已经安装了Mysql,必须得先卸载掉)

mysql配置文件优先级:

/etc/my.cnf > /etc/mysql/my.cnf > ~/.my.cnf

代码语言:javascript
复制
cat << EOF > /etc/my.cnf
[mysqld]
datadir=/mysqldata
socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/var/log/mysql/mysql-error.log
pid-file=/var/run/mysql/mysql.pid
EOF

mkdir /mysqldata
mkdir /var/log/mysql
mkdir /var/run/mysql

3.2 解压mysq并移动到 /usr/loca/mysql

代码语言:javascript
复制
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown mysql:mysql  /mysqldata  /var/log/mysql /var/run/mysql
tar -xvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz && mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysqldata  #初始化后, 会有root密码,记录下来
bin/mysql_ssl_rsa_setup
bin/mysqld_safe --user=mysql &
# Next command is optional
cp support-files/mysql.server /etc/init.d/mysql   #配置mysql服务.  拷贝过去的时候把后缀.server去掉.

3.3 使用mysql

把mysql加入PATH, 永久生效的加,把下面这句放到/etc/profile末尾

代码语言:javascript
复制
export PATH=/usr/local/mysql/bin/:$PATH

3.3.1 连接 mysql

代码语言:javascript
复制
mysql -uroot -p  #然后输入刚才初始化之后的密码

第一次登录的时候并不能使用数据库,会报错如下,需要修改密码

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改mysql密码:

代码语言:javascript
复制
mysql> set password=password('123456');

4.安装php

下载最新稳定版本 7.4.11 https://www.php.net/distributions/php-7.4.11.tar.gz

本次环境使用编译安装php, 因为后面不会再讲php的安装了.

4.1解压php

代码语言:javascript
复制
tar -xvf php-7.4.11.tar.gz 
cd php-7.4.11

4.2 配置php编译选项

代码语言:javascript
复制
./configure --help  #查看php的配置选项

我们就选我们要用的功能就行,然后安装相应的依赖,比如:

代码语言:javascript
复制
yum install gcc openssl-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel   -y

依赖还是挺多的,尤其是很多-devel包, 生产环境建议提前编译好.

代码语言:javascript
复制
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-fpm-user=php \
--with-fpm-group=php \
--enable-mysqlnd \
--enable-fpm \
--enable-gd \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-ftp \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--enable-session \
--enable-opcache \
--enable-bcmath \
--with-curl \
--with-jpeg \
--with-freetype \
--with-openssl \
--with-zlib \
--disable-ipv6

4.3 编译并安装php (编译会比较慢)

代码语言:javascript
复制
make && make install

4.4 配置php

代码语言:javascript
复制
cp php.ini-development /usr/local/php/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php/bin
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
useradd php

修改/usr/local/php/etc/php.ini如下内容(分号开头为注释):

cgi.fix_pathinfo=0

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai

4.5 配置php-fpm系统服务

代码语言:javascript
复制
cat << EOF > /etc/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/php/bin/php-fpm
PrivateTmp=True

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload

4.6启停php-fpm

代码语言:javascript
复制
systemctl start php-fpm
systemctl stop php-fpm
systemctl status php-fpm

4.7 配置nginx处理php

先防火墙开放端口

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload

修改nginx.conf配置添加一个如下server,然后重新加载nginx:

server {

listen 80;

index index.php index.html index.htm;

root /var/www/html;

location ~ \.php$ {

fastcgi_index index.php;

fastcgi_pass 127.0.0.1:9000;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

}

}

代码语言:javascript
复制
systemctl reload nginx

5. 安装WordPress

官网现在比较卡(今天程序员节,github也很卡,好多网站今天都好卡...),我就直接去github下载了

github:https://github.com/WordPress/WordPress

官网:https://wordpress.org/latest.tar.gz

下载了半小时了.......
下载了半小时了.......

还是用之前下载的吧

5.1 解压并设置权限:

代码语言:javascript
复制
tar -xvf wordpress-5.4.2-zh_CN.tar.gz
mv wordpress /var/www/html/wordpress
chown -R php:php /var/www/html/wordpress/

5.2安装:

浏览器打开并输入(ip换成你自己的):http://192.168.1.31/wordpress

点击现在就开始(我是选择的官网的中文的)
点击现在就开始(我是选择的官网的中文的)
填写数据库信息(建库建用户可参考如下代码)
填写数据库信息(建库建用户可参考如下代码)
代码语言:javascript
复制
mysql> create database wordpress;
mysql> create user 'wp'@'%' identified by '123456' ;
mysql> grant all privileges on wordpress.* to wp@"%";
mysql> flush privileges;

点击现在安装
点击现在安装
密码简单了,就要勾上确认密码
密码简单了,就要勾上确认密码
至此安装完成
至此安装完成
登录后台悄悄
登录后台悄悄
后台就张这个样子.you
后台就张这个样子.you
我这个默认只有3个主题,我记得github的默认有20多个. 要其它主题可以去官网下载
我这个默认只有3个主题,我记得github的默认有20多个. 要其它主题可以去官网下载

6. 使用wordpress

6.1发表文章

点击写文章即可
点击写文章即可
点击右上角发布
点击右上角发布
查看,.... 这主题确实不好看,但官网现在访问不了,加不了主题...
查看,.... 这主题确实不好看,但官网现在访问不了,加不了主题...

6.2 添加用户 虽然是个人博客,但并不是只能一个人使用

用户-->添加用户
用户-->添加用户
选完之后,点击添加用户即可
选完之后,点击添加用户即可
登录测试
登录测试

其实这中文界面大家随便瞎点两下就会了

6.3设置语言:

设置-->常规-->站点语言
设置-->常规-->站点语言

下一篇讲讲zabbix(5.0)吧, 既然网站都有了, 就该监控了, siege压测流量, nginx做负载, sysbench测cpu内存IO等,顺便再做个证书吧,,好像要做的还挺多的..... 看来开发博客系统有点远了.......

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍:
  • 1.Linux 安装:
    • 2. Nginx安装
    • 3. Mysql安装
      • 3.1 创建mysql配置文件 /etc/my.cnf和相应目录 (如果该文件存在,则系统可能已经安装了Mysql,必须得先卸载掉)
        • 3.2 解压mysq并移动到 /usr/loca/mysql
          • 3.3 使用mysql
            • 3.3.1 连接 mysql
        • 4.安装php
          • 4.1解压php
            • 4.2 配置php编译选项
              • 4.3 编译并安装php (编译会比较慢)
                • 4.4 配置php
                  • 4.5 配置php-fpm系统服务
                    • 4.6启停php-fpm
                      • 4.7 配置nginx处理php
                      • 5. 安装WordPress
                        • 5.1 解压并设置权限:
                        • 6. 使用wordpress
                        • 6.1发表文章
                          • 6.2 添加用户 虽然是个人博客,但并不是只能一个人使用
                            • 6.3设置语言:
                            相关产品与服务
                            云数据库 MySQL
                            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档