LNMP就是Linux+Nginx+MySQL+PHP,Linux作为服务器的操作系统,MySQL即为数据库。本文主要介绍PHP和Nginx的关系。
优点:
作为Web 服务器:相比Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持PHP 和MySQL数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。[1]
优点
1. WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;
2. wordpress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;
3. 适合DIY,如果你是喜欢丰富内容的网站,那么wordpress可以很好地符合你的胃口。
4. 主题很多,网站上一大片都是wordpress的主题,各色各样,应有尽有!
5. wordpress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。
6. wordpress有强大的社区支持,有上千万的开发者贡献和审查wordpress,所以wordpress是安全并且活跃的。
缺点
1. wordpress源码系统初始内容基本只是一个框架,需要时间自己搭建;
2. 插件虽多,但是不能安装太多插件,否则会拖累网站速度和降低用户体验;
3. 服务器空间选择自由较小!
4. 静态化较差,确切地说是真正静态化做得不好,如果要想对整个网站生成真正静态化页面,还做不好,最多只能生成首页和文章页静态页面,所以只能对整站实现伪静态化!
5. wordpress的博客程序定位,简单的数据库层等都注定了他不能适应大数据。
本次技术文章的系统版本号如下:
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
(1)修改时间为中国的时间
#cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
y
(2)重启linux:
#reboot
(3)确认查看当前时区是否为中国时区(GMT+8)
#date -R
(1)配置防火墙,开启
80端口:http访问
3306端口:SQL
命令如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
(2)重启防火墙:
systemctl restart firewalld.service
(3)查看防火墙已开放的端口命令:
firewall-cmd --zone=public --list-ports
(应该显示为:3306/tcp 80/tcp)
(1)关闭SELINUX (必须做,否则在新建wordpress账号时提示失败,不能写入)
命令如下:
vi /etc/selinux/config
加注释:”#”号
#SELINUX=enforcing
#SELINUXTYPE=targeted
(2)增加命令;
SELINUX=disabled
(3)保存,关闭:
:wq
(4)重启系统:
shutdown -r now
(5)查看SELinux状态:
sestatus
(应该显示为:SELinux status: disabled)
由于CentOS默认的标准源里没有nginx软件包,所以我们要手动添加第三方源。
(1)安装下载工具wget:
yum install wget -y
(2)下载atomic yum源:
Wget http://www.atomicorp.com/installers/atomic
(3)安装:
sh ./atomic
(4)更新yum软件包:
yum check-update
安装nginx,命令如下:
(1)安装nginx:
yum install -y nginx
(2)启动服务:
service nginx start
(3)设为开机启动:
chkconfig nginx on
(4)重启服务:
systemctl restart nginx.service
(5)删除nginx默认测试页:
rm -rf /usr/share/nginx/html/*
(6)检查nginx配置文件的语法是否正确:
nginx -t -c /etc/nginx/nginx.conf
(1)安装MySQL,命令如下:
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载:
|
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm |
yum install mysql mysql-server -y
(2)设置mysql开机启动
[root@linuxidc ~]# systemctl restart mysqld.service
[root@linuxidc ~]# systemctl enable mysqld.service
(3)拷贝配置文件:
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
(4)为root账户设置密码:
初次安装mysql是root账户是没有密码的,设置密码的方法如下:
|
Mysql -uroot mysql> set password for 'root'@'localhost' = password('Admin#123'); mysql> exit; |
(注:; 这个符号必须加!)
(5)MySql密码设置完成,重新启动MySQL:
service mysqld restart
(1)安装PHP:
yum install php -y #根据提示输入Y直到安装完成
(2)安装PHP组件,使PHP支持MySQL、PHP支持FastCGI模式:
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm -y
(3)重启MySql:
systemctl restart mysqld.service
(4)重启nginx:
systemctl restart nginx.service
(5)启动php-fpm:
systemctl start php-fpm.service
(6)设置开机启动php:
systemctl enable php-fpm.service
(1)备份原有配置文件:
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
(2)编辑nginx配置文件:
vi /etc/nginx/nginx.conf
(3)修改nginx运行账号为:nginx组的nginx用户
user nginx nginx;
(4)保存退出
:wq!
(5)备份原有配置文件:
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak
(6)编辑default配置文件:
vi /etc/nginx/conf.d/default.conf
(7)在default.conf里增加index.php:
index index.php index.html index.htm;
(8)取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径,如下所示(把内容改成下面一样的就行):
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
(1)编辑PHP
vi /etc/php.ini
(2) 搜索下面的内容,把前面的分号去掉,改为date.timezone = PRC
;date.timezone = PRC
(3)列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
(4)禁止显示php版本的信息
expose_php = Off
(5) 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行(就是添加分号):
;open_basedir = .:/tmp/
(6)保存退出
:wq!
(1)备份原有配置文件
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak
(2)编辑:
vi /etc/php-fpm.d/www.conf
(3)修改用户为nginx:
user = nginx
(4)修改组为nginx:
group = nginx
(5)重启MySQL:
systemctl restart mysqld.service
(6)重启nginx:
systemctl restart nginx.service
(7)重启php-fpm:
systemctl restart php-fpm.service
(1)进入nginx默认网站根目录:
cd /usr/share/nginx/html/
(2)新建index.php文件,并输入以下内容:
vi index.php
phpinfo();
?>
(3)保存退出
:wq!
(4)设置目录所有者:
权限设置:chown nginx.nginx /usr/share/nginx/html/ -R
(5)重启服务:
systemctl restart php-fpm.service
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
备注:
nginx默认站点目录是:/usr/share/nginx/html/
MySQL数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql
至此,CnetOS7.4 安装配置LNMP(Nginx+PHP+MySQL)教程完成。
WordPress的官网网站为:http://cn.wordpress.org/
(1)下载wordpress网站代码:
在官方网站上下载中文的wordpress网站源码,命令如下:
wgethttps://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz
(2)解压:
tar zxvf wordpress-4.7.3-zh_CN.tar.gz
(3)把WordPress目录拷贝到nginx下:
cp -R wordpress/* /usr/share/nginx/html/
(4)创建wordpress数据库:
mysql -u root -p #以root用户登录mysql 输入密码
(5)创建名为zrq的数据库:
mysql> create databasezrq;
(6)用zrq库,按回车键出现Database changed 时说明操作成功!
mysql> use zrq;
(1)安装wordpress:
在客户端打开浏览器输入服务器的ip地址:
(2)点击创建配置文件:
(3)点击“现在就开始”:
(4)修改完之后点击提交:
(5)点击进行安装,并输入相关的网站信息:
(6)点击安装wordpress ,出现一下画面说明博客搭建成功。
(7)登录之后的界面:
(8)在wordpress里面添加自己的网站域名。否则开打都会转到ip地址。
有时候,升级插件会提示“要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。”,需要输入FTP信息。
这是因为是Nginx没有相应的权限去管理wordpress 文件目录,如不方便修改,也可直接修改wp-config.php文件,在最后添加如下几行:
vi /usr/share/nginx/html/wp-config.php
在最后添加:
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);
更改插件的权限:
chmod 777 /usr/share/nginx/html/wp-content/plugins/
更改主题的权限:
chmod 777 /usr/share/nginx/html/wp-content/themes/
(1)如果需要修改网站的端口(例如80改成8080),需要在wordpress更改端口,还有在nginx修改端口。
命令如下:
Vi /etc/nginx/conf.d/default.conf
(2)防火墙开启8080端口:
frewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service
(1)下载花生壳:
Wgethttp://download.oray.com/peanuthull/linux/phddns_2.0.6_all.zip
(2)解压缩:
yum install unzip -y
unzip phddns_2.0.6_all.zip
(3)安装花生壳:
cd phddns_2.0.6_all
tar zxvf phddns-2.0.6.x86_64.tar.gz
cd phddns-2.0.6.x86_64
./phddns
(4)配置花生壳:
Enter server address(press ENTER use phddns60.oray.net):
Enter your Oray account:ljh9527
Password:
Network interface(s):
[eth0] = [IP:45.63.124.48]
[lo] = [IP:127.0.0.1]
Choose one(default eth0):
Log to use(default /var/log/phddns.log):
/var/log/phddns.log
Save to configuration file (/etc/phlinux.conf)?(yes/no/other):yes
(5)要开放花生壳对应的防火墙端口:
花生壳使用的通信端口是TCP:6060和UDP:6060(方向:OUT),请确认防火墙没有把这几个通信端口封掉。
firewall-cmd --zone=public --add-port=6060/tcp --permanent
firewall-cmd --zone=public --add-port=6060/udp --permanent
systemctl restart firewalld.service
(6)可以使用ps -ef | grep phddns 来查看是否有花生壳软件的相关进程。
查看进程ID
[root@localhost ~]# ps -A | grep phddns
13731 ? 00:00:00 phlinux
让后台进程退出
[root@localhost ~]# kill -9 13731
(7)可实现开机自动运行:
cp /root/phddns_2.0.6_all/phddns-2.0.6.x86_64/phddns /usr/bin/
vi /etc/rc.local
在最后添加/usr/bin/phddns -c /etc/phlinux.conf -d
第一次安装配置完毕后,以后需要修改相关配置,可以自己自行编辑配置文件,然后终止相关进程,利用
/usr/bin/phddns -c /etc/phlinux.conf -d
再次启动,就可以按修改后的配置文件内容运行。
(8)查看花生壳当前运行状态:
查看日志:
[root@localhost ~]# tail /var/log/phddns.log
2011/08/02 11:28:58.256| ExecuteUpdate OK, BeginKeepAlive!
2011/08/02 11:29:59.354| SendKeepAlive() 8208
2011/08/02 11:30:00.355| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:30:00.356| Keepalive response received, client ip: 116.231.123.96
2011/08/02 11:31:00.447| SendKeepAlive() 8208
2011/08/02 11:31:01.450| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:31:01.450| Keepalive response received, client ip: 116.231.123.96
(9)手动修改登陆的用户名及密码
您可以直接编辑/etc/phlinux.conf文件,对登陆用户名及密码进行修改。
花生壳日志保存路径
/var/log/phddns.log
解决办法如下截图: