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 ...
随机推荐
- datagridview添加复选框全选和取消
全选 private void All_selected_Click(object sender, EventArgs e) { ; i < this.DataGridViewProduct.R ...
- freefilesync 7 使用
官方下载地址:http://www.freefilesync.org/download.php 1.打开FreeFileSync 设置左右的文件夹,设置过滤规则,设置同步方式(双向.单向),执行同步 ...
- hive到hbase的使用
一.简单介绍 hive的元数据保存在metastore里面,真实的数据一般位于hdfs中,可以通过hql来对数据进行分析.hbase中的数据也是存放在hdfs上的,可不可以使用hive来分析hbase ...
- PHP 文件上传服务端及客户端配置参数说明
文件上传服务器端配置: ·file_uploads = On, 支持HTTP上传 ·upload_tmp_dir = , 临时文件保存的目录 ·upload_max_filesize=2M, 允许上传 ...
- Thinkpad 小紅點設定
因为我只需要这么多设置,所以就只写这么多了sudo gedit /etc/rc.local echo -n 240 > /sys/devices/platform/i8042/serio1/se ...
- 自定义获取html元素对象的7种方法。
- How to get Financial Dimension Value from Worker Position[AX2012]
To get financial dimension value from worker position, add a new method in hcmWorker Table with scri ...
- [terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046
SQL_TRACE/10046 事件是 Oracle 提供的用于进行 SQL 跟踪的手段,在日常的数据库问题诊断和解决中是非常常用的方法.但其生成的trace文件需要tkprof工具生成一个可供人 ...
- SRF之页面
页面呈现采用Razor模板 1.母模板说明 _Main.cshtml:基础母模板 _ListLayout.cshtml:列表页面 _EditDialog.cshtml:编辑对话框 _EditLay ...
- 【微网站开发】之微信内置浏览器API使用
最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...