今天是周六,积累了很多天的内容都要在今天来释放了,因为最近想弄一个自己的主页,查看网上之后,都说wordpress很不错,他是一个开源的后台程序,可以用来搭建自己的博客,论坛等功能。但是有一个蛋疼的地方,他是php写的,之前只弄过JavaWeb相关的后台程序,php不太熟呢,以前也是搭建过Linux+Apache+Tomcat+JavaWeb+MySql,那么这次也正好是一个机会学习一下如何搭建后台PHP系统,这里也是网上比较流行的后台系统组合:Linux+Nginx+MySql+Php。下面我们就先来看看这个如何搭建,以及搭建完成之后,如何把wordpress程序部署到服务器上,然后运行。
我们在搭建系统的时候可以选择在本地,也可以选择在服务器上弄,因为我之前买了一个服务器,所以就没有在本地折腾了,就直接在服务器上开搞了。本地的话其实操作方便点。如果在服务器上直接操刀的话,还需要借助两个工具:
SecureCRT,SecureFX。这两个工具主要用于和服务器进行交互的,其中SecureCRT主要是连接服务器终端,执行命令的,SecureFX主要是连接服务端进行文件传输的。但是可惜的是,这两个软件是要收费的,所以需要去弄一个破解版的,其实这个网上有很多了,这里还是贴出来我用的吧:http://pan.baidu.com/s/1ge1JY3h;
安装了这两个软件之后,我们可以进行连接服务器了,如下图:
那么接下来我们就来一一安装所需要的软件(这里统一将所有的软件包放到服务器上的/usr/local/work目录下面,其中work目录是我新建的,你们可以随意起名称,然后将所有的软件都安装在/usr/local/XXX目录中,XXX代表软件目录):
1、安装openssl软件
下载地址,后面给出
使用SecureFX软件将下载下来的tar.gz包传到服务器上的/usr/local/work下面
这时候使用SecureCRT输入命令行进行解压tar.gz包:
>cd /usr/local/work
>tar -zxvf openssl-1.0.2a.tar.gz
解压完成之后,进入解压目录,进行安装:
>cd openssl-1.0.2a
>./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/conf
这里./config是设置安装前的配置信息,后面都是用这个命令的,其中:--prefix是用来配置安装目录的
运行之后,在执行编译和安装操作
>make && make install
这里make是编译,make install是安装,我们这里都是用源码来安装软件的,所以需要释放源码,编译,安装这三个步骤。
安装完成之后,需要检验一下安装释放成功:
>cd /usr/local/openssl/bin
>./openssl version -a
注意,Linux中一般安装软件之后,都会在指定目录下的bin或者sbin等目录下有对应的执行命令,一定要注意前面有一个点号,在运行命令的时候。
2、安装pcre软件
下载地址,后面给出
下载完成之后,使用SecureFX将文件传递到服务端的:/usr/local/work目录下
这时候使用SecureCRT输入命令行进行解压tar.gz包:
>cd /usr/local/work
>tar -zxvf pcre-8.34.tar.gz
解压完成之后,进入解压目录,进行安装:
>cd pcre-8.34
>./configure --prefix=/usr/local/pcre/
>make && make install
3、安装zlib软件
下载地址,后面给出
下载完成之后,使用SecureFX将文件传递到服务端的:/usr/local/work目录下
这时候使用SecureCRT输入命令行解压tar.gz包:
> /usr/local/work
>tar -zxvf zlib-1.2.8.tar.gz
解压完成之后,进入解压目录,进行安装:
>cd zlib-1.2.8
>./configure --prefix=/usr/local/zlib/
>make && make install4、安装nginx软件
上面三个软件其实都是为nginx安装做好准备条件的,所以上面的三个软件一定要安装成功,不然下面的安装就不能进行了。
下载地址,后面给出
下载完成之后,使用SecureFX将文件传递到服务端的:/usr/local/work目录下
知识后使用SecureCRT输入命令行解压tar.gz包:
>/usr/local/work
>tar -zxvf nginx-1.8.0.tar.gz
解压完成之后,进入解压目录,进行安装:
>cd nginx-1.8.0.tar.gz
这里还需要建立一个用户组和用户:
>groupadd jiangwei
>useradd -g jiangwei jiangwei
>./configure --user=jiangwei --group=jiangwei --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-http_stub_status_module --with-threads
这里我们看到:--with-openssl,--with-pcre,--with-zlib 这三个参数是依赖关系,指定的是上面三个软件安装之后的目录,编译nginx的时候,需要这三个依赖,我们运行,出现了如下错误:
/bin/sh: ./configure: No such file or directory
make[1]: *** [/usr/local/services/lib/pcre/Makefile] Error 127
说找不到pcre的.configure文件,然后我仔细查看错误信息,之后发现./configure 没有找到,这时候我们意识到了,nginx在安装的时候需要自己从新编译pcre,所以这里--with-pcre 应该指定的是pcre的源码目录,为了防止后面两个依赖包出现类似错误,我们都将使用源码目录:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/work/openssl-1.0.2a --with-pcre=/usr/local/work/pcre-8.34 --with-zlib=/usr/local/work/zlib-1.2.8 --with-http_stub_status_module --with-threads
再次运行,OK了,然后在编译安装:
>make && make install
好了,这里nginx就安装成功了,这里遇到问题需要注意的是,nginx编译安装的时候会自己去编译依赖包,所以需要指定依赖包的源码目录,不是安装目录,这里我们发现,上面三个软件其实只要解压即可,都不需要安装了。
安装之后,我们可以检验一下:
>cd /usr/local/nginx/sbin
>./nginx -V
运行结果:
当然nginx作为一个http服务器,他肯定有相应的配置信息,那么下面我们就来看看配置信息文件:
/usr/local/nginx/conf/nginx.conf
我们这里主要看两个信息,
1> 一个是端口和host
这里我们将端口改成8888,因为之前弄的是apache+tomcat,80这个默认端口被占用了,现在又不想全部使用nginx,所以只好想用8888这个端口来操作了。
2>一个就是后台程序的根目录和首页信息,这个和当初配置tomcat都是类似的。
其中location是表示后台程序的配置信息:
root:表示项目的路径
index:表示项目的默认首页
include:表示可以包含的其他配置信息
看完配置信息之后,我们就可以运行我们的nginx了,进入sbin目录下,运行nginx命令即可
>cd /usr/local/nginx/sbin
>./nginx
运行完毕,这时候我们可以使用ps命令查看nginx是否启动成功:
>ps -ef |grep nginx
这里看到有两个进程,一个是master,一个是worker,我们后面想停止nginx的话,就是用:
kill -QUIT master进程号
来停止nginx的。
nginx运行成功之后,我们可以输入网址:http://www.wjdiankong.cn:8888
其中www.wjdiankong.cn是我的域名:
好了,到此,nginx就配置成功啦啦啦。
下面我们还需要在安装php
1、安装libmcrypt
下载地址,后面给出
下载完成之后,使用SecureFX传输到服务器上的:/usr/local/work 目录中
然后进行解压:
>cd /usr/local/work
>tar -zxvf libmcrypt-2.5.8.tar.gz
解压完成之后,进入目录进行安装:
>cd /usr/local/work/libmcrypt-2.5.8
>./configure --prefix=/usr/local/libmcrypt
>make && make install
2、安装mhash
下载地址,后面给出
下载完成之后,使用SecureFX传输到服务器上的:/usr/local/work 目录中
然后进行解压:
>cd /usr/local/work
>tar -zxvf mhash-0.9.9.9.tar.gz
解压完成之后,进入目录进行安装:
>cd /usr/local/work/mhash-0.9.9.9
>./configure --prefix=/usr/local/mhash
>make && make install
3、安装libxml2
下载地址,后面给出
下载完成之后,使用SecureFX传输到服务器上的:/usr/local/work 目录中
然后进行解压:
>cd /usr/local/work
>tar -zxvf libxml2-2.6.32.tar.gz
解压完成之后,进入目录进行安装:
>cd /usr/local/work/libxml2-2.6.32
>./configure --prefix=/usr/local/libxml2
>make && make install
4、安装php5
上面三个软件安装完成之后,下面就来安装一下php了,
下载地址,后面给出
下载完成之后,使用SecureFX传输到服务器上的:/usr/local/work 目录中
然后进行解压:
>cd /usr/local/work
>tar -zxvf php-5.5.33.tar.gz
解压完成之后,进入目录进行安装:
>cd /usr/local/work/php-5.5.33
>./configure --prefix=/usr/local/php --with-mysql=/usr --enable-fpm --enable-fastcgi --with-libxml-dir=/usr/local/libxml2 --disable-fileinfo --with-zlib-dir=/usr/local/work/zlib-1.2.8
这里的配置信息还是需要解释一下的:
1>、--with-mysql
这个一定要带上,因为后面php需要扩展mysql,因为wordpress程序需要,如果没有的话,后面会出现这样的错误:
所以,我当时忘记加上这个参数,结果从新安装的,网上有人说可以后续添加扩展,但是我尝试了好几次失败了,最后无奈从新安装php的。
2>、--enable-fpm和--enable-fastcgi
这个参数也很重要,如果没有开启的话,后面nginx是不能搭建php的,访问也是失败的,具体fpm是干啥的,下面就简单解释一下说白了,就是nginx解析php的一个中间程序。
Nginx是个轻量级的HTTP server,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此Nginx+spawn-fcgi的组合也可以实现对PHP的解析,这里不过多讲述。PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。
3>、--disable-fileinfo
这个参数也是很重要的,如果没有添加的话,我们在编译的时候会出现如下错误:
virtual memory exhausted Cannot allocate memory
make:*** [ext/fileinfo/libmagic/apprentice.lo] Error 1
编译这个fileinfo扩展至少要700M内存。这个也算是php的一个bug了,就是你在编译的时候,感觉php会提示内存不足的情况,官方也给出了详细解释:https://bugs.php.net/bug.php?id=48809
4>、--with-libxml-dir
这个是依赖libxml安装包目录
5>、--with-zlib-dir
这个是依赖zlib的源码包目录
好了,我们开始执行命令,但是事情总不是那么顺利的,我们还是遇到了错误:
configure: error: Cannot find MySQL header files under yes.Note that the MySQL client library is not bundled anymore.
这是由于安装mysql时没有安装mysql头文件,或者是路径指定不正确,php找不到mysql的头文件引起的错误提示。这时候我们可以进行编译安装了:
>make && make install
到这里我们的php就安装完成了,但是我们还需要做两件事才能运行php
1、拷贝php.ini配置文件
我们需要手动将php的源码目录中的php.ini-production拷贝到php的安装目录lib下,并且修改名称为:php.ini
>cd /usr/local/work/php-5.5.33
>cp php.ini-production /usr/local/php/lib/php.ini
这个配置文件很重要,后面就是用来配置php的各种参数信息的
2、修改php-fpm-default.conf文件名
在php的安装目录下的etc目录中,将php-fpm-default.conf改成php-fpm.conf
上面的工作都做好了,这时候我们可以启动php了,进入sbin目录下,执行php-fpm命令即可
>cd /usr/local/php/sbin
>./php-fpm
运行完之后,我们也是通过ps命令查看是否启动成功:
这里我们看到了有一个master进程,启动成功了,后面在停止php的时候我们也是用同样命令停止:
kill -QUIT php进程号
上面安装了nginx+php之后,下面我们就将他们两个关联起来,然后用一个测试的php页面来跑一下:
首先我们还是需要打开nginx的配置文件:
把这部分注释打开,参数信息如下:
root:php的工程目录
fastcgi_pass:fgi的地址,就是我们的php-fpm进程的地址,我们可以查看一下php-fpm.conf文件:
fastcig_index:php项目的默认首页
include:包含的配置信息文件
这时候我们用一个php测试页面来跑一下:
在project中新建一个test.php文件:
>cd /usr/local/nginx/project
>echo "<?php phpinfo();" > test.php
这时候,我们访问一下:http://www.wjdiankong.cn:8888/test.php
这里我们看到了我们安装的php信息,都可以看到,而且这个页面我们最好在每个项目中都保留一下,后面我们在修改php的配置信息的时候,可以从这里来查看一下,后面会使用到这个功能。
好了,到这里我们就搭建好了LNMP后台了,因为本生买了服务器,可以选择Linux系统,所以这里就不会再介绍如何安装Linux系统了,因为之前在弄Apache+tomcat+JavaWeb+mysql的时候,服务器上已经安装了mysql了,所以这里也没有介绍了,安装mysql还是很简单的。
那么下面我们就来搭建一下wordpress程序了,我们可以去wordpress官网去下载这个程序,后面我会给出下载地址的,
使用SecureFX将程序上传到:/usr/local/nginx/project中
解压:
>cd /usr/local/nginx/project
>tar -zxvf wordpress-4.4.2-zh_CN.tar.gz
这时候,我们就可以直接访问:http://www.wjdiankong.cn:8888/wordpress
出现了wordpress的安装界面,这个安装也是很简单的,直接点击就可以了,但是这里需要注意的一个问题就是:
我们需要手动的去创建一个数据库:wordpress,不然后面wordpress程序会提示连接不到这个数据库。
这里我们可以使用navicat客户端快速的创建一个数据库即可。当然这里的数据库名称和下面图片中的数据库名称要一致呀,然后就是连接mysql的用户名和密码了
wordpress程序会连接这个数据库,创建对应的表。我们写的文章,用户信息都会存在这个数据库中的对应表中。
当我们设置完成之后,就可以进入wordpress系统了:
这里看到这个页面还是很兴奋的,当然我们第一步是要定制自己喜欢的样式了,wordpress还是很强大的,可以选择主题和各种插件,具体什么功能网上都是有的,这里就不做太多的解释了:
下面在说一下我在使用的过程中遇到的两个问题:
1、wordpress搭建成功登陆出现403和404
403的问题:
我直接修改了整个wordpress项目的权限:
chmod 777 -R wordpress
404的问题:
修改nginx.conf配置文件信息,将下面的代码粘贴进去:
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
2、在写大文本的博客的时候,出现内存不足
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 72 bytes)
网上有很多人说修改php.ini中的memory_limit参数,但是我发现不管怎么修改 php.ini 里的memory_limit 都无法修改成功,phpinfo() 里显示还是原来的数值。今天早上随手vim一下 php-fpm.conf 文件,发现 php_admin_value[memory_limit] = 64M,修改为128M,从新运行php-fpm程序,修改成功!可以使用phpinfo函数查看php配置信息。
所有的安装软件下载地址:http://download.csdn.net/detail/jiangwei0910410003/9466460
好了,到这里,我们就说完了如何搭建LNMP环境来运行wordpress程序,开发一个属于自己的网站,成为一名小小的站长,因为这篇文章是属于工具类的文章,所以各个人的环境不一样,所以遇到的问题肯定也是不一样的,所以遇到什么问题最后自己去搜索解决即可。最后在给出我的网站:http://www.wjdiankong.cn:8888/blog
我的个人主页也顺便搭建完成:http://www.wjdiankong.cn
首页用的是html5+css3,后面会写一些关于前端技术开发的文章
PS: 关注微信,最新Android技术实时推送