采用企业级LNMP环境实现WordPress中文站点


操作系统:CentOS release 6.8 (Final)Web服务器软件:Nginx-1.6.3.tar.gz数据库系统:MySQL5.5.52PHP版本: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 -tnginx: theconfiguration file /application/nginx/conf/nginx.conf syntax is oknginx:[emerg] getgrnam(“nignx”) failednginx: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 oknginx: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 PIDUSER FD TYPE DEVICE SIZE/OFF NODE NAMEhttpd 1451root 4u IPv610731 0t0 TCP *:http (LISTEN)httpd 1496 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1497 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1498 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1499 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1500 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1501 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1502 apache 4uIPv6 10731 0t0TCP *:http (LISTEN)httpd 1503 apache 4uIPv6 10731 0t0TCP *: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 PIDUSER FD TYPEDEVICE SIZE/OFF NODE NAMEnginx17530 root6u IPv4 3271777 0t0TCP *:webcache (LISTEN)nginx17531nobody 6u IPv4 3271777 0t0TCP *:webcache (LISTEN)[root@Cacticonf]# netstat -lnt|grep 80tcp 00 0.0.0.0:8080 0.0.0.0:*LISTEN tcp 0 0 :::36780 :::* LISTENtcp 00 :::80 :::* LISTEN
[root@Cacticonf]# ps -ef|grep nginxroot 3000 15790 0 16:22 pts/0 00:00:00 /application/nginx/sbin/nginxroot 6336 15790 0 16:36 pts/0 00:00:00 grep nginxroot 175301 0 16:28 ? 00:00:00 nginx: master process/application/nginx/sbin/nginxnobody 17531 175300 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!

body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial,sans-serif; }

Welcometo nginx!

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

Ifyou see this page, the nginx web server is successfully installed andworking.Further configuration is required.

Foronline documentation and support please refer to

Foronline documentation and support please refer tonginx.org.
Commercialsupport is available atnginx.com.

Thankyou for using nginx.

Thankyou for using nginx.[root@Cacticonf]# ../sbin/nginx -Vnginxversion: nginx/1.6.3built 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… nochecking formingw32 environment… nochecking foregrep… grep -Echecking fora sed that does not truncate output… /bin/sedchecking hostsystem type… config.sub: missing argumentTry`config.sub –help’ for more information.checkingtarget system type… config.sub: missing argumentTry`config.sub –help’ for more information.checking forgcc… nochecking forcc… noconfigure: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 no开发云主机域名t 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/binln -s -f/application/php5.3.27/bin/phar.phar /application/php5.3.27/bin/pharInstallingPDO 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/phplrwxrwxrwx 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]# lltotal 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.defaultphp-fpm.conf启动PHP服务php-fpm:[root@Cactietc]# /application/php/sbin/php-fpm检查php服务php-fpm的进程及启动端口的情况:[root@Cactietc]# ps -ef|grep php-fpmroot 233211 0 17:43 ? 00:00:00 php-fpm: master process(/application/php5.3.27/etc/php-fpm.conf)nginx 23322 233210 17:43 ? 00:00:00 php-fpm:pool www nginx 23323 233210 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 PIDUSER FD TYPEDEVICE SIZE/OFF NODE NAMEphp-fpm23321 root 7uIPv4 3871264 0t0 TCP localhost:cslistener (LISTEN)php-fpm 23322nginx 0u IPv4 3871264 0t0TCP localhost:cslistener (LISTEN)php-fpm 23323nginx 0u IPv4 3871264 0t0TCP localhost:cslistener (LISTEN)配置Nginx支持PHP程序请求访问#vinginx.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 -tnginx: theconfiguration file /application/nginx/conf/nginx.conf syntax is oknginx: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 –pmysql>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.phpwp-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

相关推荐: redisLock redis分布式锁

redis setnx 命令特性当指定key不存在时才设置。也就是说,如果返回1说明你的命令被执行成功了,redis服务器中的key是你之前设置的值。如果返回0,说明你设置的key在redis服务器里已经存在。如果设置成功了,才进行过期时间设置,防止你的ret…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/30 11:06
下一篇 03/30 11:06