LINUX下的PHP
由于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的更多相关文章
- NodeJs在Linux下使用的各种问题
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- Linux下Nodejs安装(完整详细)
之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码, ...
- (转载)linux下各个文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- 萌新笔记——linux下查看内存的使用情况
windows上有各种软件可以进行"一键加速"之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: ...
- [每日Linux]Linux下xsell和xftp的使用
实验缘由: 1.xsell在Linux下的作用就是远程登录的一个界面,也就是实现访问在Windows下访问Linux服务器的功能.之前在数据挖掘实验中因为自己电脑的内存不够,曾经使用过实验室的服务器跑 ...
- Linux下的C Socket编程 -- server端的继续研究
Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...
- 我将系统从Windows迁移至Linux下的点点滴滴
一.写在最前 由于本人的技术水平有限,难免会出现错误.本文对任何一个人有帮助都是我莫大的荣幸,任何一个大神对我的点拨,我都会感激不尽. 二.技术选型 在2013年8月低的时候,公司中了XXX市场监督局 ...
- linux下mono播放PCM音频
测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. al ...
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...
随机推荐
- ThinkPHP中的快捷函数小结
U() 制作url地址的快捷函数 C(名称) 获得配置变量(convertion.php config.php)信息C(名称,值) 设置配置变量信息 L() 获得语言变量信息E() 给页面输出错误信息 ...
- DIB位图(Bitmap)的读取和保存
设备无关位图(Device Independent Bitmap)是可以保存在磁盘的位图文件,可以从磁盘读取到内存或者从内存保存到磁盘上.它的文件结构是标准化的,可以在Windows/Linux/Un ...
- OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)
在OpenCV2:图像的几何变换,平移.镜像.缩放.旋转(1)主要介绍了图像变换中的向前映射.向后映射.处理变换过程中浮点坐标像素值的插值算法,并且基于OpenCV2实现了两个简单的几何变换:平移和镜 ...
- Keil环境中建立带FreeRTOS的STM32L项目
本文是网上转载,版权所有. Keil环境中建立带FreeRTOS的STM32L项目 1.先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图: 其中heap_2.c按 ...
- .NET 扩展方法 (二)
上一篇随笔 .NET 扩展方法 (一) 已经对 扩展方法有了大致的介绍,这篇算是一个补充,让我们来看一下扩展方法的几个细节: 一.扩展方法具有继承性 当使用扩展方法扩展一个类型的时候,其也扩展了派生类 ...
- NHibernate生成实体类、xml映射文件
最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...
- 积累一下SQL
开篇先自我检讨一下,写了博客几年以来首次试过连续两个月没出过博文,有客观也有主观原因,但是最近这年里博文数量也越来越少,博文的质量也每况日下.希望自己一直能坚持下来,多写写博文,这月尽量多写几篇来弥补 ...
- UDS(ISO14229-2006) 汉译(No.6 应用层服务)
6.1总览 应用层服务通常被当作诊断服务.应用层服务用于在基于客户端-服务器的系统(Client-Server base System)中执行一些功能,例如针对车载服务器(ECU)的检测.检查.监控和 ...
- Matlab 之 数据元素访问
Matlab的含义是矩阵实验室,其特征之一就是数据的向量化操作,借此提升软件运行效率.那么,必然会涉及数据元素的访问.Matlab主要支持下面一些形式的访问: (1)array-inde: A(i) ...
- Java动态代理全面分析
代理模式 解说:给某一个对象提供一个代理,并由代理对象控制对原对象的引用: 代理模式需要以下几个角色: 1 主题:规定代理类和真实对象共同对外暴露的接口: 2 代理类:专门代理真实对象的类: 3 ...