LAMP实战之构建博客网站
时间:2022-05-06
本文章向大家介绍LAMP实战之构建博客网站,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、首先检查LAMP环境
[root@cairui htdocs]# ps -ef | grep httpd
php 13160 1 0 Mar03 ? 00:00:00 /opt/apache2.2.34/bin/httpd -k start
root 19311 1 0 Mar03 ? 00:00:02 /opt/apache2.2.34/bin/httpd -k graceful
php 19401 19311 0 Mar03 ? 00:00:00 /opt/apache2.2.34/bin/httpd -k graceful
php 19402 19311 0 Mar03 ? 00:00:00 /opt/apache2.2.34/bin/httpd -k graceful
php 19403 19311 0 Mar03 ? 00:00:00 /opt/apache2.2.34/bin/httpd -k graceful
root 24835 24810 0 09:11 pts/0 00:00:00 grep httpd
[root@cairui htdocs]# ps -ef | grep mysql
root 1470 1 0 Mar01 ? 00:00:00 /bin/sh /opt/mysql-5.7.21/bin/mysqld_safe --datadir=/opt/mysql-5.7.21/data --pid-file=/opt/mysql-5.7.21/data/cairui.pid
mysql 1557 1470 0 Mar01 ? 00:02:51 /opt/mysql-5.7.21/bin/mysqld --basedir=/opt/mysql-5.7.21 --datadir=/opt/mysql-5.7.21/data --plugin-dir=/opt/mysql-5.7.21/lib/plugin --user=mysql --log-error=cairui.err --pid-file=/opt/mysql-5.7.21/data/cairui.pid
root 24837 24810 0 09:11 pts/0 00:00:00 grep mysql
[root@cairui htdocs]# lsof -i tcp:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
AliYunDun 1335 root 18u IPv4 9047 0t0 TCP 120.25.255.87:36408->106.11.68.13:http (ESTABLISHED)
httpd 19311 root 3u IPv4 356362 0t0 TCP *:http (LISTEN)
httpd 19402 php 3u IPv4 356362 0t0 TCP *:http (LISTEN)
httpd 19403 php 3u IPv4 356362 0t0 TCP *:http (LISTEN)
[root@cairui htdocs]# lsof -i tcp:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1557 mysql 29u IPv4 9380 0t0 TCP *:mysql (LISTEN)
2、配置博客软件(wordpress)
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。
[root@cairui software]# wget https://wordpress.org/latest.tar.gz
--2018-03-04 09:16:34-- https://wordpress.org/latest.tar.gz
Resolving wordpress.org... 198.143.164.252
Connecting to wordpress.org|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8565525 (8.2M) [application/octet-stream]
Saving to: “latest.tar.gz”
100%[=========================================================>] 8,565,525 2.83M/s in 2.9s
2018-03-04 09:16:38 (2.83 MB/s) - “latest.tar.gz” saved [8565525/8565525]
[root@cairui software]# ls
cmake-3.9.6 httpd-2.2.34 latest.tar.gz libiconv-1.15.tar.gz php-7.2.3
cmake-3.9.6.tar.gz httpd-2.2.34.tar.gz libiconv-1.15 mysql-5.7.21 php-7.2.3.tar.gz
[root@cairui software]# tar zxf latest.tar.gz
[root@cairui software]# ls
cmake-3.9.6 httpd-2.2.34.tar.gz libiconv-1.15.tar.gz php-7.2.3.tar.gz
cmake-3.9.6.tar.gz latest.tar.gz mysql-5.7.21 wordpress
httpd-2.2.34 libiconv-1.15 php-7.2.3
[root@cairui software]# cd wordpress/
[root@cairui wordpress]# ls
index.php wp-admin wp-content wp-load.php wp-signup.php
license.txt wp-blog-header.php wp-cron.php wp-login.php wp-trackback.php
readme.html wp-comments-post.php wp-includes wp-mail.php xmlrpc.php
wp-activate.php wp-config-sample.php wp-links-opml.php wp-settings.php
[root@cairui wordpress]# cd ..
[root@cairui software]# cp wordpress/* /opt/apache/htdocs/
cp: overwrite `/opt/apache/htdocs/index.php'? y
cp: omitting directory `wordpress/wp-admin'
cp: omitting directory `wordpress/wp-content'
cp: omitting directory `wordpress/wp-includes'
[root@cairui apache]# mv /home/cairui/software/wordpress/* /opt/apache/htdocs/
上述mv的原因是cp出错,查看错误日志
[Sun Mar 04 09:04:36 2018] [error] [client 114.239.215.144] File does not exist: /opt/apache2.2.34/htdocs/favicon.ico, referer: http://120.25.255.87/
缺少文件,所以cp无法全部拷贝,使用mv
输入120.25.255.87,进入wordpress设置
3、配置数据库
因为博客的安装需要用到数据库
mysql> create database wordpress default character set gbk collate gbk_chinese_ci; #创建一个gbk数据库,默认是拉丁字符集
Query OK, 1 row affected (0.02 sec)
mysql> show databses;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databses' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| managerie |
| mysql |
| performance_schema |
| sys |
| test |
| wordpress |
+--------------------+
7 rows in set (0.00 sec)
mysql> grant select,delete,insert,update,create on wordpress.* to wordpress@localhost identified by'wordpress'; #给用户wordpress设置权限
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges; #刷新权限
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
| wordpress | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)
mysql> show grants for wordpress@localhost;
+------------------------------------------------------------------------------------------+
| Grants for wordpress@localhost |
+------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wordpress'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `wordpress`.* TO 'wordpress'@'localhost' |
+------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
权限不够,因为把httpd.conf用户改为了php
[root@cairui apache]# chown -R php.php /opt/apache/htdocs/
[root@cairui apache]# cd htdocs/
[root@cairui htdocs]# ls
index.php wp-admin wp-content wp-load.php wp-signup.php
license.txt wp-blog-header.php wp-cron.php wp-login.php wp-trackback.php
readme.html wp-comments-post.php wp-includes wp-mail.php xmlrpc.php
wp-activate.php wp-config-sample.php wp-links-opml.php wp-settings.php
[root@cairui htdocs]# ll
total 188
-rw-r--r-- 1 php php 418 Sep 25 2013 index.php
-rw-r--r-- 1 php php 19935 Jan 7 03:32 license.txt
-rw-r--r-- 1 php php 7413 Dec 12 2016 readme.html
-rw-r--r-- 1 php php 5434 Sep 23 20:21 wp-activate.php
drwxr-xr-x 9 php php 4096 Feb 6 23:49 wp-admin
-rw-r--r-- 1 php php 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 php php 1627 Aug 29 2016 wp-comments-post.php
-rw-r--r-- 1 php php 2853 Dec 16 2015 wp-config-sample.php
drwxr-xr-x 4 php php 4096 Feb 6 23:49 wp-content
-rw-r--r-- 1 php php 3669 Aug 20 2017 wp-cron.php
drwxr-xr-x 18 php php 12288 Feb 6 23:49 wp-includes
-rw-r--r-- 1 php php 2422 Nov 21 2016 wp-links-opml.php
-rw-r--r-- 1 php php 3306 Aug 22 2017 wp-load.php
-rw-r--r-- 1 php php 36583 Oct 13 10:10 wp-login.php
-rw-r--r-- 1 php php 8048 Jan 11 2017 wp-mail.php
-rw-r--r-- 1 php php 16246 Oct 4 08:20 wp-settings.php
-rw-r--r-- 1 php php 30071 Oct 19 01:36 wp-signup.php
-rw-r--r-- 1 php php 4620 Oct 24 06:12 wp-trackback.php
-rw-r--r-- 1 php php 3065 Sep 1 2016 xmlrpc.php
mysql> use wordpress
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.01 sec)
错误:进入详情界面无法显示(原因,链接内包含中文,把链接改为英文即可)
- Serverless 应用开发指南:基于 Serverless 与 Lambda 的微信公共平台
- Serverless 应用开发指南:serverless 的 hello, world
- 通过一组RESTful API暴露CQRS系统功能
- 通过使用结构化数据 JSON-LD,我为网站带来了更多的流量
- 使用 OWIN Self-Host ASP.NET Web API 2
- c#开源消息队列中间件EQueue 教程
- Serverless 框架 OpenWhisk 开发指南:使用 Node.js 编写 hello, world
- GOTO Berlin: Web API设计原则
- 使用 ServiceStack 构建跨平台 Web 服务
- 使用 OpenWhisk 自建 Serverless 服务
- 如何在 8 小时内开发上线一个在线表单系统
- 让Response.Redirect页面重定向更有效率
- 使用 adr 轻松创建 “程序员友好” 的轻量级文档
- 在Linux和Windows平台上操作MemoryMappedFile(简称MMF)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 每天手撕一道算法-64. 最小路径和
- Flutter 1.20 下的 Hybrid Composition 深度解析
- Flutter 1.17 对列表图片的优化解析
- SQL注入常用函数和关键字总结
- 用遗传算法求解函数
- javafx框架tornadofx实战-益智游戏-找出指定的内容1
- Qt音视频开发8-ffmpeg保存裸流
- PyTorch6:nn.Linear&常用激活函数
- Python制作图片验证码?也就三行代码罢了
- 小技巧整理(一)
- 20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
- 4.深入k8s:持久卷PV、PVC及其源码分析
- 5.深入k8s:StatefulSet控制器及源码分析
- 简介机器学习中的特征工程
- 在机器学习回归问题中,你应该使用哪种评估指标?