LAMP环境的搭建
【一些前言废话】一名web开发尤其是后端不懂LAMP环境的搭建,那就摊上事了,有些人说他一直用win下的wampServer这种傻瓜式环境搭建,用的挺好的,也有人说他用云服务器,搭配“一键搭建LAMP环境”大法也挺好用的,是的,这些在初学的时候都是可以先用上的,但是“不知其所以然”的习惯一旦养成,很多事情就不再好奇,不再想去一探究竟,到某天也就失去了前行的动力,所以我还是会一步一步来搭建下LAMP环境,说不定会遇到一些迷之bug...
目的
如何从零开始在本地虚拟机搭建一个LAMP环境以便我们进行本地测试,远程服务器上搭建是一样一样的
系统和软件
WIN8.1 64位
VMware Workstation
Xshell
一、在虚拟机上下载安装 Ubuntu Server LTS
VM虚拟机如何建立不在这里赘述,Ubuntu Server镜像可以在Ubuntu官网上找到,Server表示服务器版本,而LTS表示 Long Term Support,长时间支持版本,至少支持4年。本文用的是14.04.4。
如何安装Ubuntu系统也不赘述,安装过程相对简单,有问题可以另行参考其他资料。
如果是远程服务器,像国内的阿里云等云服务器,一般在你选择购买产品时会让你选择安装的系统,所以就不用自己下载安装了。
注意:在虚拟机安装系统后,虚拟机网络连接方式一般我们选NAT方式,以便于我们接下去的SSH远程连接。
二、SSH终端工具远程连接服务器
SSH是一种协议,也可以理解为一种服务,以一种安全的方式允许用户远程登录主机进行操作,SSH终端软件也有很多,大同小异,这里我们推荐使用Xshell,可以从官网下载免费版,够用了。为什么推荐使用远程连接,而不是虚拟机里面直接操作呢?因为我们尽量模拟真实的工作环境,虚拟机里直接操作好比我们在服务器机房直接操作,这在现实中几乎不会这么做,所以就算我们本地使用,还是推荐使用SSH终端。
打开Xshell,文件 -- 新建,只需要填写这几个地方就可以设置好一个连接。
这里的ip,如果你是远程服务器,这个ip你购买产品的时候就会告诉你,如果是本地虚拟机,你不知道,那怎么办?可以进入虚拟机,利用ifconfig命令查看当前的ip

这里我们的登录名,不用root登录,这是一个好习惯,root用户权限太大,很不安全,普通用户可以依靠su和sudo命令执行root用户权限命令。

设置好后可以连接,填写密码,第一次连接会弹出提示框,选“接受保存”。

连接成功后

三、利用apt-get安装Apache MySQL PHP
apt-get是ubuntu安装软件包的一个工具,原理是首先准备一个源列表,这个列表包括了许许多多ubuntu可以下载安装的软件,然后安装的时候就是在这上面选择相应的安装包下载安装。
首先执行sudo apt-get update命令进行源列表的更新,而后准备安装 A M P
安装Apache,执行sudo apt-get install apache2,中间有确认环节,需要键入Y,注意有时小写的y是不行的。
安装好后在浏览器键入服务器的ip地址,看到apache默认页面就说明apache安装完成。

安装MySQL,执行sudo apt-get install mysql-server。
安装MySQL过程中会要求输入MySQL的root密码(注意这个root是数据库的root而不是服务器的root)。安装完成后执行mysql --version,如果看到版本信息,说明mysql已经被安装。
安装PHP,执行sudo apt-get install php5。
执行php5 -v,如果出现php的版本信息,就说明PHP已被安装。
注意,如果先安装PHP再安装MySQL,那么可能需要的MySQL扩展没有被安装到PHP中,需要手动安装,当我们执行cat /etc/php5/mods-available/mysql.ini命令时,我们发现提示找不到这样的文件或目录就说明在PHP中我们的MySQL扩展没有被加载,因为PHP安装是默认不加载的,于是我们需要手动加载MySQL扩展。
执行sudo apt-get install php5-mysql命令,为PHP安装MySQL扩展。然后重启MySQL和Apache服务,执行sudo service mysql restart和sudo service apache2 restart重启服务。
而如果是执行cat /etc/php5/mods-available/mysql.ini命令可以看到extension=mysql.so,那就是mysql扩展被正确加载。
四、创建phpinfo服务器探针查看是否LAMP环境正常工作
默认的服务器目录为/var/www/html目录,所以我们通过cd /var/www/html进入此目录创建一个info.php文件(记得使用sudo以超级用户创建,否则保存不了的),文件内容如下:
<?php
echo mysql_connect('localhost','root','这里填写数据库root的密码,每个人不一样')?'连接数据库成功':'居然失败了';
phpinfo();
?>
此时回到浏览器,当我们访问这个PHP文件时,比如"http://192.168.17.129/info.php"时会出现“服务器错误”,原因是PHP文件需要有权限被执行,这样才能被解析,所以可以用chmod命令赋755的权限给info.php文件,注意以上的操作都是需要超级用户权限的,重启下apache服务,再去访问,发现就会出现正确的显示:

此时,说明数据库连接已经没有问题,同时也可以看到phpinfo给出的相关信息。
至此,证明我们的LAMP环境已经初步搭建成功。
五、LAMP环境配置文件简单了解
通过apt-get安装的软件,配置文件都在/etc目录下,apache配置文件在/etc/apache2目录下,php在/etc/php5下,mysql在/etc/mysql下。
apache配置文件,进入/etc/apache2目录,其中apache2.conf是总配置文件,将其余的配置文件都包含进来形成的,使apache的配置成模块化,不至于使配置文件太大同时又使配置项的条理清晰。核心的配置项是mods-*和sites-*文件夹,带后缀关键词available的是可使用的配置,而带enabled的是当前使用的,通过在enabled建立软连接来指向available中的配置文件以达到激活某种配置的目的。
php和mysql配置文件,mysql配置核心文件是其目录下的my.cnf文件,php是其自身配置目录下的php.ini文件。
六、虚拟主机的配置
让多个域名解析到一台服务器,服务器根据不同来源的域名进入不同的目录进行操作。
这里如果不是具有真实域名进行,仅仅本地实验的话,可以通过修改本地的host文件将某个域名解析到指定的ip(也就是你自己服务器的ip)。
假设我们有两个二级域名,blog.test.com和info.test.com,我们有两个目录/www/blog/和/www/info/分别对应两个域名处理的目录,在两个目录下我们可以创建不同的index.html测试页面,然后我们来进行apache多站点虚拟主机的配置。
进入/etc/apache2/sites-available目录,找到默认配置文件000-default.conf,复制该文件内容到当下目录的一个新建的配置文件,我们可以取名blog.conf,我们再编辑此配置文件:
<Directory /www/blog>   //这里改成你的虚拟主机目录
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
<VirtualHost *:80>
        ServerName blog.test.com    //这里改成你的域名
        ServerAdmin webmaster@localhost
        DocumentRoot /www/blog      //这里改成你的虚拟主机目录
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 
同样,我们类似的编辑info.conf配置文件,注意修改相应地方。
然后执行sudo a2ensite blog.conf和sudo a2ensite info.conf将该配置文件在sites-enabled文件夹下创建软链接,当然你也可以自己手工创建软链接,然后重启apache服务。
访问下不同的两个子域名,看看是否成功,如果是Forbidden,那就注意文件的权限问题哦。
七、phpMyAdmin的安装
执行sudo apt-get install phpmyadmin和sudo ln -s /usr/share/phpmyadmin/ /var/www/pma 即可完成phpmyadmin的安装,至于其相关的配置等可自行参考其余资料。
至此,基本上完成了LAMP环境的搭建,而至于其详细配置,路漫漫其修远兮...
LAMP环境的搭建的更多相关文章
- linux之lamp环境的搭建
		
linux之lamp环境的搭建 1.安装lamp环境的安装工具 我们的lamp环境都是采用源码包进行编译安装: 编译安装需要工具gcc gcc-c++. 建议在线联网安装:yum -install ...
 - Linux:LAMP环境的搭建
		
LAMP环境的搭建 安装DNS服务器 安装DNS服务 yum install bind -y DNS的配置 创建正向解析 以创建一个名为"lsy.com"的正向查找区域为例: 第一 ...
 - LAMP环境的搭建(四)----Apache下部署项目
		
根据前文完成了LAMP基本环境的安装,那么接下来就是部署线上的环境了. yum 安装的apache 目录存在于 /etc/httpd apache最重要的文件就是 httpd.conf. 目录再 ...
 - PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
		
最近一段时间会学习一下PHP全栈开发,将会写一系列的文章来总结学习的过程,以自勉. 第一篇记录一下LAMP环境的安装 0. 安装Apache Web服务器 安装之前先更新一下系统 sudo apt-g ...
 - lamp环境的搭建和安装
		
最近,部门有些系统需要迁移到新的机器上,因此需要在新的机器上安装lamp和lnmp的环境,因此在这里总结一下: 一. 安装lamp环境的步骤: (1).因为是新的机器,因此需要安装gcc的各种环境: ...
 - [PHP]   ubuntu16.04配置Lamp环境(搭建linux+apache+mysql+php7环境)
		
reference : http://blog.csdn.net/Abyss_sliver/article/details/77621404 好久没有在Linux环境下进行开发了,比较常用的还是win ...
 - 【Linux】LAMP环境的搭建
		
LAMP定义 LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建 ...
 - linode空间lamp环境的搭建
		
安装LAMP的命令如下,请依次执行: apt-get updateapt-get upgrade –show-upgradedapt-get install apache2a2enmod rewrit ...
 - 在LAMP环境下搭建JSP动态网页
		
开发环境Linux的版本号Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x ...
 
随机推荐
- IOS多线程(一)
			
一.绪论 1.进程:平时看到的一个应用程序,即可算作一个线程. 每个进程都有一个PID作为进程ID,有一个Process Name作为进程名字等. 2.线程:一个进程可以有多个线程,而每个线程只可属于 ...
 - PHP 定时任务|Cron
			
一. Crontab 介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行.在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序.每个用户可以建立自己的调度cro ...
 - mysql 导入导出数据库、数据表
			
Linux下 均在控制台下操作. 导入数据库: 前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中 [root@te ...
 - centos  yum 安装问题
			
yum [Errno 256] No more mirrors to try 解决方法 输入下面的命令即可解决问题: yum clean all yum makecache 导致 centos安装软件 ...
 - js实现选项卡功能
			
1.css .liclick{ border: 1px black solid; background: #fff; float: left; width: 80px; height: 35px; l ...
 - MongoDB工具简要说明
			
[mongodb@hadoop1 bin]$ pwd /usr/local/mongodb/bin [mongodb@hadoop1 bin]$ ls -l total 207696 -rwxr-xr ...
 - [php]php数组函数的相关
			
1.8.26---list与extract的作用区别extractextract -- 从数组中将变量导入到当前的符号表 说明int extract ( array var_array [, int ...
 - spring事物的七种事物传播属性行为及五种隔离级别
			
首先,说说什么事务(Transaction). 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务.当 ...
 - Debug.print的用法
			
使用Debug.print可以用来更好的调试VBA程序 通过ALT+F11代开VBA编程窗口) 插入模块,接着在窗口中输入以下代码,按F5执行 Sub Excute() Debug.Print * + ...
 - Excel日期格式提取year
			
Excel日期格式提取year =TEXT(YEAR(C2),"0000")