Apache2+php7+mysql搭建wordpress[不定期更新]

引言:因为需要,最近打算为我们的CTF战队搭建一个网站,因此买了一个国外的VPS,操作系统是ubuntu的,准备用wordpress搭建一个战队的博客类型的网站。

  • 事前准备 , 配置好最新的源

sudo -s
apt-get update
apt-get upgrade

  • 安装mysql

apt-get install mysql-server

安装的时候需要设置mysql的root用户密码

  • 安装apache2

apt-get install apache2

  • 安装php7

apt-get install php
apt-get -y install php7.0-fpm php-mysql

由于apache2 可能不能正常解析php7.0,因此需要安装PHP针对于apache的模块

apt-get install php libapache2-mod-php

安装好之后测试一下服务是否成功

service apache2 restart
vim /var/www/html/info.php

在info.php文件中写入

<?php
  phpinfo();
?>

保存之后,用浏览器访问一下 YOUR_IP/info.php , 如果显示下面的页面则表示配置成功。

注:此处的YOUR_IP指的是你对应的IP地址,之后出现的也类似。

img.png
  • 为了方面操作,安装phpmyadmin

apt-get install phpmyadmin php-mbstring php-gettext
ln -s /usr/share/phpmyadmin/ /var/www/html/
systemctl restart apache2

接着访问自己的YOUR_IP/phpmyadmin ,看到下图的样子说明配置成功

1.png

然后登陆mysql的用户名和密码,用root用户登录之后创建以个名为wordpress的用户,记得选上同时创建和自己同名的数据库并赋予所有权限,执行之后就创建成功了。

  • 安装wordpress , 去wordpress官网下载一个tar.gz或者zip包,我下载的是.tar.gz
wget -c https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz
tar -xzvf wordpress-4.8.1-zh_CN.tar.gz
mv wordpress /var/www/html/
#为了在安装wordpress过程中,不需要手动修改wp-config.php文件,添加以下权限,新手可以这样做,对linux熟悉的就手动改文件吧
chown -hR www-data  /var/www/html/wordpress

接着在浏览器访问YOUR_IP/wordpress来安装,如下图

1.png

点击现在开始

1.png

填入你之前创建的数据库和用户的信息,为了安全,最好改一下表前缀,如dm_等,提交之后,继续点安装就行了,然后根据填写下图的相关信息就行了,密码可以就用它生成的,之后可以修改,或者自己设一个强密码

1.png

填完之后点击安装wordpress,安装完成后用你刚才填写的用户名和密码登录,看到下图就基本安装完成了,之后关于wordpress的配置和使用,可以参考wordpress大学的教程

1.png
  • wordpress伪静态设置

我觉得这个是一个挺难的问题,由于使用的是最新版的apache2,因此去网上找的很多教程都太旧了,他们很多都是讲怎么配置apache 伪静态的,就连配置文件都不一样,apache2的配置文件在/etc/apache2/目录下面,主要apache2.conf 和 ./sites-available/000-default.conf , 如果你是用老版本的apache的话,配置教程可以参照WordPress 伪静态规则(IIS/Apache/Nginx),这里主要介绍apache2的伪静态配置,主要参考了How To Rewrite URLs with mod_rewrite for Apache on Ubuntu 16.04这篇文章

1.激活mod_rewrite

a2enmod rewrite
systemctl restart apache2

2.修改/etc/apache2/sites-available/000-default.conf

vim /etc/apache2/sites-available/000-default.conf

在<VirtualHost *:80>下面插入一下内容

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

保存之后,重启apache2

systemctl restart apache2

3.在/var/www/html/wordpress这个目录下面创建一个文件.htaccess(此文件可能已经存在,但是默认是隐藏的),修改内容为

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

保存之后,再在浏览器里访问wordpress里面的链接试试,如下图:

1.png

发现能够访问之前的文章了,成功实现了伪静态的配置!

以上就是在ubuntu16.04 下面使用apache2+php7+mysql搭建wordpress的基本过程了,后续可以根据自己的情况去修改wordpress了,希望各位小伙伴也能搭建出自己的博客,have fun!


之后我会讲讲在我搭建我们战队的wordpress网站时遇到的若干问题:

1.安装插件&主题的会遇到需要登陆FTP服务

由于各种原因,你当前不能使用FTP服务,但是每次安装主题和插件时又会弹出输入FTP服务,该怎么办呢?其实只要修改一下wp-config.php文件就可以了

打开/var/www/html/wordpress/wp-config.php ,在中间插入以下代码:

define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

2.安装插件&主题
推荐使用上传插件的方式安装,下面以我要安装的wordpress导入插件为例:

1

点击安装插件,搜索wordpress import,找到左下角的导入工具,点击更多详情

1.png

然后点击右下角的插件主页,然后去官方主页下载相应的插件,接着推出后点击添加插件左上角的上传插件,点击浏览之后,选择对应的插件,之后点击现在安装,这样子就可以安装插件了。但是可能会遇到无法创建目录的问题,请看下面的解决方法。

3.初次安装主题&插件遇到无法创建目录的问题

由于我已经配置好了,所以就不提供截图了,但是可以说这是因为权限问题的原因,下面讲讲解决方法

如果你用cat /etc/passwd查看用户的话,你就会发现一个www-data的用户,这个其实指的就是使用浏览器访问的用户,为了给它创建的权限,可以给相对应的目录777的权限,但是这样不安全,因此可以考虑把需要创建目录的父目录的属主改成www-data

cd /var/www/html
#把wordpress目录下面的所有文件的属主都改成 www-data
chown -hR www-data wordpress

总之根据把需要创建目录的父目录创建和修改属主为www-data就可以了

4.上传主题的大小超过2M

1.png

首先找到php.ini,至于文件在哪,可以查看之前写的phpinfo文件,如下图

1.png

apache2和php7中的php.ini的路径一般为/etc/php/7.0/apache2/php.ini
打开这个文件之后,修改对应的内容:

upload_max_filesize = 8M  #具体大小根据自己需要,但是不能超过post_max_size
1.png

这样应该就可以继续安装主题了,接着重启apache2

systemctl restart apache2

5.配置缓存的问题

由于网速等原因,如果wordpress没有缓存机制的话,可能会导致每次访问该网站很慢,因为每次都要加载全部的内容,下面讲讲怎么配置缓存
参考教程——Configure HTTP Content Caching in Apache on Ubuntu 16.04

第一种方法:

打开wordpress根目录下面的.htaccess文件,添加以下代码

<IfModule mod_expires.c>
#打开缓存
ExpiresActive On
#默认对所有资源缓存600秒
ExpiresDefault A600
#png格式的资源缓存5秒
ExpiresByType image/png A5
#jpg格式的资源缓存50秒
ExpiresByType image/jpg A50

#好含这些后缀的资源,都缓存100秒
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A100
</FilesMatch>

</IfModule>

启用expires模块

a2enmod expires
service apache2 restart

第二种方法:
#Enable the Apache Modules
sudo apt-get update
sudo apt-get install apache2-utils
sudo a2enmod cache
sudo a2enmod cache_disk
sudo a2enmod expires
sudo a2enmod headers
sudo systemctl restart apache2

#Add the Virtual Host Configurations
sudo vim /etc/apache2/sites-available/000-default.conf

在</VirtualHost>里添加以下内容

CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie

<Location />
    CacheEnable disk
    CacheHeader on
    CacheDefaultExpire 800
    CacheMaxExpire 64000
    CacheIgnoreNoLastMod On
    ExpiresActive on
    ExpiresDefault A300
</Location>
sudo apachectl configtest
sudo systemctl restart apache2

6.域名配置

在你配置域名的时候,你可能发现你

vim /etc/apache2/sites-enabled/000-default.conf

找到DocumentRoot那两行,然后修改成你要访问的根目录,我这里是nebula

2.png

这里完成之后重启apache2服务,然后用浏览器访问域名,发现根目录就是index.php的内容了

2.png

然后点击上面的任意一个链接,可能会出现的问题:
1.如果出现 internal redirects错误,则应该是.htaccess文件的mod_rewrite部分出错,请参考上面的.htaccess是怎么写的,至少上面的我是验证过的。
2.点击之后显示链接不存在,这个貌似是由于你在修改apache2访问根目录之前就安装了wordpress,他在那个时候会自动完成php文件里面的访问路径,用的是相对路径,
因此此处若是直接访问上面的链接,就会访问./wordpress/xxx.php上面,即/var/www/html/wordpress/wordpress/xxx.php
为此,我们需要把/var/www/html/wordpress/目录下的所有文件复制到它下面的wordpress目录下面

cd /var/www/html
tar -zcvf wordpress.tar.gz wordpress
mv wordpress.tar.gz wordpress/
cd wordpress
tar -zxvf wordpress.tar.gz

这样子处理之后,就可以正常访问所有的链接了~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容