小白建站技巧

不断汇总建站过程中遇到的各种坑和解决方法。

一、如何用SSH连接Amazon aws

(1)装SSH软件

朋友推荐securecrt,除此之外我还装了亚马逊云推荐的putty,用下来感觉还是securecrt比较方便,因为putty需要手动输入passphrase。
不过securecrt是收费软件,所以如果要破解版,可以在网上找。
我是在这个网站下到的
http://gigapurbalingga.net/vandyke-securecrt-full-crack/
解压后将对应的crack文件里的两个exe复制到安装文件夹对应的exe位置,覆盖即可。

(2)就是找到DNS地址,一般是ec2开关,amazon.com结尾的那个,或者用public IP v4也行。

(3)在AWS左侧的导航栏里寻找并创建key pair,保存.pem文件到本地电脑,这个非常重要。后面的securecrt与putty都会用。

(4)给instance开启inbound traffic的权限,对象是自己的电脑ip地址。这个只要在security group里面添加一个rule就行。具体看此网页http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html

(5)我们回到.pem文件,我们用puttygen加载.pem文件,分别生成public key(.pub)和private key(.ppk),再复制.pem文件,把结尾的.pem去掉。这样.pub和.ppk就是putty需要的密钥,.pub和无后缀的就是securecrt需要的文件。

(7)回到aws,选中instance,选择view/change user data,粘贴下列文字到弹框内,如果是连另外一个instance,只需要改这一步就好。

cloud-config

ssh_deletekeys: false
ssh_authorized_keys:
– ssh-rsa ENTER YOUR PUBLIC KEY HERE …
cloud_final_modules:
– [ssh, always]

把ENTER YOUR PUBLIC KEY HERE换成那一长串的public key,注意不要到带ssh-rsa,…不用去掉。

具体可参考https://amazonaws-china.com/cn/premiumsupport/knowledge-center/ec2-server-refused-our-key/

(7)最后一步,在securecrt里创建session,记得要设置比较复杂的passphrase,我用的是最便宜的aws套餐,用户名是bitnami,如果是fedora,那用户名就是fedora,具体可在aws官网上找,一般的是ec2-user等等。
首先要选择global options
然后按照油管视频步骤创建session:https://www.youtube.com/watch?v=oY4cW-0Nk4Y
重点:牢记 instance的user data里面的ssh-rsa与…之间的文字一定要与yourkeypair.pub里面的文字完全一致,否则会显示不成功。

(8)关掉右下角的bitnami的banner

The Bitnami info page provides information about the installed application resources as well as useful links to documentation. It is accessible by clicking in the Bitnami banner in the right bottom corner.

In case you want to remove the banner, you will just need to SSH into your machine and then execute the following command:

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

Please note that /opt/bitnami is the default installation directory of the Bitnami stack.

Finally, you need to restart Apache.

sudo /opt/bitnami/ctlscript.sh restart apache

You will find more information about the Bitnami banner using the following link:

https://docs.bitnami.com/general/components/bninfo

I hope it helps.

EDIT:
It might happen that you moved the bnconfig tool when configuring the domain for your WordPress site. Do you have any bnconfig.disabled file in the /opt/bitnami/apps/wordpress directory? If so, please use that file when running the command above.

Regarding the banner, you can remove it manually by running the following command

sudo touch /opt/bitnami/apps/bitnami/banner/disable-banner

Apache looks for that file when adding the banner and it disables the banner if the file exists.

一些重要网址备注:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html
http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html
https://rbgeek.wordpress.com/2012/08/26/public-key-authentication-in-securecrt/
https://support.rackspace.com/how-to/generating-rsa-keys-with-ssh-puttygen/
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html
http://gigapurbalingga.net/vandyke-securecrt-full-crack/
https://stackoverflow.com/questions/34744552/how-can-i-remove-bitnami-banner-on-wordpress-site

创建Elastic IP

连接Elastic IP与GoDaddy域名
Connecting an EC2 instance with a GoDaddy Domain

There are two simple steps to point a GoDaddy domain to an EC2 instance — create an elastic IP for that EC2 instance you are integrating, and connect the elastic IP to your domain.

Create an elastic IP for the EC2 instance you are integrating.
Click Allocate new address in the Elastic IPs page.
Then, click Allocate in the next page.
Right-click the row of the newly created elastic IP, and click Associate address.
Choose the EC2 instance you are integrating.
Connect the elastic IP to your domain.
Go to GoDaddy’s Domain Manager.
Go to the Manage DNS of the domain you are integrating.
Replace the Value of record with Type A with the elastic IP you just created.
Wait for changes to reflect (This takes at least 600 seconds to reflect, depending on the TTL you specified).
To check if successful, the domain should now load the EC2 instance you pointed it too.

二、如何在Amazon aws服务器上安装dokuwiki

在Amazon aws服务器上安装dokuwiki的八个步骤,想要建百科网站的不要错过。

(1)下载dokuwiki
https://www.dokuwiki.org/
可能还是GFW的关系,下载速度异常慢。

(2)上传至服务器
具体位置是/opt/bitnami/apps/wordpress/htdocs
作为一介小白,搞明白这件事也是不容易的。

(3)解压缩
tar xzvf dokuwiki.tgz

(4)设置权限
具体参考https://www.dokuwiki.org/install:amazone_ec2
注意我用的bitnami的wordpress的apache用户名是daemon,不是apache。
sudo chown -R daemon dokuwiki
sudo chgrp -R daemon dokuwiki
重启apache请用sudo /opt/bitnami/ctlscript.sh restart apache,用sudo service apache2 restart没用。

(5)设置mod_rewrite

具体参考https://community.bitnami.com/t/how-to-access-the-htaccess-conf-file/38410

修改/opt/bitnami/apps/wordpress/conf/httpd-apps.conf,将Allow Override None改成
Allow Override All。

(6)运行install.php

(7)设置网址用/
用supermod账号登录,点击configuration setting,拉到最下面,有下图的选项

选择.htaccess,下一行打勾。

再复制/dokuwiki/.htaccess.dist,重新命名为.htaccess,去掉下列代码前面的#

保存即可

(8)设置virtual hosts(还没搞定,回头再研究)

所有参考网址:

Restarting Apache (after messing with config files):

http://brianshim.com/webtricks/host-multiple-sites-amazon-ec2/

https://nouveauframework.org/blog/vhosts-running-multiple-sites-on-a-single-aws-ec2-instance

https://community.bitnami.com/t/how-to-access-the-htaccess-conf-file/38410

https://forum.dokuwiki.org/thread/9893

sudo /opt/bitnami/ctlscript.sh restart apache

https://www.dokuwiki.org/install:amazone_ec2

https://www.dokuwiki.org/security#web_access_security

https://www.dokuwiki.org/install:permissions

三、如何在Windows服务器上建Wordpress网站

(1)下载Wordpress

下载地址:https://wordpress.org/download/

(2)远程登陆服务器

我用的是Windows 10,所以先打开远程链接,输入服务器地址和密码。

(3)在根目录里放入解压后的Wordpress文件夹

根目录为C://inetpub/wwwroot

(4)安装Wordpress

在浏览器里键入服务器地址,地址最后加上/wordpress,若无意外,会自动跳出安装界面,按指示安装完

(5)改网站链接,去掉/wordpress

将wordpress文件夹里的index.php复制到根目录wwwroot里(注意是复制,不是移动);

将下列文字

require( dirname( FILE ) . '/wp-blog-header.php' );

改为

require( dirname( FILE ) . '/wordpress/wp-blog-header.php' );

(6)去掉链接中的index.php

打开根目录wwwroot里的web.config文件,如果没有此文件,新建即可

复制如下文字至web.config中

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
 <defaultDocument>
     <!-- Set the default document -->
      <files>
        <remove value="index.php" />
        <add value="index.php" />
      </files>
    </defaultDocument>
        <httpErrors errorMode="Detailed"/>
    <rewrite>
        <rules>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                <action type="Rewrite" url="index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

参考链接:
https://stackoverflow.com/questions/12106064/remove-index-php-from-wordpress-urls-in-iis7
https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

四、如何在Windows Server 2012中安装mediawiki和dokuwiki

(1)安装IIS

用服务器管理器(Server Manager)安装,除默认外,勾选HTTP重定向和CGI;另外期间遇到错误,需要服务器有2G内存才能继续安装,不得已,只能升级服务器。

(2)安装最新版的PHP

Mediawiki 1.31需要PHP7.0+

(3)在mediawiki和dokuwiki官网下载安装包

解压缩后,分别重新命名为mediawiki和dokuwiki,或者是你想要的subdomain名字,如简单的wiki。

将文件夹放入wwwroot。

确保此时已经安装有MySQL,以及有根目录管理员的权限(密码)。

dokuwiki多一个步骤,需要点属性,安全,增加名为IUSR的用户组,并在默认的权限上增加“修改”权限,点保存后关闭,这样才能保证下一步跳出dokuwiki的安装界面。

分别在浏览器内键入*******/mediawiki,*******/dokuwiki,或者是你重命名后的文件夹名称。注:*******换成你的网站域名

按照提示装完。

(4)开始制作百科网站

参考油管视频,需要翻墙。

五、如何在Ubuntu 14.04的服务器上安装WordPress

网上已经有很多相关教程,但现在Ubuntu已经升级到18.04,PHP也已经到了7.0+的时代,所以我稍微碰上了一点麻烦。

我主要参考的是两篇英文教程。

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04

How To Install Wordpress on Ubuntu 14.04

第一篇是如何在Ubuntu 14.04上安装LAMP环境,第二篇是本文的主题。

唯一需要注意的是自WordPress 5.2以后,都对应PHP5.6+,而Ubuntu 14.04只到5.5.9,因此只能下载版本为5.1.4及以下的WordPress。

六、如何在Windows IIS上直接升级WordPress

(1)在IIS里

1.在应用程序池里选中与网站相关的应用程序

2.右键选“高级设置”

3. 标识(Identity)选“Local System”

4.保存

(2)选中网站

1.右键选择“权限设置”

2.“安全”,点“编辑”用户组

3.点“添加”,键入“ Authenticated users ”,权限点满

4. 检查名字

5. 保存

参考:
https://wordpress.stackexchange.com/questions/67440/how-to-update-wordpress-installed-on-iis

七、使WordPress支持中文url的方法

在固定链接里将自定义链接设置为/%postname%.html

进入wp-includes目录,打开该目录下的class-wp.php文件,先备份

找到下列代码行(第167行)

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : ''; 

替换为

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK') : '';

再找到第171行

list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );

替换为

list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK') );

保存,WordPress URL里就可以支持中文字符串了!

参考链接
https://zhuanlan.zhihu.com/p/111563826

八、upload_max_filesize错误

方法:修改.htaccess文件

先需要修改httpd.conf文件

vi /etc/httpd/conf/httpd.conf

找到<Dirctory "var/www/html">下的

AllowOverride None

改为

AllowOverride All

保存修改退出,然后重启httpd

sudo systemctl restart httpd.service

找到wordpress文件夹下的.htaccess文件

find / -name .htaccess

修改

vi .htaccess

在文件最下面增加以下代码,数字大小可根据需要调整

php_value upload_max_filesize 128M

如果还报错,可再增加以下代码

php_value post_max_size 256M
php_value memory_limit 512M
php_value max_input_time 180
php_value max_execution_time 180

保存退出,大功告成。

九、JustNews主题的子主题创建

参考网页:WordPress JustNews子主题创建教程

首先,在Wordpress主题目录新建一个justnews-child文件夹,作为子主题目录。

然后,在子主题目录新建一个style.css文件,内容如下:

/*
    Theme name: JustNews Child
    Template: justnews
*/

/* 引入父主题样式 */
@import url("../justnews/css/style.css");

注意:

  • Theme name为子主题名称,这里可以随意填写。
  • Template为父主题的目录名,必须为justnews(注意全部为小写),如果你要创建其他主题的子主题,也是一样的方法
  • 最后,要引入父主题的css文件

到这里,你就可以在后台正常启动子主题了。但是,我们没做任何改变。还是用的父主题的各种php模板。

想要自定义子主题,可以在子主题目录新建function.php,这样以后就算主题版本更新,也可以任意添加功能了。

十、升级WP要求FTP

打开terminal,输入以下代码

sudo chown -R apache:apache /var/www/html/your_wordpress_folder

参考页面:Plugin Install Asks for FTP Details

这个人很懒,他什么资料也没有留下。