一、VPS 上创建网站和网站配置文件(自动配置伪静态规则) {#VPS}
ssh 命令:lnmp vhost add
先输入域名。如果你喜欢用 www.xyz.com 作为主要使用的域名,那么就填写 www.xyz.com。否则填写裸域 xyz.com。我一般用 www 域名。
是否添加更多的域名,输入 y,回车。在上一步中我们添加了带 www 的域名,这里再添加一个不带 www 的域名。为了后面方便做 301 跳转用的。
提示选择 rewrite 规则的时候输入 wordpress
,然后回车。(注意:切勿直接回车,会默认选择 other 伪静态规则)
网站配置文件有了之后就可以正常访问网站了,wordpress 的 rewrite 规则会自动设置好。只有设置好伪静态才能设置 WP 后台的固定链接结构。
二、密码不显示状态下输入 MySQL 的 Root Password (MySql 管理密码),总是出错 {#_MySQL_Root_Password_MySql}
1)如果你失误输入错误,但由于看不到你已经输入到什么位置,此时可以重新开一个连接窗口,把当前错误的关闭,然后重新执行 lnmp vhost add,重新到这一步时不用键盘输入。在记事本上写好正确的密码,然后鼠标右键粘贴,回车。也可以的。
2)确定密码输入的是正确的,但总是提示错误,有可能是在安装 lnmp 环境的时候在输入 mysql 密码的时候直接回车导致的。如果当时回车,则默认 mysql 的管理密码为 root。此时你可以和 1)一样重新开一个连接窗口重来执行。
3)这里的密码如果确实不记得,或者之前操作失误导致密码为默认的密码 root,则不太安全,你可以粘贴执行下面的命令来重置密码。
cd /root/lnmp1.3/tools/ && ./reset_mysql_root_password.sh
{#crayon-5896a47397ddb082504843-1}
根据提示直接输入新密码后回车即可。
三、安装 WordPress {#_WordPress}
先进入网站根目录 {#i}
cd /home/wwwroot/www.xyz.com
下载 WordPress {#_WordPress-2}
wget https://cn.wordpress.org/wordpress-4.7-zh_CN.zip
解压 WordPress {#_WordPress-3}
unzip wordpress-4.7-zh_CN.zip
移动 WordPress 文件到网站根目录下 {#_WordPress-4}
解压完毕后,可以用 Xftp 进入文件夹把 wordpress 文件夹下的所有文件向上移动到 www.xyz.com 文件夹下。然后把其他多余文件下删除。如果你对命令行熟悉,也可以用 MV 命令来做。
mv wordpress/* .
确保网站域名已经正确解析 {#i-2}
起码做了两个 A 记录。www 和 @ 的 A 记录。
两条 A 记录"记录值"都为你的 VPS IP 地址,"记录名"分别为 www 和 @。
四、安装 WordPress 主题及插件需要输入 FTP 账号密码的解决办法: {#_WordPress_FTP}
一般都是因为没有给目录写入的权限。先把 WordPress 根目录下的 wp-config.php 文件下载到本地,然后用文本编辑器打开(注意别用记事本之类的文本程序)
注意:别用电脑系统自带的记事本,那个只是处理文字用的,会把代码编码弄乱。你可以百度搜索:PC6 notepad++,下载安装。
在里面添加:
define('FS_METHOD','direct');
define('FS_CHMOD_DIR', 0777);
define('FS_CHMOD_FILE', 0777);
另外,在 Xshell 连接 Linode 下,逐个执行这两个命令:
cd /home/wwwroot/
chmod 777 -R www.xyz.com/*
注:www.xyz.com 请自行换成你的网站目录。
OK,搞定!
五、WordPress 后台只显示一个自带主题,不显示(也无法切换)其它主题 {#WordPress}
原因:lnmp 一键安装包里的 php.ini 禁止了 scandir
函数。
解决办法:修改 php.ini。
打开:/usr/local/php/etc
下的 php.ini ,搜索 "disable_functions",在"disable_functions = ...."中找到 scandir,删除,保存。覆盖 php.ini 文件。
然后重启 php 服务:service php-fpm restart (或:/etc/init.d/php-fpm restart )
六、lnmp 设置 301 重定向跳转至 WWW 域名 {#lnmp_301_WWW}
第一步)VPS 中的 /usr/local/nginx/conf/vhost/
下,看到域名命名的 .conf 文件,可以用 VI 命令修改,也可以用 XFTP 下载到本地修改再传上去覆盖。
注意:如果你用的是 BT 面板,那么路径为:/www/server/nginx/conf/vhost
第五行开始,补全带 www 和不带 www 的两种域名。然后做个判断,如果不是带 www 的,正则 rewrite 到带 www 的进行永久跳转。
server_name www.yourdomain.com yourdomain.com;
if ($host != 'www.yourdomain.com' ) {
rewrite ^/(.*)$ http://www.yourdomain.com/$1
permanent;
}
第二步)重启 LNMP 或者 NGINX 使得跳转生效:
重启 LNMP 采用命令如下;
/root/lnmp restart
重启 NGINX 采用命令如下;
/etc/init.d/nginx restart
如果提示 "No such file or directory",可以先执行 cd /root 或者 cd /etc,看看是否执行成功。如成功,继续执行 /lnmp restart 或 /init.d/nginx restart 。
七、安装 Wordperss 时数据库配置错误 {#_Wordperss}
记得要先到 phpMyAdmin 创建新的数据库,然后再填写 WordPress 安装的数据库信息表单。(如果你在第一步增加虚拟网站配置文件 lnmp vhost add 的那一步已经创建了数据库,就不用创建新数据库了)
lnmp 下 phpmyadmin 的默认访问位置为:https://vps IP/phpmyadmin/
创建新数据库的时候,排序规则选择 utf8 general ci
八、phpMyAdmin 无法正常登录,提示:您的 Session 已过期,请再次登录。 {#phpMyAdmin_Session}
修改 /usr/local/php/etc/php.ini 里面的 session.auto_start
的值为 1
之后需要重启 php 生效。在 xshell 输入:
/etc/init.d/php-fpm restart
九、循环重定向或死循环,网站打不开 {#i-3}
循环重定向的原因是:301 转到 www 网址,但你的 wordpress 里的 home url 和 site url 为非 www 网址,于是就会死循环。
主要还是因为,安装 wordpress 的时候,home url 和 site url 保存的是裸域名,而 nginx 规则文件里写的 301 规则是要把 裸域名跳转到 www 域名,但 www 域名又不是网站首页,于是就循环出错。
修复办法 1)通过修改数据库 WordPress Options 表 {#1_WordPress_Options}
通过数据库去修改 wp_options 表里面 home url 和 site url,把网址改成带 www 的,然后即可。
访问 http://你的 linode 的 IP 地址
,来到一键安装包安装成功的页面。(或者直接访问 http://yourserverip/phpmyadmin
)
点击 phpMyAdmin,转到登录页面。用户名 root,密码填写 mysql database root password, 应该是跟 root password 一致的密码。登录后,在左边的数据库列表点击你的数据库,会展开所有的数据表。
选择 options 表,找到 site_url 和 home_url,把裸域名改成带 www 的网址就 OK 了。
修复办法 2)通过修改 WordPress 配置文件 wp-config.php {#2_WordPress_wp-configphp}
通过 WordPress 根目录下的 wp-config.php 配置文件来强制重新设置 site url 和 home url。在 WordPress 根目录下找到 wp-config.php 文件,下载到本地,用文本编辑器打开,添加下面这两行代码,然后覆盖源文件,也可以生效。
define('WP_HOME' , 'http://www.xyz.com');
define('WP_SITEURL' , 'http://www.xyz.com');
这种方式不需要进入数据库表里去修改。注意:如果你已经安装 SSL 证书,开通 https,这里也要两个写成 https。
十、安装完 LNMP 时,提示:ERROR! MySQL is running but PID file could not be found。 {#_LNMP_ERROR_MySQL_is_running_but_PID_file_could_not_be_found}
解决办法: {#i-4}
首先查看一下进程。执行命令:
ps aux |grep mysq*
此命令为查看 mysql 相关的进程。如返回如下结果:
root 1461 0.0 0.2 106268 2972 ? S Aug06 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/li257-84.members.linode.com.pid
mysql 2003 0.0 4.4 748236 45440 ? Sl Aug06 0:11 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/li257-84.members.linode.com.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/li257-84.members.linode.com.pid --socket=/tmp/mysql.sock --port=3306
root 8683 0.0 0.2 103380 2152 pts/0 S+ 01:31 0:00 grep mysq*
root 和 mysql 后面跟的就是 pid 进程号。此时要用 kill -9 命令强制关闭这些卡死的进程。格式为:kill -9 pid1 pid2 ...
kill -9 1461 2003 8683
重启 mysql:
service mysql start
如果 mysql 可以正常启动,那么问题即解决了。
如果还是不行,去 /usr/local/mysql/var 下看看,如果存在 mysql-bin.index,就把它删除掉试试看。
十一、Avada 主题下提示系统环境问题(Red System Status) {#Avada_Red_System_Status}
1)PHP Max Input Vars 问题 {#1PHP_Max_InputVars}
需要修改 php.ini。通常军哥的 lnmp 包 php.ini 的位置位于:/usr/local/php/etc/php.ini 。
使用 vi 命令或者下载 php.ini 文件,用 notepad++ 打开修改:
max_input_vars = 300 改成 3000
保存,上传覆盖。之后需要重启 php 生效。在 xshell 输入:
/etc/init.d/php-fpm restart
注:如果是虚拟主机建站(如 bluehost),则可能还会有 PHP Time Limit ( max_execution_time ) 问题。
把 php.ini 中的 max_execution_time=30 改成 300,保存上传覆盖,然后重启 php 服务。
如果是其他环境包,不清楚 php.ini 在哪,可以本地新建一个空白的 php 文件,代码如下:
<?
phpinfo();
?>
然后浏览器访问该 php 文件地址,即可查看到 php.ini 文件的路径。
或者也可以用 linux 的 bash 命令脚本:
sudo find / -name 'php.ini'
这个语句则会在你整个系统盘中查找 php.ini 的位置,如果系统很大的话这个可能速度就比较慢,所有如果你确定 php.ini 是在 /etc 的话,则可以把 bash 脚本中的 '/' 换成 '/etc' 。
2)PHP Memory Limit {#2PHP_Memory_Limit}
2.1))在上面所述的 php.ini 中,搜索:memory_limit ,把值设置为你的 VPS 内存的 1/4。注意不要超过 1/4,你还要留内存给系统、数据库以及其他程序。比如你如果是 Linode 10 刀/月,则内存是 2G,这里就设置为 512M。
修改后保存覆盖(假如你用 vi 命令则忽略覆盖)。然后重启 php,粘贴一下命令执行重启 php-fpm:
service php-fpm restart
2.2)打开 wordpress 根目录下的 wp-config.php 文件,在设定数据库名称的那行下面,加入一行:
/** 扩展 WP 的内存使用限制 */
define('WP_MEMORY_LIMIT', '256M');
一样是遵循最大 1/4 原则。如果你是 2G 内存就写 512M。
保存,上传覆盖。
十二、删除某个文件下以及其下所有文件 {#i-5}
命令行语法:
rm -rf foldername
rm 为删除,-rf 为其本身及其所属下面所有文件。f 为直接删除不提示。
十三、Error establishing a database connection 网站打不开显示数据库连接错误 {#Error_establishing_a_database_connection}
输入 service mysql status 提示"mysql is not running but lock exists"
mysql 重启时提醒错误-server PID file could not be found。此时执行:
ps aux |grep mysq*
下面的步骤参考第十点把有问题的 mysql 进程强制关闭,然后重启 mysql 即可。
十四、WordPress 升级失败(存在不一致的文件权限) {#WordPress-2}
详见
Linode VPS 上 WordPress 升级失败的原因
最常见的原因是没有给你的网站文件夹 www.xyz.com 根目录以及 wp-admin 和 wp-includes 这两个文件夹写入文件的权限。我们在安装之前需要安装主题和插件的时 ..
暂时没有这些问题了,想开始正式建站,怎么操作?
请参考这篇文章:
WordPress外贸建站,WordPress操作流程全攻略(详细图文教程)
外贸建站很难?当然不。零基础三天也能学会WordPress建立外贸B2B英文网站
十五、无法删除网站目录 {#i-6}
当我们想删除某个网站时,可以用 lnmp vhostdel
的命令。但是这个命令只是删除了 nginx 下的 vhost 配置文件等等,出于安全原因,并未删除网站文件夹和里面的文件。
于是当手动从 Xftp 里面去删除时,发现最终无法删除。用 Xshell 的 rm -f 命令去删除时,由于有个 .user.ini
文件始终无法删除掉,网站文件夹怎么都无法删除。
正确的方式是:
cd /home/wwwroot
chattr -i www.xyz.com/.user.ini
rm -f www.xyz.com/*
这样就 OK 了。此时再从 Xftp 里删除空的 www.xyz.com 文件夹即可顺利删除。