PHP开发者的Linux学习之路
谈起一个高效动态网站的构建,那就不得不提到LAMP,即Linux操作系统、Apache网络服务器、Mysql数据库、Perl、PHP或Python编程语言等开源产品所组成的网站架构框架,其最大的优势是开放性强,安全性高,且成本低廉。因此,LAMP成为了国际流行的网站构建方案。而作为一名php开发人员,在工作中,普遍也使用LAMP来开发一个高性能的网站,当然,也有其他构建方案,如LNMP,WAMP等。因此,Linux系统不仅是一个高性能网站的构建基础,也是一名php开发人员的必修课。
开始学习Linux系统,书籍教程方面,我选择的是这本语言精练,更易上手的《Linux就该这么学》,它是一本注重实用性的Linux自学书籍,其作者刘遄从事于linux运维技术行业多年,通过红帽架构师认证RHCA认证,学习生态圈较完善,有完备的书籍、网站、专业培训、论坛和其他社区的Linux学习生态圈。当然,对于慢节奏的同学,也可以通过网络上的教学视频进行学习;那么,跟随教程,我在windows下使用了VMware安装了一个虚拟机,配置好Centos系统,第一步当然是熟悉Linux的基本操作命令,如文档管理项的rm、mv、cat等,磁盘管理的cd、ls、fdisk等。当然,在熟悉其基本命令的同时,也会学习到Linux的目录结构,权限管理,进程管理等基础知识,我就不一一赘述了。在这里我推荐几个关于进程管理的命令:Ps,用于显示当前进程状态,常用的搭配有ps aux 、ps -ef、 ps -eFH。dstat:动态系统资源统计命令。top:动态显示inux进程。htop:交互式进程查看器。这几个命令对于我们的进程管理有相当大的帮助。

如何搭建LAMP环境?第一步当然是下载安装必要的产品,顺序一般是:Apache、mysql、php,当然,linux下每一个软件都有各种依赖,人工安装依赖是一项很复杂的工作,于是,包管理器便应运而生,centos使用的是yum包管理器,它会自动帮我们把需要安装的依赖包自动安装,只需输入此命令:yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-postgresql php-pgsql php-devel,安装过程大概几分钟,安装完成。
第二步便是测试环境是否正常运行(run),首先,我们启动Apache服务器:/etc/rc.d/init.d/httpd start,启动之后检测启动结果:ps aux | grep httpd,如过出现一堆进程,那么Apache网络服务器已正常运转,然后,我用ifconfig命令查看服务器的IP并进入网站根目录下创建一个phpinfo.php的程序,用于查看php的配置信息,如果配置信息正常显示,那么php模块已配置完成,接下来就进行数据库的配置,当然第一步是启动数据库:/etc/rc.d/init.d/mysqld start,然后检查启动结果:netstat -tulnp | grep :3306,结果为正常启动,接下来我进入mysql数据库,新建了一个用于测试的表,并简单的插入了几条数据,然后再写了一个用php连接mysql数据库的测试代码:
运行后如能正常查询数据,那么,我们的LAMP环境便搭建完成。
为了进一步熟悉Linux系统,我决定安装另一款Linux OS进行日常开发,流行的发行版有很多,诸如Debian,红帽(Redhat)、Ubuntu(包括kubuntu,xubuntu等)、OpenSuse(原Suse)、Mandriva(原Mandrake)、CentOS、Fedora、Veket等,各有其优缺点,我就不对其深入讨论了。我最终选择安装的是Ubuntu,选择的原因是其友好的界面以及许多常用软件的集成。
安装好Ubuntu后,我第一步是搭建PHP的开发环境,直接使用apt-get安装软件,当然,还有deb包的安装方式以及独具ubuntu特色的新立得软件包管理等方法。安装谷歌浏览器时,发现缺少依赖包,这时候,这条命令就能帮你自动安装依赖包:sudo apt-get install -f。当然,在ubuntu系统下有许多好用的软件,比如浏览器有:firefox,谷歌,opera,音乐播放器有:Audacious、Rhythmbox。我个人推荐几款实用的软件:谷歌浏览器,wps文件处理器,ATOM代码编辑器,Thunderbird邮件,filezilla等。
在安装完必备的软件后,我决定对我的桌面进行一次美化,ubuntu有许多很精美的主题,你甚至可以将其打造为mac的界面风格,可以参考网上资料,调整桌面环境,我推荐使用unity-tweak-tool,这是一个非常好用的Unity图形化管理工具,可以修改工作区,热区数量等。主题我推荐使用Flatabulous,它是一款ubuntu下扁平化主题,也是我试过众多主题中最喜欢的一个!
至此,一个个性化的Linux OS 便打造成功,不过也推荐你看下书籍《Linux就该这么学》来学习RHEL 7系统,迎合更多的发行版系统。至今,Linux系统已经成为我开发工作的一部分,简单的指令操作,完全开放的权限,稳定的运行效率,以前在windows下很繁琐的操作,在Linux下只需要一条命令,在开发工作中极大的节约了时间成本。我想,对于开发者而言,不仅仅是php开发者,Linux系统对于我们来说都是不可缺少的工作平台!
PHP开发者的Linux学习之路的更多相关文章
- Linux学习之路-Linux-at及cron命令【7】---20171215
Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03 ntpdate 命令 [root@ ...
- Linux学习之路(一)
导语: 早前为了方便日常开发,建立跟生产环境类型的环境的时候考虑使用docker作为模拟生产环境,结果没想到给自己的学习挖了一个大坑.其他关于docker容器技术的坑先不在这里赘述,有时间的话在其他文 ...
- 我的Linux学习之路及参考书籍
学习目的 很简单的考虑,最近在各大招聘网站上找工作,发现多数c/c++开发职位都需要Linux开发经验,让我很苦恼,因为Linux我到目前为止知之甚少,知道Linux的概念,也在大学期间了解过一段时间 ...
- 新手小白的Linux学习之路
大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...
- Linux学习之路--常用命令讲解
Linux常用命令讲解 1.命令格式:命令 [-选项] [参数] 超级用户的提示符是# 一般用户的提示符是$ 如:ls -la /usr说明: 大部分命令遵从该格式多个选项时,可以一起写 eg:ls ...
- linux 学习之路
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- 后端开发者的Vue学习之路(一)
目录 前言: iview组件库示例 element组件库示例 Vue的介绍 兼容性: 学习Vue需要的前置知识: MVVM模型 补充: 安装/导入 导入Vue 安装 两种方式的区别: HelloWor ...
- linux 学习之路(学linux必看)
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- 我的Linux学习之路的感悟
首先要跟大家说声抱歉,这么久一直没有更新,有负大家对我的期望. 半年的Linux运维的学习到目前已工作一个月零9天,这一路走来的艰辛和挣扎只有自己最清楚. 首先要感谢公司的同事的宽容接纳和耐心指点.感 ...
随机推荐
- numpy广播
(m,n) +,-,*,/ (m,1) 先将(m,1)复制n次,构成(m,n)矩阵,然后再进行+,-,*,/运算 (m,n) +,-,*,/ (1,n) 先将 (1,n)复制m次,构成(m ...
- MySQL学习(十四)
utf8的bom问题 在xp下,用记事本创建utf8文件的时候,前面多了3个字节,这3个字节不用来显示,是用来辨识编码用的,EF BB BF告诉记事本,这是utf8编码. 存储引擎和事务简单介绍 引擎 ...
- vue 定义全局变量在一个组件内引用
第一步: 第二步: 第三步: ok!!完了,当然了,你也可以在 main.js里面全局引用,然后用原型链挂在vue上面,用this的方法去获取!!
- nodejs实现文件的拷贝复制
var fs = require( 'fs' ), stat = fs.stat; /* 05 * 复制目录中的所有文件包括子目录 06 * @param{ String } 需要复制的目录 07 * ...
- Netty实现简易http_server
Netty可以通过一些handler实现简单的http服务器.具体有三个类,分别是HttpServer.java.ServerHandlerInit.java.BusiHandler.java. 具体 ...
- gradlew 的https代理设定
在内网编译vlc for Android 时, 总是在 [./gradlew assemble] 卡住, 在网上找到了设置代理的方法: 在gradlew 的同一目录,建立一个 gradle.prope ...
- 无法访问SVN历史记录的问题
今天在eclipse中发现无法访问SVN的历史记录,提示条目不可读,截图如下: 用小乌龟客户端试了试也不行,截图如下: 最后解决办法是在SVN服务器上将代码仓库中conf目录下的svnserve. ...
- 20180429 xlVBA套打单据自适应列宽
Sub TestAutoAdjustColumnWidthBaseOnModel() Set ModelSheet = ThisWorkbook.Worksheets("单据模板" ...
- apply、call
call(),apply() 1.每个函数都包含两个非继承而来的方法:call()和apply() 2.在特定的作用域内调用函数,等于设置函数体内的this对象,以扩充函数赖以运行的作用域 3.app ...
- Docker实现原理之Namespace,CGroup
找了几篇这方面的文章,写的还不错,跟大家共享:DOCKER基础技术:LINUX NAMESPACE(上)DOCKER基础技术:LINUX NAMESPACE(下)DOCKER基础技术:LINUX CG ...