由于linux系统的稳定性,大部分的PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好的支持,所以对于PHP程序员来说,使用linux的功底也相当重要,接下来总结一下我从一开始在linux下安装配置linux的心得。


linux系统安装

首先是选择linux操作系统,我使用的是Cent OS 6.7 ,它类似红帽系统,简单易接触,而且开源免费。

CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux(小红帽)依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。

然后要准备一台linux机器,虚拟机是最好的选择了,它便于安装,随开随用。

虚拟机管理我推荐VM ware station,安装管理都方便,而且功能强大。用过小巧的virtual box,在win7下安装要改theme主题文件,辛苦装好的环境因为未知原因(兼容问题排除后,猜测是BIOS设置的问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM下安装linux的教程网上到处是,还有全程配图版。

说一下要注意的地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段下,可以很轻松地互相访问,VM下如图:

然后是我们经常要遇到的问题网络配置、和虚拟之间的交互、yum配置。


网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0 按需求修改以下信息

DEVICE=eth0 //网卡序号

NAME="System eth0"//设备名

TYPE=Ethernet//设备类型

HWADDR=:0C::C9::D7//系统检测到的硬件ID

ONBOOT=yes //是否开机运行

BOOTPROTO=static //获取IP方式,有static(静态方式)、dhcp(DHCP协议)、none(不指定)

IPADDR=192.168.1.66 //IP地址

NETMASK=255.255.255.0 //子网掩码

GATEWAY=192.168.1.1//网关

这样配置好之后,如果linux系统有桌面系统的话就可以直接用浏览器访问外网了。还需要进行主机和虚拟机之间的连通,可以在windows的cmd命令行中运行ipconfig命令来获取当前ip信息,然后可以在主机和虚拟机之间使用ping命令测试连接状态。

ping 192.168.1.xxx 

注意,虚拟机可能会用防火墙屏蔽80端口,导致虚拟机能访问自己,两者也能相互ping通,虚拟机也能访问主机,但主机却无法访问虚拟机的网站,通过修改防火墙设置或关闭防火墙能解决这一问题。

/etc/init.d/iptables -I INPUT -p tcp --dport  -j ACCEPT //修改不屏蔽80端口。

/etc/init.d/iptables stop //关闭防火墙

这样在配置好环境之后,就可以在主机和虚拟机之间互相访问了。


主机环境下操作虚拟机

配置好之后,便可以用工具来解决虚拟机和主机之间切换复制信息不便的问题了,这里我使用Secure CRT来进行主机与虚拟机之间的连接。

安装打开之后,点击quick connect按钮新增一个连接操作,如下图:

然后输入用户密码,保存。

还要注意使用Secure CRT时的编码问题,默认情况下,虚拟机的中文会显示乱码 ,需要以下配置:

然后让虚拟机进入后台运行状态,在VM界面,点击关闭虚拟机窗口,会弹出如下菜单。

选择后台运行,这样就可以不用管虚拟机窗口,尽情地用Secure CRT在window下操作虚拟机了。


yum配置

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum一般会在系统安装时自动安装,如果使用yum命令时提示找不到命令,那就在光盘的Packages文件夹里搜索yum安装包安装。

使用yum之前要先配置yum源。

切换到/etc/yum.repos.d/目录下,先将原来的yum源备份一个,然后用wget命令获取一个yum源。

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

配置好后我们就可以用yum来安装所需的软件了,用yum源来安装必备库和编译软件 gd gd-devel libxml2-devel gcc gcc-c++ zlib等

用yum安装的软件会找不到安装目录,可以用用rpm -ql packagename 查询安装地址

接下来安装mysql  mysql-server 安装好后记得用 mysqladmin -u root password xxxx设置好root密码

然后用wget命令+地址 下载php安装包,手动编译PHP时要注意:

--with-apxs2=/usr/local/apache2/bin/apxs//将其编译为apache的核心。

--enable-fpm //如果使用nginx服务器,此项要选,产生一个独立的PHP进程,在php/sbin/php-fpm,直接执行会产生一个端口号为9000的PHP进程。


PHP添加扩展模块

扩展模块一般分为两部分:扩展服务器和php扩展。

像mongo等扩展服务器是扩展的核心,要在各自的官网找到下载地址,用wget命令下载下来,然后解压安装,一般是官方编译好的可执行文件,直接复制到目标目录即可。

而PHP扩展文件,则是一个函数库,通过函数库与扩展服务器连接并操作数据库,大家可以去PHP官方扩展仓库 https://pecl.php.net/index.php下载扩展。

先将扩展包下载下来,然后解压,进入目录,用php/bin下的phpize运行一下(注意php用yum安装,找不到phpize,可用yum install php-devel来安装phpize),产生一个configure文件。

再用./configure --prefix=/usr/local/... –with-php-config=/usr/local/php/bin/php-config 命令编译

最后make / make test /make install

会得到一个形如/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/的地址,这个文件夹里存放着我们编译出来的PHP模块文件xxx.so(如同windows下的xxx.dll)

然后修改/lib/php.ini文件,添加extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xxx.so将模块扩展加入。

这样简单的PHP环境便搭建好了。

如果您觉得本博文对您有帮助,您可以推荐或关注我,如果您有什么问题,可以在下方留言讨论,谢谢。

LINUX下的PHP的更多相关文章

  1. NodeJs在Linux下使用的各种问题

    环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...

  2. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  3. Linux下Nodejs安装(完整详细)

    之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码, ...

  4. (转载)linux下各个文件夹的作用

    linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...

  5. 萌新笔记——linux下查看内存的使用情况

    windows上有各种软件可以进行"一键加速"之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: ...

  6. [每日Linux]Linux下xsell和xftp的使用

    实验缘由: 1.xsell在Linux下的作用就是远程登录的一个界面,也就是实现访问在Windows下访问Linux服务器的功能.之前在数据挖掘实验中因为自己电脑的内存不够,曾经使用过实验室的服务器跑 ...

  7. Linux下的C Socket编程 -- server端的继续研究

    Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...

  8. 我将系统从Windows迁移至Linux下的点点滴滴

    一.写在最前 由于本人的技术水平有限,难免会出现错误.本文对任何一个人有帮助都是我莫大的荣幸,任何一个大神对我的点拨,我都会感激不尽. 二.技术选型 在2013年8月低的时候,公司中了XXX市场监督局 ...

  9. linux下mono播放PCM音频

         测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. al ...

  10. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...

随机推荐

  1. Win8.1 安装Express 框架

    1.安装Windows Node.js客户端 2.安装Express框架 我本机是Win8.1的,使用命令npm install -g express安装Express,安装完成后显示一些安装明细,刚 ...

  2. IIS下配置PHP

    首先下载Windows的PHP安装包.随后将该包解压至C:\PHP.完成上面的步骤后,将C:\php目录下的php.ini-dist文件改名为php.ini,然后拷到C:\Windows目录下. 用记 ...

  3. spring boot 配置启动后执行sql, 中文乱码

    spring.datasource.schema指定启动后执行的sql文件位置. 我发现中文乱码,原因是没有指定执行sql script encoding: spring: datasource: u ...

  4. 关系数据库SQL之可编程性存储过程

    前言 前面关系数据库SQL之可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数.存储过程.事务.触发器及游标,前文已介绍了函数,本文来介绍一下存储过程的创建.执行.删除.(还是以前 ...

  5. SQL转换全角/半角函数

    /****** SQL转换全角/半角函数 开始******/ CREATE FUNCTION ConvertWordAngle ( ), --要转换的字符串 @flag bit --转换标志,0转换成 ...

  6. EF架构~EF异步改造之路~仓储接口的改造~续

    回到目录 返回异步与并行目录 在写完仓储接口的改造改造后,总觉得有个代码的坏味道,这种味道源于它的DRP,即重复的代码太多了,即异步操作和同步操作其实只是在insert,update和delete上有 ...

  7. [修正] Berlin Firemonkey Windows 控件左方显示虚线问题

    说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Berlin Firemonkey 修正方法: 请将源码 FMX.Platform.Win.pas 复制到自己的工程目录里,再进行修改 ...

  8. PHP中return 和 exit 、break和contiue 区别与用法

    先说一下exit函数的用法. 作用: 输出一则消息并且终止当前脚本. 如果一段文本中包括多个以 结束的脚本,则exit退出当前所在脚本. 比如一篇php文本包括一下代码,则输出为world. < ...

  9. ASP对XML的增、删、改、查

    首先看一下xml文件 text.xml 'encoding使用gb2312中文,如果要用英文则用utf-8 <?xml version="1.0" encoding=&quo ...

  10. 【转】【译】JavaScript魔法揭秘--探索当前流行框架中部分功能的处理机制

    推荐语: 今天推荐一篇华为同事的同事翻译的一篇文章,推荐的主要原因是作为一个华为员工居然晚上还能写文章,由不得小钗不佩服!!! 其中的jQuery.angular.react皆是十分优秀的框架,各有特 ...