许多开源的程序都是使用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 |
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
wget https: //files .phpmyadmin.net /phpMyAdmin/4 .4.15.10 /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的配置教程。