一、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 管理密码),总是出错
1)如果你失误输入错误,但由于看不到你已经输入到什么位置,此时可以重新开一个连接窗口,把当前错误的关闭,然后重新执行 lnmp vhost add,重新到这一步时不用键盘输入。在记事本上写好正确的密码,然后鼠标右键粘贴,回车。也可以的。
2)确定密码输入的是正确的,但总是提示错误,有可能是在安装 lnmp 环境的时候在输入 mysql 密码的时候直接回车导致的。如果当时回车,则默认 mysql 的管理密码为 root。此时你可以和 1)一样重新开一个连接窗口重来执行。
3)这里的密码如果确实不记得,或者之前操作失误导致密码为默认的密码 root,则不太安全,你可以粘贴执行下面的命令来重置密码。
cd /root/lnmp1.3/tools/ && ./reset_mysql_root_password.sh
根据提示直接输入新密码后回车即可。
三、安装 WordPress
先进入网站根目录
cd /home/wwwroot/www.xyz.com
下载 WordPress
wget https://cn.wordpress.org/wordpress-4.7-zh_CN.zip
解压 WordPress
unzip wordpress-4.7-zh_CN.zip
移动 WordPress 文件到网站根目录下
解压完毕后,可以用 Xftp 进入文件夹把 wordpress 文件夹下的所有文件向上移动到 www.xyz.com 文件夹下。然后把其他多余文件下删除。如果你对命令行熟悉,也可以用 MV 命令来做。
mv wordpress/* .
确保网站域名已经正确解析
起码做了两个 A 记录。www 和 @ 的 A 记录。
两条 A 记录“记录值”都为你的 VPS IP 地址,“记录名”分别为 www 和 @。
四、安装 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 后台只显示一个自带主题,不显示(也无法切换)其它主题
原因: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 域名
第一步)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 时数据库配置错误
记得要先到 phpMyAdmin 创建新的数据库,然后再填写 WordPress 安装的数据库信息表单。(如果你在第一步增加虚拟网站配置文件 lnmp vhost add 的那一步已经创建了数据库,就不用创建新数据库了)
lnmp 下 phpmyadmin 的默认访问位置为:https://vps IP/phpmyadmin/
创建新数据库的时候,排序规则选择 utf8 general ci
八、phpMyAdmin 无法正常登录,提示:您的 Session 已过期,请再次登录。
修改 /usr/local/php/etc/php.ini 里面的 session.auto_start
的值为 1
之后需要重启 php 生效。在 xshell 输入:
/etc/init.d/php-fpm restart
九、循环重定向或死循环,网站打不开
循环重定向的原因是:301 转到 www 网址,但你的 wordpress 里的 home url 和 site url 为非 www 网址,于是就会死循环。
主要还是因为,安装 wordpress 的时候,home url 和 site url 保存的是裸域名,而 nginx 规则文件里写的 301 规则是要把 裸域名跳转到 www 域名,但 www 域名又不是网站首页,于是就循环出错。
修复办法 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
通过 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。
解决办法:
首先查看一下进程。执行命令:
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)
1)PHP Max Input Vars 问题
需要修改 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
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。
保存,上传覆盖。
十二、删除某个文件下以及其下所有文件
命令行语法:
rm -rf foldername
rm 为删除,-rf 为其本身及其所属下面所有文件。f 为直接删除不提示。
十三、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 升级失败(存在不一致的文件权限)
详见
暂时没有这些问题了,想开始正式建站,怎么操作?
请参考这篇文章:
十五、无法删除网站目录
当我们想删除某个网站时,可以用 lnmp vhost del
的命令。但是这个命令只是删除了 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 文件夹即可顺利删除。
本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。
我用的 avada 主题,网站后台突然很多按钮都使用不了了,比如说我想修改图片,选好图片之后按保存的按钮啥反应也没有,连取消也没反应。大家有没有碰到这类问题,后来是怎么解决的?
料神老师, 现打算将 BH 上的网站搬到 Linode 上,于是先看了一次关于 LINODE 的学习视频和浏览了一些料网上的相关文章,先初步做个了解。我发现好像没有关于网站邮件的说明,是不是将 BH 上的 ROOT 下的文件夹全部上传到 LINODE 上就可以了?因为 BH 是有邮件服务器可以收发邮件的,那么搬到 LINODE 上之后是不是跟 BH 也是有类似的客户端需要安装的,有什么需要注意的地方吗?
Sam 老师你好,一开始是跟着颜 sir 的课程本地建站的,学了一些后,想提前买空间及域名,结果就换到了您这里的 VPS 建站,感觉更有挑战,谢谢您的各种教课。有个问题很困扰的就是,我一开始运行 xshell,连接到 VPS 之后,过会就会显示 foreign host 禁止连接,就开始断网,笔记本就开始处于神神叨叨不停断网的状态,pad 其他用网正常,重装过 xshell 一次,正常了一个上午,又开始了,也刷新过好多次 DNS,请问要怎么解决这个问题呀,真的是十分干扰下一步行动,盼回复……
sam 老师你好,按照您的教程装完了 lnmp 环境包,增加了虚拟机(vhost),也下载好了 wordpress,域名解析我在 namesilo 上做的,设置的 ttl 3600,这个要多久生效啊,我过了 1 小时点我的网站域名,还是显示 404 Not Found nginx,没有 wordpress 的安装画面 怎么办呢?等吗? 我自己电脑上也刷新了本地的 dns
@tom 我现在也是跟你一样的情况,不知道你是怎么解决的。
/www/server/nginx/conf/vhost /usr/local/nginx/conf/vhost/ 这 2 个路径下的文件怎么一样,是我眼花了吗?
/www/server/nginx/conf/vhost /usr/local/nginx/conf/vhost/ 这 2 个路径下的文件怎么一样,是我眼花了吗?
Sam 哥,按照您的教程一口气下来了,不过按照您的教程修改了权限,在上传主题的时候被弹出了 WP 界面,之后再 WP 登录界面输入账号密码被弹回来,同时直接输入域名,浏览器显示 xxx.com 将您重定向的次数过多。
料神老师,您好。 按照教程一直很顺利,然后出现一个问题,找了您的教程里都没有提到。 “Unable to create directory wp-content/uploads/2017/09. Is its parent directory writable by the server?” 上传图片, 或更换主题,都会提示上面这个。请问是我哪里设置错误了吗?
@一招撂倒熊 补充:是 Linode 5 美金 VPS,一键安装包搭建的
@一招撂倒熊 GOOGLE 终于找到了答案 https://wp-me.com/fix-unable-to-create-directory-wp-content-uploads-is-its-parent-directory-writable-by-the-server/ 供大家参考。 1.修改文件 wp-content 写入权限(主要原因) 2.若仍然失败,添加代码 define( ‘UPLOADS’, ‘wp-content/uploads’ ); 到 wp-config.php,代码放置于 require_once(ABSPATH . ‘wp-settings.php’); 之前。 感谢料神!
操作完第五个步骤后,网站就打不开了。是我用记事本修改失误了吗(原因: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 ))
操作完这个步骤,网站就打不开了。是我用记事本修改失误了吗
我只有 wp-confiq-sample.php 文件,没有 wp-confiq.php 文件
我的安装成功。 但是发现页面属性缺失模板选项。 我特别需要用 100% width。 请问老师, 该怎么解决啊?
该评论为私密评论
外贸企业网站买 VPS,不知道什么配置够用?速度和一般的建站公司提供的有明显提升么?会比 BLUEHOST 快么?
料神老师您好,按照您的教程在 linode 上面安装好了 wordpress,运行一切正常.就是在更新 wordpress 最新版本的时候,显示不能更新,然后是一系列文件权限不够的提示,这时候我该怎么做呢? 烦请指教,非常感谢!
通过 sh reset_mysql_root_password.sh 试图重置密码 MySQL server PID file could not be found! Starting MySQL with skip grant tables using mysql to flush privileges and reset password update user set password = Password(‘xxxxx’) where User = ‘root’ ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
@tracy 你好。我也是出现这个问题 请问你最后怎么解决的?
@Jillian 重装的。。。重新弄了一次就好了
Enter current root password of Database (Password will not shown): 这个之后就一直出现 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 请问是为什么啊 确定密码有输入正确 而且后来也通过 sh reset_mysql_root_password.sh 试图重置密码 还是一样显示 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 烦请指教 谢谢
Hi sam, 刚装了 wordpress,我打算先建个网站再把域名解析过来,请问这个过度时期用什么登陆 wp 呢 IP 地址/wp-admin 这样好像不行歪 然后这个我只是放一个 en.domain.com 看的有点不是太明白
料神老师好 抱歉再次求教 买的是 Vultr 服务器 程序是用的 wp 按步骤配置完文件并安装完毕虚拟主机后 域名解析验证完毕是解析成功的 但最后一步在浏览器输入带或不带 W 的域名或者输入域名/wp-admin/或域名+php insatall 的,出现的都是 404 not found 或者打不开 这是什么原因呢?麻烦了!
@Liaosam 料神老师 非常感谢这么快的回复 我试一下。另, 您的留言邮件是收不到的。
SAM,操作过程中出现以下问题,怎么处理呢? Allow access_log? (y/n) 这里是选 y or n =========================== n ====================================================== Create database and MySQL user with same name (y/n) ====================================================== y Enter current root password of Database (Password will not shown): ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 输入 root 密码时一直显示 error
@LiaoSam 谢谢料神,原来那个密码当时就设置为默认的 root, 现在已经搞定了。又有新的问题:记得要先到 phpMyAdmin 创建新的数据库,然后再填写 WordPress 安装的数据库信息表单。 lnmp 下 phpmyadmin 的默认访问位置为:http://vps IP/phpmyadmin/ 是不是用自己的 linode IP 代替”vps IP”? 登陆的用户名和密码是什么呢?
@LiaoSam 1. 谢谢料神的耐心解答。当时误打误撞用户名及密码都写了 root,就登陆成功了!问题来了,因为当时配置环境时没留心所以 mysql 的密码就默认为 root,这个有办法在哪里修改吗? 2. 之前网站放 bluehost,大概是搬家成功了,平常大家都说 vps 比共享主机快,可能由于我的网速慢吧,怎么好像没啥感觉哩? 3. 想把另一个网站再搬过来,一个 linode 下放多个网站,操作步骤与第一个有什么区别吗?有没有哪里需要特别注意的地方? 4. 若是为第二个网站配置 SSL,哪里需要注意吗? 成功地用上 vps, 并且顺利为第一个搬过来的网站做了 SSL,跟着料神的步骤,真心不难!再次感谢料神,料网!
老师,发生了一件诡异的事,按照您的指示在 VPS 里加了 301 重定向,一开始直接复制代码进去了,然后一直跳到 yourdomain.com 去了,然后我就回去检查重新改为自己的域名,还是跳,然后我直接删掉那个代码,还是跳,改完都有重启 lnmp 和 NGINX 的,头大。
@Liaosam 改了也重启 lnmp 和 nginx,还是跳到 yourdomain.com。
301 跳转的那个规则,@主域名做 cdn,然后再指向 vps 的 ip 可以嘛
301 跳转的那个规则,@主域名做 cdn 做做可以嘛
太专业了,看不懂
目前需要一台 win 主机啊。。。
@aunsen win 对 wp 的支持并不完美,如果你是初期学习配置 vps,可以试试