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

2020-10-26 11:34:09 浏览数 (1)

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等,顺便再做个证书吧,,好像要做的还挺多的..... 看来开发博客系统有点远了.......

0 人点赞