LAMP是在互联网中比较常见的web环境组合,它的含义是:Linux+Apache+MySQL+PHP发展到现在LAMP中的M和P也有MariaDB,Python等等,这些基础环境的部署也不复杂,但涉及一些性能和优化安全等方面还是需要一定的”实力”。这里我就CentOS 7环境中部署phpmyadmin,WordPress,Discuz。通过httpd使用3台虚拟主机来实现。
phpmyadmin是一个基于web图形界面来管理服务器中数据库的一个数据库管理工具,不但可以轻松的方便的建立、修改、删除数据库及资料表,还可以在里面查阅SQL语法。在你完成一个操作的时候对应的命令也会生成,而且语句可以直接复制拿去使用。
环境安装部署:
首先我们在系统上要先安装MariaDB,PHP,httpd。我们这里使用最方面的yum方式来安装。直接输入 :yum install httpd php mariadb-server php-mysql注意中间用空格隔开,yum的安装方式可以自动帮我们解决其中的依赖关系,其中php-mysql是php连接MySQL需要的模块文件。在CentOS 7的everthing的安装光盘上这些安装文件都有,可以使用光盘作为yum源避免因为版本之间产生的错误,yum安装方式简单这里不演示。
安装完成后首先测试一下MySQL是否能登录:
第一步先启动MySQL,centos 7 上使用命令:systemctl start mariadb.service 然后我们再看3306端口是否在监听状态,使用命令netstat –tnl 见下图:
第二步 使用root登录测试默认root密码为空,直接输入mysql –u root –p :
成功登录说明我们的数据库没有问题,可以使用了。因为Mariadb默认root密码为空最好重设密码,并且默认数据库中会有3个匿名账户这对我们的数据库来说是及其不安全的。如果你对数据库不太熟悉没关系,Mariadb为我们准备了一个安全初始化的一个脚本,直接在命令行输入:mysql_secure_installation会自动开始一个向导,按照这个向导走一遍基本就可以了.
首先会让你输入root的密码默认是空所以直接回车就好。这里我把过程当中对应的说明贴出来:
Set root password? [Y/n] Y <---是否设定root密码,输入Y回车
New password: <---输入root密码,并回车
Re-enter new password: <---再次输入root密码,并回车。
Remove anonymous users? [Y/n] Y <---是否删除匿名用户,输入Y删除并回车
Disallow root login remotely? [Y/n] Y <---是否删禁止root用户远程登录。一般都禁止所以按Y
Remove test database and access to it? [Y/n] <---是否删除测试数据库test,选Y 删除当然也可以不删除
Reload privilege tables now? [Y/n] Y <---刷新权限? 输入Y回车 (最后一步)
到这里我们的环境就搭好了,PHP是否OK我们可以等建立好主机后再进行测试。
这里要用到3个虚拟主机,所以先建立虚拟主机。在httpd2.4之前的版本虚拟主机都是在httpd.conf文件中定义,而在2.4版本之后可以用一个更方便的办法就是在httpd/conf.d/目录下定义一个VirtualHost.conf的文件名字可以自己定义以.conf结尾即可。httpd在启动的时候会读取conf.d下面的每一个.conf的文件。在这里我使用VirtualHost.conf VirtualHost2.conf VirtualHost3.conf这3个文件其实这3个文件就是我们需要的3台虚拟主机。以下是虚拟主机的配置,另外2个只是IP地址,文件目录和日志路径的区别就不一一列举,3台主机的主目录/var/www/v1,v2,v3 ,IP分别是192.168.1.250,..251,..252 三个,
<VirtualHost 192.168.1.250:80> //主机的IP和端口 ServerName pma.stu9.com //主机名称 DocumentRoot "/var/www/v1/ " //主文件目录路径 ErrorLog logs/v1.err //错误日志路径和文件名称 CustomLog logs/v1.access combined //访问日志路径和文件名,combined是日志格式的类型 </VirtualHost> |
如果需要对目录增加一些其他的管理功能可以参考httpd.conf里面的定义,比如<Directory> <location>等来对文件目录的权限管理和安全方面的认证等等.这里三个文件定义好并确认在/etc/httpd/conf.d/这个目录下我们就可以启动httpd服务了,在启动之前最好用httpd –t 这个命令来检查一下配置文件是否有错误.
以上有个AH00558错误,这是提示主机名称的错误,还有DNS的错误,可以忽略重要的是能看到 Syntac OK 这说明配置文件没有问题使用:
systemctl start httpd.service启动服务并检查80端口是否需处于监听状态.ss–ntl
80端口处于监听状态,3306是MySQL的服务.上面提到过验证PHP是否OK,这里我们可以写一个简单的页面来测试PHP和PHP跟MySQL能不能正常通信:
<?php $conn = mysql_connect('localhost','root','root用户的密码'); //调用mysql_connect()函数,括号内是数据库位置,用户名,密码. if ($conn){ //mysql_connect如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE。用if判断 echo "OK"; //如果成功输出OK } else { echo "Failure"; //连接失败输出 Failure } mysql_close(); //关闭mysql连接 phpinfo (); //php的内置函数,可以输出php的信息 ?> |
保存以上的代码到index.html并放到虚拟主机的主文件目录下面我这里是/var/www/v1。 一般httpd的默认设置会在网站主目录下面找到名字为index.XXX的文件当做默认主页,你也可以自己定义在httpd.conf文件中找到一下字段添加即可。
<IfModule dir_module> DirectoryIndex index.html //把自己要设置成默认的文件名添加到index.html后面或者直接修改. </IfModule> |
因为用的是虚拟主机,而我主机的网卡只有一个,没关系Linux支持在网卡上设置多个IP地址,用命令:ip addr add IP/MASK dev NETDEVIS
我这里虚拟主机设置的ip是192.168.1.250:80所以添加一个地址192.168.1.250/24 使用命令:ip addr add 192.168.1.250/24 dev eno16777736 其中eno16777736是网卡名称centos7中网卡的命名跟以前不一样不再是ethX 这是系统命名的机制变化的原因,当然也可以修改成以前的机制这里就不介绍了,ip添加好之后之前我们的服务都已开启,并且检查了httpd的配置文件没有错误,好了打开浏览器输入地址查看结果:
网页中的OK字样就是测试数据库的输出,连接没有问题,如果能看到PHP version这说明我们的PHP也是没有问题的,通过这个页面也可以看到PHP的配置信息。到这里我们的LAMP的环境基本上就没有问题了,接下来再实现phpmyadmin的搭建就十分简单了,只需要下载源码包放到网站目录下面即可,就是这么简单 下载地址:http://www.phpmyadmin.net/ 我下载的是4.4.14.1的版本。下载的文件格式是压缩包,你可以在Linux系统下解压也可以解压好之后再放到Linux系统的网站主目录中,我这里是用的VM虚拟机互传文件的方法有很多种,所以偷懒一下在windows中解压好后再上传的。我把phpMyAdmin-4.4.14.1-all-languages文件夹放到/var/www/v1下重命名为phpmyadmin 然后到phpmyadmin目录下找到config.sample.inc.php这个文件,你可以直接重命名为config.php或者保存一份后再重命名,这个文件里面只需要修改一行数据
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ //在引号里面输入随机的字符串加密用的.也不需要记住 |
然后我们就可以通过http://IP地址/phpmyadmin 来访问了,注意因为phpmyadmin是主目录下面的子目录所以访问的时候必须要输入/phpmyadmin 不然是访问不到的,我这里索性把主目录设置成了/var/www/v1/phpmyadmin这样直接输入IP地址即可访问
在测试访问之前提醒一下,很有可以会提示一个错误,” The mbstring extension is missing. Please check your PHP configuration.”
这个提示是因为需要开启mbstring的组件或者安装PHP的时候没有安装,最好提前安装一下执行命令: yum install php-mbstring 安装好之后重启httpd使用命令:systemctl restart httpd.service
现在浏览器中输入http://192.168.1.250 成功的话直接会看到登录界面
用户名输入数据库的用户名root和root的密码 点击执行登录我们的数据库:
到这里phpmyadmin成功搭建好了,很简单.而且通过phpmyadmin管理数据库对于不太熟悉SQL语句来说真是一个利器,数据库的信息的安全很重要所以我们有必要使用https来提高安全性,这要用到openssl和ssl模块,openssl系统已经装好了,现在只需要安装ssl模块就好,使用yum install mod_ssl.so
安装好后会在httpd目录的conf.d里面有个ssl.conf的配置文件,找到下图中的字段更改:
如果有多个站点需要使用ssl把 <VirtualHost IP:443>………< /VirtualHost >中间的内容复制一下再做修改就好.至于CA的证书的签发这里不做介绍了
设置好ssl.conf文件之后输入https://192.168.1.250 来访问:
这里浏览器警告是因为证书是我自己的CA服务器签发的而它并不被信任所以会有提醒。好了到这里phpmyadmin就完成了。
WordPress部署:
WordPress是一种使用PHP语言开发的博客平台,官方站点https://cn.wordpress.org/用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,在官方网站上也准备好了压缩包的源文件,和phpmyadmin一样需要展开后放到网站根目录下即可,我这里是在/var/www/v2/目录下,
初次运行会有安装向导,按照提示即可
在这里最好在数据库里面新建一个账户尽量不要是用root,然后我们在建立一个数据库共WordPress使用,我这里就建立了一个名为wordpress的账户和同名的数据库并给了wordpress账户管理同名数据库的所有权限.
点击执行,然后在WordPress安装页面这里填入信息,提交
这里提示要手动创建一个wp-config.php直接cd到v2目录下面创建即可内容已经生成了直接复制!
[root@localhost v2]# vim wp-config.php |
文件准备好之后点击进行安装!
以上自己定义即可填好后点击安装.之后登陆之后就看到下图,
到这里WordPress已经部署好了.
Discuz部署:
Crossday Discuz! Board是康盛创想(北京)科技有限公司(英文简称Comsenz)推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务.搭建跟以上2个例子一样也只需要把源文件放到网站根目录下首次按照向导执行安装。
首次安装要执行install目录下的index.php文件如果不能自己跳转自己指定一下路径就好,运行后出现安装向导:
提示有目录的权限不够,cd到/var/www/v3目录,我直接chmod –R 777 * 权限比较大还是看官方文档看一下指定的权限为好.
直接点击下一步
这下面注意填写好数据库密码,discuz要在数据库中创建自己的数据库
接下来就等待安装
安装完成
到这里Discuz论坛就搭建好了!