关于小悟志网站地图归档友情链接联系Feed

云上小悟 + 

编译安装LAMP环境运行WordPress

网站建设
2017年3月24日 / 140次阅读
标签:WordPress

拍拍贷

文章《编译安装LAMP环境运行WordPress》的特色图片

两年半前,云上小悟上线的时候,只是在Windows系统中装了一个xampp套件,网站就开始运行了,就这样一直运行了两年半的时间。萌发切换到LAMP环境是在半年前左右,总觉得Windows环境跑一个网站,不如Linux环境;总想做一些技术实践,Windows环境不如Linux方便;自己也想多学习实践一些IT知识和技能;也想把网站事务做得更好更简单一些。

麦新杰大约断断续续地花了2个月左右的时间学习如何编译安装LAMP环境,自己在虚拟机上测试了很多遍之后,才在云服务器上做切换。这是一个必要的前提,各位同学如果也想干这个事情,强烈建议在自己的虚拟机上先实践几次,把可能会踩的坑都踩掉。其实,我就算这样做了,在实际切换的时候,还是踩了坑,没办法,这篇博文就是将这个过程再整理一遍。

 

1, 编译安装Apache

先看这篇:在ubuntu上下载源代码安装apache2.4

自己在虚拟机上装几次,你就明白套路了。注意安装路径的选择,这个每人都有不同的考虑,比如我,就在考虑以后可能出现的装多版本的情况,请参考:在Linux系统上安装多个Apache版本

这是我最后使用的configure配置:

./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre --enable-deflate --with-mpm=worker --with-included-apr

装完之后,启动Apache进程,看看It's works能否看到。

 

2, 编译安装MySQL

先看这篇:在Ubuntu中编译安装MySQL

装好之后,别忘了设置一个root密码,然后进入mysql,给你的WordPress网站设置一个数据库,用户以及密码,这部分可参考:玩WordPress,应知应会的SQL语言!!

这是我使用的安装mysql的configure配置:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

装完之后,启动MySQL进程,看看是否有异常。

MYSQL这部分的内容,在Ubuntu Server版上测试,一切正常,但是在Ubunut桌面版上测试,安装失败,表面上看是/tmp/mysql.sock文件没有生产,底层的原因不详。如果你使用Ubuntu桌面版,请参考:在ubuntu中使用apt安装mysql。其它Linux发行版本本人没有亲测,应该不会有什么太大差异。

 

3, 安装PHP7

PHP7确实比之前的版本要快很多。PHP7的编译安装,要注意跟Apache和MySQL的关联路径:在Ubuntu中编译安装PHP7

我使用的configure配置:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock --enable-mbstring --with-curl --with-gd

上面的配置,有两个路径,一个关联Apache,一个关联MySQL。

安装之后,要修改Apache的配置文件,然后一定要用phpinfo()函数测试一下。

 

但是,这样安装后GD模块不支持jpeg,下面是phpinfo()的输出:

GD Support enabled
GD Version bundled (2.1.0 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
libPNG Version 1.2.54
WBMP Support enabled
XBM Support enabled

 

4, 补充安装PHP的mysql.so模块,zlib模块,openssl模块

mysql.so模块用来让WordPress可以跟MySQL正常建立连接,请参考:编译安装PHP7的MySQL扩展mysql.so

zlib.so模块在WordPress升级版本和插件的时候要用到,WP SUPER CACHE插件也要用到zlib功能:PHP7编译安装zlib.so

openssl.so模块在WordPress发送邮件的时候,如果选择SSL连接SMTP服务器,就会用到:PHP7编译安装openssl.so模块

 

怎么解决gd模块支持jpeg的问题?

追加编译安装gd.so始终不能成功,后续可以尝试两个思路:(1)在第3步编译安装php的时候,增加jpeg参数,让gd支持jpeg(还可以一并支持更多,使用./configure --help查看所有可选参数);(2)在第3步安装的时候,去掉with-gd,在第4步追加编译安装gd.so。

注意安装gd一般需要libjpeg,libpng,freetype,zlib库。

【让GD库支持JPG的问题已经解决,但是要重新编译安装PHP,具体请参考:编译安装PHP7,让GD库支持JPG和PNG

 

5, 将WordPress网站运行起来

以上安装结束后,LAMP环境就搭好了。修改Apache的配置,上传WordPress程序文件,如果是网站迁移,要恢复数据库,然后访问你的网站。

这时,如果一切正常,你的网站就可以正常访问了。

不过,很可能你还会遇到各种问题,比如无法上传图片,访问内页链接全部都是404,甚至访问任何页面都是403 Access Forbidden。我都遇到过了,你可以参考这篇博文:wordpress网站迁移遇到的问题

 

6, 调整Apache和MySQL的参数,减少内存消耗

麦新杰遇到的最严重的问题,也是在自己的虚拟机上发现不了的问题,就是内存不够,在云服务器上(1G内存)的问题现象是:MySQL进程运行几分钟,就自己死掉了。

我只能根据自己的情况来分析一下:

(1) 降低MySQL的内存消耗

默认的MySQL配置要占用较大的内存,几百兆,通过下面的配置,可以将内存消耗限制得100兆以内:

innodb_buffer_pool_size = 16M

performance_schema_max_table_instances=200

table_definition_cache=400

table_open_cache=64

(2)降低Apache并发数量上限

本文介绍的Apache安装,使用的并发方式为worker,worker的默认配置其实也挺大的,对于个人博客网站,流量这么点,完全用不到这么大的并发量。下面的是调整之后的,供参考,这个配置可以保证1G内存的情况下,不使用swap空间,也能正常运行。

关于Apache配置并发数,可以参考学习:

自定义Apache服务器最大并发连接数

优化配置Apache的MPM模块(Worker)

 

7,设置Swap交换分区

麦新杰在第6步的时候,通过减少Apache并发量的配置,来降低内存消耗,但是长期来看,随着流量的增加,以及服务器上其它应用的运行,还是需要一个swap空间来平滑运行。具体设置请参考:设置Linux的Swap交换分区

有了swap交换空间,也不建议明显增大Apache的并发配置,因为这样并不能提高性能,反而会影响性能,swap过程是内存和硬盘之间不断交换数据的过程,很耗时。如果Apache占用的内存能够在基本不交换的情况下被满足,是最好的性能状态。

 

好了,踩了无数坑,终于完成了网站切换LAMP的小目标。

此文将整个切换过程所有细节做了一次全面梳理,应该有些参考价值,喜欢的同学,可以加我QQ,一起学习。

本文链接:http://www.maixj.net/wz/lamp-wp-14796
云上小悟 麦新杰(QQ:1093023102)

-- (*^-^*) --

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号苏ICP备14045477号-1

网站二维码
拍拍贷
go to top