编译安装LAMP环境运行WordPress

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
让GD库支持JPG的问题已经解决,但是要重新编译安装PHP,具体请参考:编译安装PHP7,让GD库支持JPG和PNG

 

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库。

 

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

<IfModule mpm_worker_module>
    StartServers             2
    MinSpareThreads         10
    MaxSpareThreads         30
    ThreadsPerChild         20
    MaxRequestWorkers       40
    MaxConnectionsPerChild  50000
</IfModule>

<IfModule mpm_worker_module>
    StartServers             2
    MinSpareThreads         10
    MaxSpareThreads         30
    ThreadsPerChild         20
    MaxRequestWorkers       40
    MaxConnectionsPerChild  50000
</IfModule>
关于Apache配置并发数,可以参考这篇博文:自定义Apache服务器最大并发连接数

 

7,设置Swap交换分区

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

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

 

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

未经允许不得转载:淘淘源码吧 » 编译安装LAMP环境运行WordPress