热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从零开始在linux下搭建wordpress博客

一,准备linux环境本地虚拟机可以忽略第一部分微博以及微信的公共平台现在正火的一塌糊涂。既然博客已经上线,准备把一些过程写一下,省的以后我自己忘了。就当留个纪念吧,好歹花了
一,准备linux环境
本地虚拟机可以忽略第一部分

 

微博以及微信的公共平台现在正火的一塌糊涂。既然博客已经上线,准备把一些过程写一下,省的以后我自己忘了。就当留个纪念吧,好歹花了这么长时间。


全文的操作环境为debian。其他linux发行版区别不大。


没有vps的可以在电脑上装个linux虚拟机试试,都一样的。



登入vps


Windows下我一直用的是putty,linux下就不多讲了,ssh就行。在linux的shell下输密码是不显示的。


修改root密码
  1. passwd

添加新用户


一天到晚用root进行操作我觉得是件蛮危险的事…
  1. adduser username

username改成你自己的。


新用户添加到sudo


就是给用户添加root权限。
  1. nano /etc/sudoers

找到User privilege specification,在下面插入一行

  1. username    ALL=(ALL:ALL) ALL

cntrl+o 写入,cntrl+x退出,也可以直接cntrl+x退出,会提示是否保存修改,输入y保存,cntrl+c取消返回。若系统没安装sudo:

  1. apt-get update
  2. apt-get upgrade
  3. apt-get install sudo

修改SSH配置文件(谨慎操作)


ssh的配置文件默认应该在/etc/ssh/ssh_config,ssh默认使用的端口是22,个人认为使用默认端口是不大安全的。由于1024以下的端口是被linux系统占用的,所以我们改个1025到65536就好。打开配置文件

  1. nano /etc/ssh/sshd_config

找到port 22这一行,比如改为2222

  1. port 2222

禁止root账户远程连接:

  1. PermitRootLogin no

仅使用 SSH Protocol 2:

  1. Protocol 2

添加新用户 SSH 访问权限:

  1. AllowUsers username #多用户空格隔开,DenyUsers即禁止访问用户

加速SSH登入禁用UseDNS

  1. UseDNS no

保存退出,并重启ssh

  1. reload ssh

不要退出当前连接,用新建用户和端口登入,若无法登入,请检查ssh配置文件是否出错。


参考文章:
SSH安全性和配置入门


二,安装lnmp

lnmp是一系列的开源软件所组成的服务器环境安装包,取自linux,nginx,mysql和php四个单词的首字母。曾经试用过军哥的lnmp一键安装包,安装简单,配置也简单。不过我这种强迫症不喜欢现成的,说实话在这块鼓捣了好久。因为我一直搞不明白nginx的配置。


安装mysql:


  1. sudo apt-get install mysql-server
安装过程中会要求输入root密码,输入即可。安装完成后执行
  1. sudo mysql_secure_installation
按提示操作即可。建议禁止root远程登入。


安装nginx:


Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,由一家俄罗斯公司开发。具体请百度百科。
  1. sudo apt-get install nginx


安装php:
  1. sudo apt-get install php5-fpm php5-mysql
至此所有安装完成


启动nginx:
  1. sudo service nginx start
这一步若提示[emerg] bind() to 0.0.0.0:80 failed (98:address already in use ),一般是80端口被apache占用所致,杀死所有apache进程:
  1. sudo killall apache2
关闭apache的开机启动:
  1. sudo update-rc.d -f apache2 remove
在浏览器里访问你的IP(本地虚拟机中则是127.0.0.1),出现Welcome to Nginx,则说明nginx启动成功。


nginx配置:
nginx的配置文件在/etc/nginx/nginx.conf,具体设置请参考 Nginx战斗准备 —— 优化指南。注意到这个其中的两行:
  1. include /etc/nginx/conf.d/*.conf;
  2. include /etc/nginx/sites-enabled/;
nginx下的一个虚拟主机就相当于一个网站,每个虚拟主机的配置文件保存在上面两条路径。为了便于管理,我都是在/etc/nginx/conf.d/下新建conf配置文件。打开nginx的默认配置文件,修改使其支持php:
  1. sudo nano /etc/nginx/sites-enable/default
找到server模块,按下修改:
  1. root /usr/share/nginx/www;#网站根目录
  2. index index.php index.html index.htm;
  3. server_name your_IP_address;
往下找到location ~ .php$ ,去掉部分注释
  1. location ~ .php$ {
  2.                 fastcgi_split_path_info ^(.+.php)(/.+)$;
  3.         #        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
  4.         #
  5.         #        # With php5-cgi alone:
  6.         #        fastcgi_pass 127.0.0.1:9000;
  7.         #        # With php5-fpm:
  8.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  9.                 fastcgi_index index.php;
  10.                 include fastcgi_params;
  11.         }
保存修改退出,并重启nginx:
  1. sudo service nginx restart
新建一个phpinfo.php:
  1. sudo nano /usr/share/nginx/www/phpinfo.php
输入:
  1. <;?php phpinfo(); ?>;
保存退出,浏览器访问ipaddress/phpinfo.php,能正常显示php5-fpm的配置信息说明lnmp环境就搭好了。


建议安装phpmyadmin;
  1. sudo apt-get install phpmyadmin
  2. sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www 
  3. sudo service nginx reatsrt
安装过程中会提示输入mysql密码和设置root登录密码,安装完成访问ip-address/phpmyadmin,在本地虚拟机中的,就是 http://127.0.0.1/phpmyadmin,进行管理数据库,


新建一个虚拟主机(添加网站):
复制/etc/nginx/sites-enable/default到/etc/nginx/conf.d/example.conf:
  1. sudo cp /etc/nginx/sites-enable/default /etc/nginx/conf.d/example.conf

 

参考文章:Debian 7 使用Dotdeb源安装LNMP服务器


三,lnmp下安装wordpress
当然可以用其他blog程序,比如国产的typecho,不过wordpress更易于食用。
 
下载最新版wordpress
还是下载中文版wordpress吧
把3.8.1改成最新的番号,详见https://cn.wordpress.org/releases/#latest
解压:
  1. tar -zxvf wordpress*.gz
把解压出来的wordpress文件夹移到某个你想放的地方,个人随意。


创建数据库
装过phpmyadmin的,此时只要进phpmyadmin页面创建一个名为wordpress的数据库就好,其他默认。否则,进mysql创建吧。进入mysql:
  1. mysql -u root -p
创建一个名为wordpress的数据库:
  1. create database wordpress;
以后要是想修改wordpress数据库里的内容:
  1. use wordpress;
这里涉及到mysql命令语句,有兴趣的可以研究一下,不然装个phpmyadmin吧。


安装wordpress
为了安全考虑,修改下web根目录的权限。我习惯直接将解压出来的wordpress目录当作网站的跟目录。
  1. sudo chown www-data:www-data * -R 
  2. sudo usermod -a -G www-data username
www-data是ngimx的默认运行用户。
创建wordpress的nginx配置文件:
  1. sudo nano /etc/nginx/conf.d/wordpress.conf
把下面这段扔进去:
  1. server {
  2.         listen 80 ;#default_server;
  3.         #listen [::]:80 default_server ipv6Only=on;
  4.         root 这里写网站根目录;
  5.         index index.php index.html index.htm;
  6.         # Make site accessible from http://localhost/
  7.         server_name 127.0.0.10;#换成自己的域名或者IP
  8.         location / {
  9.                 #try_files $uri $uri/ =404;               
  10.         try_files $uri $uri/ /index.php?q=$uri&$args;#伪静态
  11.         }
  12.         error_page 404 /404.html;
  13.         error_page 500 502 503 504 /50x.html;
  14.         location = /50x.html {
  15.                 root /usr/share/nginx/html;
  16.         }
  17.         location ~ \.php$ {
  18.                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
  19.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  20.                 fastcgi_index index.php;
  21.                 include fastcgi_params;
  22.         }
  23. }
直接将/etc/nginx/sites-available/default里的内容复制进去也可以:
  1. sudo cp /etc/nginx/sites-available/default  /etc/nginx/conf.d/wordpress.conf
关于wordpress的伪静态规则,上面一种,是wordpress官方给的,网上还可以搜到的比较多见的:
  1. location / {
  2. if (-f $request_filename/index.html){
  3.                 rewrite (.*) $1/index.html break;
  4.         }
  5. if (-f $request_filename/index.php){
  6.                 rewrite (.*) $1/index.php;
  7.         }
  8. if (!-f $request_filename){
  9.                 rewrite (.*) /index.php;
  10.         }
  11. }
最好把 /etc/nginx/sites-available/default和/etc/nginx/sites-enabled/default下的配置文件删掉,不然容易出现问题。之后重启nginx:
  1. rm /etc/nginx/sites-available/default/* /etc/nginx/sites-enabled/defaul/*
  1. sudo service nginx restart

 

在浏览器输入ip或者域名

 


推荐阅读
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Linux的uucico命令使用方法及工作模式介绍
    本文介绍了Linux的uucico命令的使用方法和工作模式,包括主动模式和附属模式。uucico是用来处理uucp或uux送到队列的文件传输工具,具有操作简单快捷、实用性强的特点。文章还介绍了uucico命令的参数及其说明,包括-c或--quiet、-C或--ifwork、-D或--nodetach、-e或--loop、-f或--force、-i或--stdin、-I--config、-l或--prompt等。通过本文的学习,读者可以更好地掌握Linux的uucico命令的使用方法。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有