采用企业级LNMP环境实现Wordpress中文站点
admin
2023-03-17 17:01:15
0

操作系统:CentOS release 6.8 (Final)

Web服务器软件:Nginx-1.6.3.tar.gz

数据库系统:MySQL 5.5.52

PHP版本:php 5.3.3

站点程序:wordpress-4.7.4-zh_CN.tar.gz
任务:分别采用单台服务器和双台服务器实现LNMP架构。

附件:提供所有配置×××。

检查安装Nginx所需要的lib

[root@Cacti~]#rpm -qa pcre pcre-devel 

[root@Cacti~]# yum install pcre pcre-devel  –y

[root@Cacti~]# yum install openssl openssl-devel  –y

 开始安装Nginx

[root@Cactitools]# wget http://nginx.org/download/nginx-1.6.3.tar.gz

[root@Cactitools]# ls  -l nginx-1.6.3.tar.gz

[root@Cactitools]# useradd  nginx -s /sbin/nologin –M

[root@Cactitools]# tar xf  nginx-1.6.3.tar.gz

[root@Cactitools]# cd nginx-1.6.3

[root@Cactinginx-1.6.3]#./configure\

--user=nginx\

--group=nignx\

--prefix=/application/nginx\

--with-http_stub_status_module\

--with-http_ssl_module

[root@Cactinginx-1.6.3]#make

[root@Cactinginx-1.6.3]#make install

 启动并检查安装结果:

启动前检查配置文件语法:

[root@Cactinginx-1.6.3]# /application/nginx/sbin/nginx -t

nginx: theconfiguration file /application/nginx/conf/nginx.conf syntax is ok

nginx:[emerg] getgrnam("nignx") failed

nginx:configuration file /application/nginx/conf/nginx.conf test failed

[root@Cactilogs]# cat error.log

2017/07/1216:15:07 [emerg] 17992#0: getgrnam("nignx") failed

[root@Cacticonf]# vi nginx.conf

#user  nobody;  #去掉最前面的#号即解决启动错误的问题

nginx: option"-s" requires parameter

[root@Cacticonf]# /application/nginx/sbin/nginx –t   #检查语法

nginx: theconfiguration file /application/nginx/conf/nginx.conf syntax is ok

nginx:configuration file /application/nginx/conf/nginx.conf test is successful

 

[root@Cacticonf]# /application/nginx/sbin/nginx   #启动Nginx服务

nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  #存在端口冲突

 

#原因是Apache与Nginx默认都是80端口

[root@Cacticonf]# lsof  -i:80    #Nginx服务对应的端口存在冲突

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

httpd   1451  root    4u  IPv6 10731      0t0  TCP *:http (LISTEN)

httpd   1496 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1497 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1498 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1499 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1500 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1501 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1502 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

httpd   1503 apache    4u IPv6  10731      0t0 TCP *:http (LISTEN)

 #修改nginx默认端口,改为8080端口

server {

        listen       8080;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

[root@Cacticonf]# pkill nginx   #杀掉进程,以便重启Nginx服务

[root@Cacticonf]# /application/nginx/sbin/nginx

 

[root@Cacticonf]# lsof -i:8080     #Nginx服务对应的端口成功启动  

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx  17530   root   6u  IPv4 3271777      0t0 TCP *:webcache (LISTEN)

nginx  17531nobody    6u  IPv4 3271777      0t0 TCP *:webcache (LISTEN)

 

[root@Cacticonf]# netstat -lnt|grep 80

tcp    0   0 0.0.0.0:8080      0.0.0.0:* LISTEN

tcp   0      0 :::36780           :::*    LISTEN     

tcp        0     0 :::80         :::*    LISTEN 


[root@Cacticonf]# ps -ef|grep nginx

root      3000 15790  0 16:22 pts/0    00:00:00 /application/nginx/sbin/nginx

root      6336 15790  0 16:36 pts/0    00:00:00 grep nginx

root     17530    1  0 16:28 ?        00:00:00 nginx: master process/application/nginx/sbin/nginx

nobody   17531 17530 0 16:28 ?        00:00:00 nginx:worker process       

root     31232 15790  0 16:20 pts/0    00:00:00 /application/nginx/sbin/nginx

检查Nginx启动实际效果:

[root@Cacticonf]# wget 127.0.0.1:8080    #查看本地的index.html文件

[root@Cacticonf]# curl  127.0.0.1:8080    #直接在屏幕上输出效果

Welcometo nginx!

Welcometo nginx!

Ifyou see this page, the nginx web server is successfully installed and

working.Further configuration is required.

Foronline documentation and support please refer to

nginx.org.

Commercialsupport is available at

nginx.com.

Thankyou for using nginx.

[root@Cacticonf]# ../sbin/nginx -V

nginxversion: nginx/1.6.3

built by gcc4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

 

检查安装php所需要的lib 

#yum instal zlib-devel libxml2-devel libjped-devel libjpeg-turbo-devel libiconv-devel -y

# yum instal lfreetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel –y

# yum install libmcrypt-devel

# yum install mhash

# yum install mcrypt -y

[root@Cactitools]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

[root@Cactitools]# tar zxf libiconv-1.14.tar.gz

[root@Cactilibiconv-1.14]# ./configure  --prefix=/usr/local/libiconv

[root@Cactilibiconv-1.14]# make && make install

 

开始安装php

[root@Cacti~]# mkdir /home/tools –p

[root@Cactitools]# wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz

[root@Cacti tools]# tar zxf php-5.3.27.tar.gz

[root@Cactitools]# cd php-5.3.27

[root@Cactiphp-5.3.27]# ./configure  \

--prefix=/application/php5.3.27 \

--with-mysql=/application/mysql  \

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-fpm \

--with-fpm-user=nginx \

--with-fpm-group=nginx \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--with-curlwrappers \

--enable-mbregex \

--with-mcrypt \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--enable-short-tags \

--enable-zend-multibyte \

--enable-static \

--with-xsl \

--enable-safe-mode \

--enable-ftp

……

checking forCygwin environment... no

checking formingw32 environment... no

checking foregrep... grep -E

checking fora sed that does not truncate output... /bin/sed

checking hostsystem type... config.sub: missing argument

Try`config.sub --help' for more information.

 checkingtarget system type... config.sub: missing argument

Try`config.sub --help' for more information.

 checking forgcc... no

checking forcc... no

configure:error: no acceptable cc found in $PATH

解决上述问题:

# yum install -y gcc-c++

[root@Cactiphp-5.3.27]#./configure  \    #重新编译

--prefix=/application/php5.3.27 \

--with-mysql=/application/mysql  \

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-fpm \

--with-fpm-user=nginx \

--with-fpm-group=nginx \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--with-curlwrappers \

--enable-mbregex \

--with-mcryp t\

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--enable-short-tags \

--enable-zend-multibyte \

--enable-static \

--with-xsl  \

--enable-safe-mode \

--enable-ftp

 

#重新配置后的问题:

configure:error: Cannot find MySQL header files under /application/mysql.

Note that theMySQL client library is not bundled anymore!

#不管怎么变更该数据库的路径,还是编译通还过

解决办法就是:

#mkdir /usr/lib/msyql –p   

#cp  /usr/lib64/mysql/*  /usr/lib/mysql/

然后进行./configure即可,如果服务器没有/usr/lib/mysql/ 目录,则在/usr/lib/目录下创建mysql目录即可

+--------------------------------------------------------------------+

|License:                                                          |

| Thissoftware is subject to the PHP License, available in this     |

|distribution in the file LICENSE.  Bycontinuing this installation |

| process,you are bound by the terms of this license agreement.     |

| If you donot agree with the terms of this license, you must abort |

| theinstallation process at this point.                            |

+--------------------------------------------------------------------+

Thank you forusing PHP.

[root@Cactiphp-5.3.27]#make    #编译

[root@Cactiphp-5.3.27]#make install   #安装

/home/tools/php-5.3.27/build/shtoolinstall -c ext/phar/phar.phar /application/php5.3.27/bin

ln -s -f/application/php5.3.27/bin/phar.phar /application/php5.3.27/bin/phar

InstallingPDO headers:  /application/php5.3.27/include/php/ext/pdo/

[root@Cactiphp-5.3.27]# ln  -s/application/php5.3.27/  /application/php  #设置软链接

[root@Cactiphp-5.3.27]# ls  -l /application/php

lrwxrwxrwx 1root root 23 Jul 12 17:14 /application/php -> /application/php5.3.27/

 

[root@Cactiphp-5.3.27]# cp php.ini-production  /application/php/lib/php.ini  #拷贝php的配置文件到PHP默认目录

在linux上编译安装PHP时,为什么php/etc/目录下没有找到php-fpm.conf.default这个文件?

解答:原因在拷贝配置文件执行时,有部分代码没有执行。

注意:当执行一大块代码结束后并没有报错,但没有执行的配置语句会重新显示出来。

[root@Cactiphp-5.3.27]# cd  /application/php/etc/     #配置文件php-fpm.confs

[root@Cactietc]# ll

total 28

-rw-r--r-- 1root root  1232 Jul 12 17:41 pear.conf

-rw-r--r-- 1root root 21683 Jul 12 17:41 php-fpm.conf.default

[root@Cactietc]# cp php-fpm.conf.default php-fpm.conf

启动PHP服务php-fpm:

[root@Cactietc]# /application/php/sbin/php-fpm

检查php服务php-fpm的进程及启动端口的情况:

[root@Cactietc]# ps -ef|grep php-fpm

root     23321    1  0 17:43 ?        00:00:00 php-fpm: master process(/application/php5.3.27/etc/php-fpm.conf)

nginx    23322 23321 0 17:43 ?        00:00:00 php-fpm:pool www           

nginx    23323 23321 0 17:43 ?        00:00:00 php-fpm:pool www            

root     23325 15790  0 17:43 pts/0    00:00:00 grep php-fpm

[root@Cactietc]# lsof -i :9000  

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

php-fpm23321  root    7u IPv4 3871264      0t0  TCP localhost:cslistener (LISTEN)

php-fpm 23322nginx    0u  IPv4 3871264      0t0 TCP localhost:cslistener (LISTEN)

php-fpm 23323nginx    0u  IPv4 3871264      0t0 TCP localhost:cslistener (LISTEN)

 

配置Nginx支持PHP程序请求访问

#vi nginx.conf   #修改配置文件

location~.*\.(php|php5)?$ {

               root html;

              fastcgi_pass 127.0.0.1:9000;

              fastcgi_index index.php;

              include fastcgi.conf;

          }

#检查并启动Nginx

[root@Cacticonf]# ../sbin/nginx -t

nginx: theconfiguration file /application/nginx/conf/nginx.conf syntax is ok

nginx:configuration file /application/nginx/conf/nginx.conf test is successful

[root@Cacticonf]# ../sbin/nginx -s reload

测试LNMP环境生效的情况:

[root@Cactihtml]# echo "" >test_info.php

[root@Cactihtml]# cat test_info.php


PHP连接MySQL的情况进行测试:

[root@Cactihtml]# vi test_mysql.php

$link_id=mysql_connect('localhost','root','*****')or mysql_error();

if($link_id){

    echo "mysql successful byskyboy!";

}else{

    echo mysql_error();

  }

?>

 

下面部署一个wordpress程序服务:

1.先创建一个专用的数据库WordPress

[root@Cactihtml]# mysql -uroot –p

mysql>create database wordpress;

Query OK, 1row affected (0.00 sec)

mysql>show databases like 'wordpress';

+----------------------+

| Database(wordpress) |

+----------------------+

|wordpress            |

+----------------------+

1 row in set(0.00 sec)

 

Nginx及PHP环境配置准备:

         location / {

            root   html;

            index  index.php index.html index.htm;

        }

         location ~.*\.(php|php5)?$ {

              root  html;

              fastcgi_pass 127.0.0.1:9000;

              fastcgi_index index.php;

              include fastcgi.conf;

          }

[root@Cactihtml]# wget  https://tw.wordpress.org/wordpress-4.8-zh_TW.tar.gz

[root@Cactihtml]# tar xf wordpress-4.8-zh_TW.tar.gz

[root@Cactihtml]# mkdir blog

[root@Cactihtml]# mv wordpress blog/

[root@Cactihtml]# chown  -R nginx.nginx blog

测试情况:浏览器显示Filenot found.

解答:原因是解析不到程序,建设直接放到html目录下,避免发生找不到程序的问题。

 [root@Cactiwordpress]# cp wp-config-sample.php  wp-config.php

 [root@Cactiwordpress]# vi  wp-config.php #配置数据库名、用户名和密码即可

 配置成功。

以上是通过一台服务器架构LNMP;

下面通过两台服务器架设LNMP,也很简单:

.8服务器: 做Nginx服务器,将wordpress放到nginx的html目录下,配wp-config.php文件。

/** WordPress数据库的名称 */

define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */

define('DB_USER', '***');

/** MySQL数据库密码 */

define('DB_PASSWORD', '*****');

/** MySQL主机 */

define('DB_HOST', '.9服务器IP');

.9服务器:做Mysql服务器,创建wordpress数据库。


技巧:当服务器每次重启的时候需要nginx、php-fpm服务自动启动。

#vi /etc/rc.local     #在默尾增加两条命令

/application/nginx/sbin/nginx   

/application/php/sbin/php-fpm


运行结果:http://117.40.239.8:8080/wordpress

附件:http://down.51cto.com/data/2366842

相关内容

热门资讯

ICC逮捕令致内塔尼亚胡出行受... 【环球网报道】据以色列《新消息报》网站26日报道,由于国际刑事法院(ICC)2024年就以色列在巴勒...
“罗永浩怒斥电视机厂商”戳中了... 7月25日晚,罗永浩发文怒斥当下电视机的产品设计。据都市快报报道,罗永浩表示,他为家中老人换了两次电...
各地各部门坚持人民至上筑牢防汛... 新华社北京7月25日电 题:风雨同舟映初心——各地各部门坚持人民至上筑牢防汛抗洪坚实堤坝新华社记者当...
法院回应LV起诉地产开发商 7月26日,厦门市湖里区人民法院发布情况通报,网传案情“路易威登公司起诉地产开发商,因楼盘外立面四叶...
携程的问题不仅在于垄断,更在于... 国内平台科技企业一般都是通过向B端收费、抽佣获利,尽量给消费者创造一个比较清爽的使用环境。携程算是最...
海信电视用遥控器关闭后打不开 原因可能是遥控器的电池没有装好或者是没电了,需要重新安装一下电池或者更换新的电池试一试;原因可能是电...
电视机突然没电源打不开了 有可能是电视开关的电源线断了;可能是电视在使用时短路;可能是电源插头插座松动;可能是电视内部零件接触...
电热水器下面那个小龙头漏水是怎... 电热水器下面那个小龙头漏水是怎么回事?1、因为安全阀发生了故障或者是已经被损坏了,就会有漏水的现象;...
回答下电脑桌面一片空白怎么恢复 电脑桌面上如果是一片空白,那说明您的电脑图标被隐藏了,想要恢复就要按照如下的三个步骤去操作才行。 第...
澳总理要找特朗普“理论”关税:... 当地时间7月26日,澳大利亚总理阿尔巴尼斯表示,他将直接向美国总统特朗普提出抗议,反对美国新近宣布的...