站在阳光下

Good Luck To You!

LAMP的安装配置教程

许多开源的程序都是使用PHP语言制作的,而PHP语言在Linux系统环境下运行会达到效率的最大化,因此不少人使用的都是Linux的主机和服务器。一般静态网页是不需要数据库和必要的运行程序的,而所有的动态网页服务器都是需要后台运行程序的。在Windows主机中就需要配置必要的后台底层程序也就是WISA,也就是Windows+IIS(Internet Information Services,互联网信息服务,相当于阿帕奇)+SQL Server(微软数据库系统,相当于MySQL)+ASP或者ASP.NET。Linux系统装机的必备后台程序相当于普通个人电脑里那些系统文件,都是要靠这些才能使网站运行起来。一般Linux主机都是使用PHP建站,因此他们就是PHP主机的底层架构了。主要有LAMP和LNMP两种,其中LNMP中的N指的是Nginx,安装的方法基本上与Apache大同小异。Nginx可以与Apache共存于系统中,也就是系统既可以安装开启Apache,也可以安装开启Nginx。下面我们来介绍一下最简单的LAMP程序的配置。


其实如果你使用的是云服务器,那么云服务器提供商都会有一个建站市场,市场里面有许多早已配置好的程序安装包,也就是相当于你用原装光盘一个小时重做系统和直接U盘十几分钟做出GHOST系统的区别,这相当于是一个镜像安装,直接可以一键安装。同样云服务器的系统也是纯净版系统的镜像安装,这样做的最大作用就是几分钟就能安装(复制)好系统。这里要说一下的是镜像安装的版本是固定的,如果其中一个项目(比如数据库或者PHP)的版本低了程序运行不了不能用或者不想用,那么请自己来配置AMP或者NMP。一般云服务器的系统都是服务商已经安装好了,因此我们可以忽略第一个W或者L系统,直接安装的就是最后三个。


LAMP是指Linux+Apache+MySQL(新版系统是MariaDB,稍后说说两者的区别)+PHP


LAMP的安装配置,这里以 CentOS 7.4 64位 为例

安装版本 Apache 2.4.6 MariaDB 5.5.56 PHP 7.0.30 phpmyadmin 4.4.15.10

需要使用服务器的远程控制,方式有三种,一个是服务器商自己远程控制后台,另外两个是远程控制软件,分别是XShell或者putty,两个二选一。

登录远程控制软件(以putty为例),输入服务器的公网IP,端口选择22端口,连接方式选择SSH,需要服务器开通SSH权限以及关闭服务器防火墙。连接后用户名输入root,输入服务器的密码,登录后如果出现[root@服务器名称]#就可以开始执行命令了。


安装Apache


Apache是Linux网页服务器的启动系统,只有开启了阿帕奇才能激活网站的服务器,用以开通对外的http服务。


这里我们使用最为简单的yum方式安装

输入 

yum install httpd -y

当出现需要你确认的时候请直接输入y并按下回车,安装完毕后开始启动Apache

输入

systemctl start httpd

之后设置开机启动(必须设置,这样以后只要服务器开机阿帕奇会永远直接运行,开机自动启动阿帕奇)

输入

systemctl enable httpd


输入 httpd -v 可以查看阿帕奇的版本信息


打开浏览器,输入你的公网IP,看到有一个测试的画面就说明阿帕奇安装成功了。CentOS是下面这样的画面,其他的系统画面可能不一样,但是基本都是类似的画面。

安装数据库


这里需要先解释的是MySQL与MariaDB的区别, MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。什么意思?MariaDB是从同一个母体里独立出来的。这里要说的正是CentOS系统的版本不同所用的数据库也是不同的,在CentOS 6版本中仍然可以使用MySQL,但是到了CentOS 7版本中,由于CentOS 7不再支持MySQL只支持MariaDB,因此CentOS 7的用户只能安装MariaDB。MariaDB的5.5.52版本相当于MySQL 5.6版本,因此如果要搭建高配置的个人网盘系统,MariaDB需要5.5.52版本以上。


关于MySQL的安装网上有很多教程,主要是使用wget命令下载MySQL的源安装包通过unzip命令解压后安装,由于前面说过系统是CentOS 7.4版本的,所以在此就不说MySQL了。


安装MariaDB

输入

yum install mariadb-server mariadb -y

当出现需要你确认的时候请直接输入y并按下回车,安装完毕后开始启动MariaDB

输入

systemctl start mariadb

设置开机启动(和上面的一样,开机自动启动数据库)

输入

systemctl enable mariadb


输入 mysql -v 可以查看数据库版本,需要特别注意的是在没有数据库管理员的时候,也就是用户为空时是可以这样直接查看的,但是有了用户了就得需要输入管理员也就是root的账号密码登录后查看了。


这里特别要说的就是我们在执行某些数据库的命令时,经常会出现一个1045的错误代码。

ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)

这是什么意思呢?大家看到错误代码里面有个xxx,这代表当前数据库没有用户名。而using password:yes,就是说登录到数据库需要使用密码。但是我们还没有设置密码,又因为登录不上又不能改密码,怎么办?那么我们怎么重新设置密码登录呢?

这里需要把数据库设置为不使用密码登录,可以使用远程控制的 vi /etc/my.cnf 打开配置文件编辑后保存。或者使用最简单的办法,直接登录FTP在里面查找etc目录下的my.cnf配置文件,打开用记事本编辑,在最后加上这么一句话skip-grant-tables,保存后退出FTP。

接下来使用远程登录输入命令 service mysqld restart 重启数据库

ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: NO)

此时错误提示已经变成了NO,也就是不使用密码了。

使用 mysql -u root -p 命令 登录数据库

在下方有个更改数据库密码的地方

Database Changed

Update user set password=password("输入密码")where user="root"

当下方出现Query OK即为设置成功

输入exit退出数据库

再次使用 mysql -u root -p 命令输入刚才设置的密码,此时数据库登录成功,1045也不见了。


感谢此文解决了数据库的1045问题

https://jingyan.baidu.com/article/da1091fb0c379c027949d659.html


到此数据库安装完毕


安装PHP


最后安装的就是PHP了,这是网站最基本的语言,没有它你的网站将会无法正常工作。


使用以下的命令安装php

yum install php php-mysql php-gd php-pear -y

需要你确认的时候还是输入y回车,之后系统开始自动安装。

需要特别注意的是centos系统自带的PHP只能安装5.4版本的PHP,需要安装个人网盘的用户们这个配置就显得有点低了,至少也得是5.6或者是7版本的PHP,所以这就得需要自己安装了。安装PHP 7版本的方法是这样的。


首先我们要找到安装源并使用wget命令下载到服务器,这里我们所使用的是PHP官网的tar.gz安装包

输入命令

 wget http://cn2.php.net/get/php-7.0.30.tar.gz/from/this/mirror

再输入命令解压缩,之后安装

tar zxvf php-7.0.30.tar.gz

或者是下面的rpm安装

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装PHP7


yum install php70w php70w-opcache
遇到确认的时候还是输入y回车,安装完后重启阿帕奇


service httpd restart


测试PHP

在Apache文档根目录创建phpinfo.php

vi /var/www/html/phpinfo.php

编辑内容如下

<?php 

phpinfo();

?>

重启httpd服务

systemctl restart httpd


如果不会这样做,教给大家一个最简单的方法

直接登录FTP,在/var/www/html目录里面直接新建一个文本文档,内容输入

<?php 

phpinfo();

?>

将文件保存后重命名为phpinfo.php

浏览器访问http://公网IP/phpinfo.php,将会显示php的版本信息。

或者使用 php -v 命令查询PHP的版本信息


PHP版本信息的示例页面

执行完操作之后就可以看到类似这样的画面 http://www.zzygx.cc/phpinfo.php


其他的,如果要安装所有PHP所使用模块的方法,输入这个命令后那些需要php辅助模块的应用就不用重新安装了,等于是全部安装了

yum install php* -y

到这里LAMP全部安装完毕


如果需要安装Nginx,可以直接输入命令 yum install nginx

还是需要确认时输入y回车,安装完毕后输入 systemctl restart httpd 重启阿帕奇

之后nginx就可以正常使用了,查看版本的方法是 输入命令 nginx -v 查看版本信息


安装phpmyadmin


现在环境配置结束了,这里要做的是最后一个项目。安装phpmyadmin。也就是数据库管理软件,安装完毕以后可以不用再输入命令建立数据库了,直接通过浏览器创建删除数据库。


添加EPEL repository

yum install epel-release

通过wget命令下载安装包解压缩,仍然是可以从官网下载

wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.10/phpMyAdmin-4.4.15.10-all-languages.tar.gz
  

tar zxvf phpMyAdmin-4.4.15.10-all-languages.tar.gz


wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.10/phpMyAdmin-4.4.15.10-all-languages.zip

  

unzip phpMyAdmin-4.4.15.10-all-languages.zip


安装phpMyAdmin

yum install phpmyadmin -y

还是确认时输入y回车,服务器会自动安装的


配置phpMyAdmin

默认,phpMyAdmin只能由本机(localhost,127.0.0.1)访问。为了能够使用公网IP和域名远程访问,需要编辑phpmyadmin.conf配置文件。

vi /etc/httpd/conf.d/phpMyAdmin.conf

或者直接用FTP打开编辑,正确的内容如下所示


Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin


<Directory /usr/share/phpMyAdmin/>

   <IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       Require ip 127.0.0.1

       Require ip ::1

     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 127.0.0.1

     Allow from ::1

   </IfModule>

</Directory>


在最后需要添加这段内容

<Directory /usr/share/phpMyAdmin/>

        Options none


        AllowOverride Limit


        Require all granted


</Directory>

 

保存后退出即可,接下来我们还要编辑/etc/phpMyAdmin/config.inc.php

修改“cookie”为“http”,也可以使用FTP编辑

vi /etc/phpMyAdmin/config.inc.php

"cookie"改成"http"

再次重启Apache

systemctl restart httpd

访问phpmyadmin的控制台 http://公网IP/phpmyadmin/


当看到下图的对话框时就代表安装成功可以使用了


还需要注意的是在phpmyadmin中如果登录后下方出现了一个105的错误提示


Warning in ./libraries/session.inc.php#105
 session_start(): open(/var/lib/php/session/sess_g5j035mu0dieucb8ssshmb7mspe21b0f, O_RDWR) failed: Permission denied (13)

Backtrace

./libraries/session.inc.php#105: session_start()
./libraries/common.inc.php#350: require(./libraries/session.inc.php)
./index.php#12: require_once(./libraries/common.inc.php)


这是安装nginx后容易出现的问题,如果没有安装nginx一般是不会有这种问题。请不要慌,解决方法非常简单。当时我也不知道是怎么回事,搞了很长时间想了很多方法也没去掉,后来我才知道原因并立刻去掉了这个警告。原因竟然是你想都想不到的目录的权限错误。

/var/lib/php/session目录的属性

结果显示session目录的用户组显示为apache,而nginx的用户组是nginx,因此在将session目录的用户组修改成nginx后问题得到解决。

据我猜测如果还是不行的话可能是php-fpm的用户组设置问题。因为nginx默认使用的是php-fpm来解析php的。

如果你的session目录属性已经是nginx了,但是就是出现105报错。那只有一个原因,目录的权限错误。

后来我通过FTP查看了session目录,不看不知道一看吓一跳,权限竟然是770。后来有教程提到改成最高的权限就可以解决,后来我把权限改成了最高权限777,错误警告瞬间消失的烟消云散。以后如果遇到权限错误,记得要把他改成777,一般就能解决大部分的权限问题了。


关于phpmyadmin的105错误

https://blog.csdn.net/xuwq2015/article/details/68952122


到这里LAMP就配置完毕了,以上就是LAMP的配置教程。

发表评论:

Powered By Z-BlogPHP 1.5.1 Zero

Copyright 2017-2020 站在阳光下(shibushi.cc)All Rights Reserved. 鲁ICP备17054101号